Además de las acciones administrativas, como crear, actualizar y borrar servicios, los desarrolladores quieren probar los servicios de forma privada antes de publicarlos. Esta opción es para los servicios de Cloud Run, no los trabajos de Cloud Run.
Antes de comenzar
Asegúrate de otorgar permisos para acceder a los servicios a los que te autenticas. Debes otorgar la función de invocador de Cloud Run al desarrollador o al grupo de desarrolladores:
IU de Console
Ve a la consola de Google Cloud:
Selecciona el servicio, pero no hagas clic en él.
Haz clic en la pestaña Permisos en el panel lateral derecho. (Es posible que primero debas hacer clic en Mostrar panel de información en la esquina superior derecha).
Haz clic en Agregar miembros.
En el campo Agregar miembros, ingresa el correo electrónico de la cuenta del desarrollador.
Selecciona la función de
Cloud Run Invoker
en el menú desplegable Seleccionar una función.Haz clic en Guardar.
gcloud
Usa el comando gcloud run services add-iam-policy-binding
:
gcloud run services add-iam-policy-binding SERVICE \ --member='USER:EMAIL' \ --role='roles/run.invoker'
En el ejemplo anterior, se ilustra lo siguiente:
- SERVICE es el nombre del servicio.
- USER es el valor
user
ogroup
, según si autorizas a un solo desarrollador o a un grupo. EMAIL es la cuenta de correo electrónico.
Por ejemplo:
gcloud run services add-iam-policy-binding myservice \ --member='user:test-user@gmail.com' \ --role='roles/run.invoker'
Prueba tu servicio privado
Usa el proxy de Cloud Run en Google Cloud CLI
La forma más fácil de probar los servicios privados es usar el proxy de Cloud Run en Google Cloud CLI.
De esta forma, se envía mediante proxy el servicio privado a http://localhost:8080
(o al puerto especificado con --port
) y se proporciona el token de la cuenta activa o cualquier otro token que especifiques.
Esto te permite usar un navegador web o una herramienta como curl
.
Esta es la forma recomendada de probar de manera privada un sitio web o una API en el navegador.
Puedes enviar un proxy de un servicio de forma local con el siguiente comando:
gcloud beta run services proxy SERVICE --project PROJECT-ID
Usa curl
Como alternativa, puedes probar servicios privados sin el proxy mediante una herramienta como curl
y pasando un token de autenticación en el encabezado Authorization
:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
A fin de que el comando curl
funcione, debes pasar un token de identidad válido para un usuario con el permiso run.routes.invoke
, como administrador de Cloud Run o invocador de Cloud Run. Consulta las funciones de IAM de Cloud Run para ver la lista completa de las funciones y los permisos asociados con estas.
Como se muestra en el ejemplo, a fin de obtener un token de identidad válido para la identidad que accedió a gcloud
y se encuentra activa, puedes usar gcloud auth print-identity-token
.
Ten en cuenta que los tokens de ID generados con el comando gcloud
se deben usar solo en una configuración de desarrollo, ya que no requiere que se especifique el “público”. Exigir audience
reduce el riesgo de ataques de repetición. Por el contrario, audience
es obligatorio cuando se generan tokens a partir de cuentas de servicio.