En esta página, se describe cómo configurar el comando entrypoint y los argumentos para un grupo de trabajadores de Cloud Run.
Cuando Cloud Run inicia un contenedor, ejecuta el comando entrypoint predeterminado y los argumentos del comando predeterminados de la imagen. Si deseas anular el entrypoint predeterminado y los argumentos del comando 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 que se pasan a ese comando.
Ten en cuenta que puedes tener un máximo de 1,000 argumentos por contenedor para cada grupo de trabajadores.
Roles obligatorios
Para obtener los permisos que necesitas para configurar y, luego, implementar los grupos de trabajadores de Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Desarrollador de Cloud Run (
roles/run.developer) en el grupo de trabajadores de Cloud Run - Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) en la identidad del servicio
Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu grupo de trabajadores de Cloud Run interactúa con lasGoogle Cloud APIs, como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información sobre cómo otorgar roles, consulta los permisos de implementación y cómo administrar el acceso.
Configura un punto de entrada y argumentos
Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.
El comando y los argumentos del contenedor especificados anulan las imágenes predeterminadas ENTRYPOINT y CMD.
Puedes establecer argumentos y comandos entrypoint para un grupo de trabajadores de Cloud Run con la Google Cloud consola, Google Cloud CLI, YAML o Terraform:
Console
En la consola Google Cloud , ve a Cloud Run:
Selecciona Grupos de trabajadores en el menú y haz clic en Implementa un contenedor para configurar un grupo de trabajadores nuevo. Si quieres configurar un grupo de trabajadores existente, haz clic en el grupo de trabajadores y, luego, en Editar e implementar una nueva revisión.
Si configuras un grupo de trabajadores nuevo, completa la página inicial del grupo de trabajadores y, luego, haz clic en Contenedores, redes y seguridad para expandir la página de configuración del grupo de trabajadores.
Haz clic en la pestaña Contenedores.
- Especifica el comando que deseas 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 entrypoint.
Haz clic en Crear o Implementar.
gcloud
Para actualizar el comando de inicio y los argumentos de un servicio existente, sigue estos pasos:
gcloud run worker-pools update WORKER_POOL --command COMMAND --args ARG1,ARG-N
Reemplaza lo siguiente:
- 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 más de un argumento.
Para especificar un punto de entrada y argumentos durante la implementación de un grupo de trabajadores nuevo o existente, haz lo siguiente:
gcloud run worker-pools deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
Reemplaza IMAGE_URL por una referencia a la imagen del contenedor que contiene el grupo de trabajadores, como code>us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
Si deseas restablecer los valores predeterminados del contenedor para los comandos y argumentos de entrypoint, proporciona cadenas vacías de la siguiente manera:
gcloud run worker-pools deploy --image IMAGE_URL --command "" --args ""
YAML
Si creas un grupo de trabajadores nuevo, omite este paso. Si actualizas un grupo de trabajadores existente, descarga su configuración de YAML:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
En el siguiente ejemplo, se muestra la configuración de YAML:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL spec: template: spec: containers: - name: CONTAINER_NAME image: IMAGE_URL command: - COMMAND args: - ARG1 - ARG-N
Reemplaza lo siguiente:
- WORKER_POOL: El nombre de tu grupo de trabajadores de Cloud Run
- CONTAINER_NAME: El nombre del contenedor
IMAGE_URL: Una referencia a la imagen del contenedor que contiene el grupo de trabajadores, comous-docker.pkg.dev/cloudrun/container/worker-pool:latest- COMMAND: El comando con el que se iniciará el contenedor si no usas el comando predeterminado
- ARG1: El argumento que envías al comando del contenedor Si usas varios argumentos, especifica cada uno en su propia línea, por ejemplo, como se muestra, ARG-N.
Crea o actualiza el grupo de trabajadores con el siguiente comando:
gcloud run worker-pools replace worker-pool.yaml
El comando
gcloud run worker-pools replaceusa de forma predeterminada el archivoworker-pool.yamlsi está presente.
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
command = ["COMMAND"]
args = ["ARG1", "ARG2"]
}
}
}
Reemplaza lo siguiente:
- WORKER_POOL: El nombre del grupo de trabajadores
- REGION: la Google Cloud región, por ejemplo,
europe-west1. IMAGE_URL: Una referencia a la imagen del contenedor que contiene el grupo de trabajadores, comous-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: El o los argumentos que envías al comando del contenedor
Establece un directorio de trabajo
El directorio de trabajo es donde el contenedor ejecuta sus comandos y argumentos. Puedes especificar un directorio de trabajo personalizado para el proceso del contenedor durante la implementación de un grupo de trabajadores nuevo o existente. Si no se especifica, se usa el directorio de trabajo predeterminado de la imagen de contenedor. Para restablecer este campo a su valor predeterminado, pasa una cadena vacía o quita el campo.
Por ejemplo:
gcloud
Para actualizar el directorio de trabajo de un grupo de trabajadores existente, haz lo siguiente:
gcloud run worker-pools update WORKER_POOL --workdir WORKING_DIR
Reemplaza lo siguiente:
- WORKING_DIR: El directorio de trabajo del contenedor Si no se especifica, se usa el valor predeterminado de la imagen de contenedor. Para restablecer este campo a
su valor predeterminado, pasa una cadena vacía
"".
Para especificar el directorio de trabajo durante la implementación de un grupo de trabajadores nuevo o existente, haz lo siguiente:
gcloud run worker-pools deploy --image IMAGE_URL --workdir WORKING_DIR
Reemplaza lo siguiente:
IMAGE_URLpor una referencia a la imagen del contenedor que contiene el grupo de trabajadores, como code>us-docker.pkg.dev/cloudrun/container/worker-pool:latest.- WORKING_DIR: El directorio de trabajo del contenedor
YAML
Si creas un grupo de trabajadores nuevo, omite este paso. Si actualizas un grupo de trabajadores existente, descarga su configuración de YAML:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
Actualiza el atributo
workingDir::apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL spec: template: spec: containers: - image: IMAGE_URL workingDir: WORKING_DIR
Reemplaza lo siguiente:
- WORKER_POOL: El nombre de tu grupo de trabajadores de Cloud Run
IMAGE_URL: Una referencia a la imagen del contenedor que contiene el grupo de trabajadores, comous-docker.pkg.dev/cloudrun/container/worker-pool:latest- WORKING_DIR: (Opcional) El directorio de trabajo del contenedor Si no se especifica, se usará el valor predeterminado del entorno de ejecución del contenedor, que podría configurarse en la imagen de contenedor.
Crea o actualiza el grupo de trabajadores con el siguiente comando:
gcloud run worker-pools replace worker-pool.yaml
El comando
gcloud run worker-pools replaceusa de forma predeterminada el archivoworker-pool.yamlsi está presente.
Terraform
Agrega lo siguiente a un
google_cloud_run_v2_worker_pool
recurso en tu configuración de Terraform:
resource "google_cloud_run_v2_worker_pool" "default" {
provider = google-beta
name = "WORKER_POOL"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
working_dir = WORKING_DIR
}
}
}
Reemplaza lo siguiente:
- WORKER_POOL por el nombre de tu grupo de trabajadores de Cloud Run
- REGION por la Google Cloud región Por ejemplo,
europe-west1 IMAGE_URL: Una referencia a la imagen del contenedor que contiene el grupo de trabajadores, comous-docker.pkg.dev/cloudrun/container/worker-pool:latest- WORKING_DIR: (Opcional) El directorio de trabajo del contenedor Si no se especifica, se usará el valor predeterminado del entorno de ejecución del contenedor, que podría configurarse en la imagen de contenedor.
Configura el orden de inicio del contenedor para implementaciones de sidecar
Para especificar el orden de inicio del contenedor en una implementación de sidecar, usa la función de dependencias de contenedores. Especifica los contenedores que tienen 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 sondeos de verificación de estado de inicio. El sondeo de inicio permite que Cloud Run inspeccione el estado de un contenedor dependiente, lo que garantiza que pase correctamente antes de iniciar el siguiente contenedor. Si no usas verificaciones de estado, los contenedores se inician en el orden especificado, incluso si los contenedores de los que dependen no se inician.
Ten en cuenta que no hay un sondeo de verificación de estado de inicio predeterminado para los grupos de trabajadores.
Usa la Google Cloud consola, Google Cloud CLI o YAML para especificar el orden de inicio:
Console
En la Google Cloud consola, ve a la página de Cloud Run:
- Selecciona Grupos de trabajadores en el menú.
- En el caso de un grupo de trabajadores existente, haz clic en el grupo de trabajadores de la lista y selecciona Editar e implementar una nueva revisión para editar el formulario de implementación de revisión.
- En el caso de un grupo de trabajadores nuevo, haz clic en Implementar contenedor para editar el formulario Crear grupo de trabajadores.
Para un grupo de trabajadores nuevo, especifica el nombre del grupo de trabajadores, la URL del contenedor de entrada, la asignación de CPU, el control de entrada y la autenticación. En la pestaña Contenedores, redes y seguridad , haz lo siguiente:
- Configura el contenedor de entrada.
- Para agregar cada uno de los otros contenedores que implementas, haz clic en Agregar contenedor.
- Para todos los contenedores, excepto el contenedor de entrada, configura una verificación de estado de inicio.
- Si un contenedor debe iniciarse después de otros contenedores, selecciona esos contenedores en el menú Orden de inicio del contenedor.
Para un grupo de trabajadores existente, sigue estos pasos:
- Para todos los contenedores, excepto el contenedor de entrada, configura una verificación de estado de inicio.
- Cada contenedor se muestra con su propio menú de Orden de inicio del contenedor. Si un contenedor necesita que otros contenedores se inicien antes de poder iniciarse, usa el menú Orden de inicio del contenedor para seleccionar los contenedores que deben iniciarse primero.
Finaliza cualquier otra configuración necesaria y, luego, haz clic en Crear para un grupo de trabajadores nuevo o en Implementar en un grupo de trabajadores existente. Espera a que finalice la implementación.
gcloud
Antes de usar Google Cloud CLI para especificar el orden de inicio, configura una verificación de estado de inicio.
-
En la Google Cloud consola, activa Cloud Shell.
En la parte inferior de la Google Cloud consola, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.
Para implementar varios contenedores en un servicio con un orden de inicio especificado, ejecuta el siguiente comando:
gcloud 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
Reemplaza lo siguiente:
- WORKER_POOL: El nombre del grupo de trabajadores
IMAGE_URL: Una referencia a la imagen del contenedor que contiene el grupo de trabajadores, comous-docker.pkg.dev/cloudrun/container/worker-pool:latestSIDECAR_IMAGE: Una referencia a la imagen del contenedor sidecarSi deseas configurar cada contenedor en el comando de implementación, proporciona la configuración de cada contenedor después de los parámetros de
container.
YAML
Si creas un grupo de trabajadores nuevo, omite este paso. Si actualizas un grupo de trabajadores existente, descarga su configuración de YAML:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
En el siguiente ejemplo, se muestra la configuración de YAML:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL spec: template: metadata: annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
Reemplaza lo siguiente:
- WORKER_POOL: El nombre de tu grupo de trabajadores de Cloud Run
- CONTAINER1: El nombre del primer contenedor que depende de uno o más contenedores Puedes establecer el nombre del contenedor en YAML; Cloud Run genera automáticamente un nombre si no se especifica uno.
- CONTAINER2: el nombre del contenedor que debe iniciarse antes de CONTAINER1
- CONTAINER3: El nombre del segundo contenedor que depende de uno o más contenedores.
En el ejemplo que se muestra en el fragmento de YAML, CONTAINER2 se inicia primero, CONTAINER1 se inicia en segundo lugar y CONTAINER3 se inicia en último lugar.
Crea o actualiza el grupo de trabajadores con el siguiente comando:
gcloud run worker-pools replace worker-pool.yaml
El comando
gcloud run worker-pools replaceusa de forma predeterminada el archivoworker-pool.yamlsi está presente.
Visualiza la configuración del contenedor para el 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 deseas examinar para mostrar su panel de detalles.
Haz clic en la pestaña Contenedores para mostrar la configuración del contenedor del grupo de trabajadores.