Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

370
Vistas
Google Cloud Secrets Manager niega el acceso a la aplicación App Engine pero funciona con Google Cloud Function

Estoy tratando de conectarme para obtener un secreto del administrador de secretos de Google y el mismo código funciona para Cloud Functions, pero no para App Engine.

const { SecretManagerServiceClient } = require('@google-cloud/secret-manager');

 const secretManagerServiceClient = new SecretManagerServiceClient(); const name = 'projects/000000000000/secrets/database/versions/latest'; exports.testSecretManager = async (req, res) => { const [version] = await secretManagerServiceClient.accessSecretVersion({ name }); const payload = version.payload.data.toString(); console.debug(`Payload: ${payload}`); res.sendStatus(200); };

El mismo código funciona bien cuando lo implemento como una función.

ingrese la descripción de la imagen aquí

Pero cuando ejecuto el mismo código como parte de la aplicación App Engine. Falla con este error:

 Error: 16 UNAUTHENTICATED: Failed to retrieve auth metadata with error: Could not refresh access token: Unsuccessful response status code. Request failed with status code 500 at Object.callErrorFromStatus (/workspace/node_modules/@grpc/grpc-js/build/src/call.js:31:26) at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client.js:180:52) at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:365:141) at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:328:181) at /workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:182:78 at processTicksAndRejections (node:internal/process/task_queues:78:11)

Creo que tanto Cloud Functions como App Engine están administrados por la misma cuenta de servicio "Cuenta de servicio predeterminada de App Engine". Y tiene derechos.

Parece que GOOGLE_APPLICATION_CREDENTIALS no se encuentra en el entorno.

console.log(process.env.GOOGLE_APPLICATION_CREDENTIALS); me da indefinido. ¿Puede ser esto una razón? Entonces, ¿cómo paso este entorno al motor de la aplicación?

¿Cómo puedo depurar esto más profundamente?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Asegúrese de que la función Secret Manager Secret Accessor se otorgue a la cuenta de servicio de IAM para App Engine. El rol exacto que necesitaría agregar es: roles/secretmanager.secretAccessor. Puede consultar aquí para obtener más detalles.

Además, eche un vistazo a este caso de Stackoverflow .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Encuentre aquí una respuesta bellamente escrita.

Y también la documentación oficial de Google que no incluye a GAE como un producto compatible directamente; sin embargo, GCE/GKE son compatibles de fábrica, si esa es una opción para usted.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda