En esta página se describe cómo configurar el comando de punto de entrada y los argumentos de un grupo de trabajadores de Cloud Run.
Cuando Cloud Run inicia un contenedor, ejecuta el comando de punto de entrada predeterminado y los argumentos de comando predeterminados de la imagen. Si quieres anular el punto de entrada y los argumentos de comando predeterminados de la imagen, puedes usar los campos command
y args
en la configuración del contenedor. El campo command
especifica el comando real que ejecuta el contenedor. El campo args
especifica los argumentos transferidos a ese comando.
Ten en cuenta que puedes tener un máximo de 1000 argumentos por contenedor en cada grupo de trabajadores.
Roles obligatorios
Para obtener los permisos que necesitas para configurar e implementar grupos de trabajadores de Cloud Run, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Desarrollador de Cloud Run (
roles/run.developer
) en el grupo de trabajadores de Cloud Run -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la identidad de servicio
Para ver una lista de los roles y permisos de gestión de identidades y accesos asociados a Cloud Run, consulta los artículos sobre roles de gestión de identidades y accesos de Cloud Run y permisos de gestión de identidades y accesos de Cloud Run. Si tu grupo de trabajadores de Cloud Run interactúa con APIs deGoogle Cloud , como las bibliotecas de cliente de Cloud, consulta la guía de configuración de identidades de servicio. Para obtener más información sobre cómo conceder roles, consulta los artículos sobre permisos de implementación y gestión del acceso.
Configurar el punto de entrada y los argumentos
Cualquier cambio en la configuración conlleva la creación de una nueva revisión. Las revisiones posteriores también recibirán automáticamente este ajuste de configuración, a menos que hagas cambios explícitos para modificarlo.
El comando y los argumentos del contenedor especificados anulan los valores predeterminados de la imagen ENTRYPOINT
y CMD
.
Puedes definir el comando y los argumentos del punto de entrada de un grupo de trabajadores de Cloud Run mediante laGoogle Cloud consola, la CLI de Google Cloud o Terraform:
Consola
En la Google Cloud consola, ve a Cloud Run:
Selecciona Grupos de trabajadores en el menú y haz clic en Implementar contenedor para configurar un nuevo grupo de trabajadores. Si vas a configurar un grupo de trabajadores que ya existe, haz clic en él y, a continuación, en Editar y desplegar nueva revisión.
Si vas a configurar un grupo de trabajadores, rellena la página inicial del grupo de trabajadores y, a continuación, haz clic en Contenedores, volúmenes, redes y seguridad para desplegar la página de configuración del grupo de trabajadores.
Haz clic en la pestaña Contenedor.
- Especifica el comando que quieres que ejecute el contenedor si no quieres usar el comando de punto de entrada definido en la imagen de contenedor. De forma opcional, especifica los argumentos del comando de punto de entrada.
Haz clic en Crear o en Implementar.
gcloud
Para actualizar el comando de inicio y los argumentos de un servicio, sigue estos pasos:
gcloud beta run worker-pools update WORKER_POOL --command COMMAND --args ARG1,ARG-N
Haz los cambios siguientes:
- WORKER_POOL: el nombre del grupo de trabajadores.
- COMMAND: el comando con el que se inicia el contenedor, si no usas el comando predeterminado.
- ARG1: el argumento que envías al comando del contenedor. Usa una lista delimitada por comas para incluir más de un argumento.
Para especificar el punto de entrada y los argumentos durante la implementación de un grupo de trabajadores nuevo o ya creado, sigue estos pasos:
gcloud beta run worker-pools deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
Sustituye IMAGE_URL por una referencia a la imagen de contenedor que
contiene el grupo de trabajadores, como us-docker.pkg.dev/cloudrun/container/worker-pool:latest
.
Si quieres restaurar los valores predeterminados del contenedor para los comandos y los argumentos del punto de entrada, proporciona cadenas vacías de la siguiente manera:
gcloud beta run worker-pools deploy --image IMAGE_URL --command "" --args ""
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
launch_stage = "BETA"
template {
containers {
image = "IMAGE_URL"
command = ["COMMAND"]
args = ["ARG1", "ARG2"]
}
}
}
Haz los cambios siguientes:
- WORKER_POOL: el nombre del grupo de trabajadores.
- REGION: la región Google Cloud , por ejemplo,
europe-west1
. - IMAGE_URL: referencia a la imagen del contenedor que contiene el grupo de trabajadores, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. - COMMAND: el comando con el que se inicia el contenedor, si no usas el comando predeterminado.
- ARG1, ARG2: los argumentos que envías al comando del contenedor.
Configurar el orden de inicio de los contenedores en las implementaciones de sidecar
Para especificar el orden de inicio de los contenedores en una implementación sidecar, usa la función de dependencias de contenedores. Especifica los contenedores que tengan dependencias y enumera los contenedores de los que dependen para que se inicien primero. Los contenedores que no tienen dependencias siempre se inician primero y de forma simultánea.
Para usar esta función correctamente, debes usar sondas de comprobación del estado de inicio. La comprobación de inicio permite a Cloud Run inspeccionar el estado de un contenedor dependiente y asegurarse de que se supera correctamente antes de iniciar el siguiente contenedor. Si no usas comprobaciones de estado, los contenedores se inician en el orden especificado aunque los contenedores de los que dependen no se inicien.
Ten en cuenta que no hay ninguna sonda de comprobación del estado de inicio predeterminada para los grupos de trabajadores.
Usa la Google Cloud consola o la CLI de Google Cloud para especificar el orden de inicio:
Consola
En la Google Cloud consola, ve a la página Cloud Run:
- Selecciona Grupos de trabajadores en el menú.
- En el caso de un grupo de trabajadores, haz clic en el grupo de trabajadores de la lista y selecciona Editar e implementar nueva revisión para que se muestre el formulario de implementación de la revisión.
- Para crear un grupo de trabajadores, haz clic en Implementar contenedor para que se muestre el formulario Crear grupo de trabajadores.
En el caso de un grupo de trabajadores nuevo, especifica el nombre del grupo, la URL del contenedor de entrada, la asignación de CPU, el control de entrada y la autenticación. En la pestaña Contenedores, volúmenes, redes y seguridad, haz lo siguiente:
- Configura el contenedor de entrada.
- Para añadir cada uno de los otros contenedores que vas a implementar, haz clic en Añadir contenedor.
- En todos los contenedores, excepto en el de entrada, configura una comprobación del estado al inicio.
- Si un contenedor debe iniciarse después de otros contenedores, selecciónalos en el menú Orden de inicio de los contenedores.
Si ya tienes un grupo de trabajadores, sigue estos pasos:
- En todos los contenedores, excepto en el de entrada, configura una comprobación del estado al inicio.
- Cada contenedor se muestra con su propio menú Orden de inicio del contenedor. Si un contenedor necesita que se inicien otros contenedores antes de poder iniciarse, usa el menú Orden de inicio de los contenedores para seleccionar los contenedores que deben iniciarse primero.
Completa las configuraciones necesarias y, a continuación, haz clic en Crear para crear un grupo de trabajadores o en Implementar para usar uno que ya tengas. Espera a que finalice la implementación.
gcloud
Antes de usar la CLI de Google Cloud para especificar el orden de inicio, configura una comprobación de estado de inicio.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para desplegar varios contenedores en un servicio con un orden de inicio específico, ejecuta el siguiente comando:
- WORKER_POOL: el nombre del grupo de trabajadores.
- IMAGE_URL: referencia a la imagen del contenedor que contiene el grupo de trabajadores, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. SIDECAR_IMAGE: una referencia a la imagen del contenedor secundario.
Si quiere configurar cada contenedor en el comando de implementación, proporcione la configuración de cada contenedor después de los parámetros
container
.
gcloud beta run worker-pools deploy WORKER_POOL \ --container CONTAINER_1_NAME --image='WORKER_POOL_IMAGE' --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \ --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME
Haz los cambios siguientes:
Ver la configuración del contenedor del grupo de trabajadores
En la Google Cloud consola, ve a Cloud Run:
Haz clic en Grupos de trabajadores para ver la lista de grupos de trabajadores implementados.
Haz clic en el grupo de trabajadores que quieras examinar para que se muestre su panel de detalles.
Haz clic en la pestaña Contenedores para ver la configuración de los contenedores del grupo de trabajadores.