En esta página se describe cómo configurar el comando de punto de entrada y los argumentos de un trabajo 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 trabajo.
En esta página se muestra cómo configurar el comando, los argumentos y el orden de inicio de los contenedores de tus trabajos de Cloud Run. Puedes configurar estos ajustes a través de laGoogle Cloud consola, la CLI de Google Cloud o YAML.
Roles obligatorios
Para obtener los permisos que necesitas para configurar los trabajos 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 la tarea 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 trabajo de Cloud Run interactúa con APIs deGoogle Cloud , como las bibliotecas de cliente de Cloud, consulta la guía de configuración de la identidad 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
Para configurar el punto de entrada de comandos y los argumentos de las tareas, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página de trabajos de Cloud Run:
Seleccione Trabajos en el menú y haga clic en Implementar contenedor para rellenar la página de configuración inicial del trabajo. Si vas a configurar un trabajo que ya existe, selecciona el trabajo y haz clic en Editar.
Haz clic en Contenedores, volúmenes, conexiones y seguridad para desplegar la página de propiedades del trabajo.
Haz clic en la pestaña General.
- Especifica el comando que quieres que ejecute el contenedor (si no es el comando definido en el contenedor) y, de forma opcional, los argumentos del comando de punto de entrada.
Haz clic en Crear o en Actualizar.
gcloud
Para definir el comando de inicio y los argumentos de un nuevo trabajo, sigue estos pasos:
gcloud run jobs create JOB_NAME --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
Sustituir
- JOB_NAME con el nombre del trabajo.
- COMMAND con el comando con el que se debe iniciar el contenedor si no usas el comando predeterminado.
- ARG1 con el argumento que envías al contenedor
command. Si hay más de un argumento, usa una lista separada por comas. Por ejemplo,
--args="arg1", "arg2", "arg3"
. Si tus argumentos contienen comas o caracteres especiales, consulta Usar signos igual o comas en argumentos. - IMAGE_URL: una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/job:latest
.
Para actualizar el comando y los argumentos de un trabajo ya creado, sigue estos pasos:
gcloud run jobs update JOB_NAME --command COMMAND --args ARG1,ARG-N
YAML
Si vas a crear un trabajo, sáltate este paso. Si vas a actualizar una tarea, descarga su configuración YAML:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Actualiza los atributos
args:
ycommand
:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: template: spec: template: spec: containers: - args: - 'ARG1' - 'ARG-N' command: - COMMAND image: IMAGE
Sustituir
- COMMAND con el comando con el que se debe iniciar el contenedor si no usas el comando predeterminado.
- ARG1 con el argumento que envías al contenedor command. También puedes especificar argumentos adicionales, cada uno en una línea aparte. Si tus argumentos contienen comas o caracteres especiales, consulta Usar signos igual o comas en argumentos.
También puede especificar más configuraciones, como variables de entorno o límites de memoria.
Actualiza la configuración de la tarea:
gcloud run jobs replace job.yaml
Para borrar los comandos y argumentos de punto de entrada que hayas definido (restaurar los valores predeterminados del contenedor), proporciona cadenas vacías de la siguiente manera:
gcloud run jobs update JOB_NAME --command "" --args ""
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Añade lo siguiente a un recursogoogle_cloud_run_v2_job
en tu configuración de Terraform:resource "google_cloud_run_v2_job" "default" {
name = "JOB_NAME"
location = "REGION"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
command = ["COMMAND"]
args = ["ARG1", "ARG-N"]
}
}
}
}
Sustituye:
- JOB_NAME con el nombre de tu tarea de Cloud Run.
- REGION con la región Google Cloud . Por ejemplo,
europe-west1
. - COMMAND con el comando con el que se debe iniciar el contenedor si no usas el comando predeterminado.
- ARG1 con el argumento que envías al contenedor command. Opcionalmente, especifique argumentos adicionales. Si tus argumentos contienen comas o caracteres especiales, consulta Usar signos igual o comas en argumentos.
Usar signos de igual o comas en los argumentos
Si usas signos igual en los argumentos, debes proporcionarlos con el siguiente formato:
gcloud run deploy \
--args="--repo-allowlist=github.com/example/example_demo"
Si sus argumentos usan comas, consulte la sección sobre configurar variables de entorno para obtener información sobre cómo escapar de ellas.
Ver la configuración del contenedor
Para ver la configuración actual del contenedor de tu trabajo de Cloud Run, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página de trabajos de Cloud Run:
Haz clic en el trabajo que te interese para abrir la página Detalles del trabajo.
Haz clic en Ver y editar configuración de trabajo.
Busca el ajuste del contenedor en los detalles de la configuración.
gcloud
Usa el siguiente comando:
gcloud run jobs describe JOB_NAME
Busca el ajuste del contenedor en la configuración devuelta.
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 de sidecar, usa la función de dependencias de contenedores. Especifica los contenedores que tienen dependencias y enumera los contenedores de los que dependen. Los contenedores que no tienen dependencias siempre se inician primero y de forma simultánea.
Puedes usar la Google Cloud consola, la CLI de Google Cloud o YAML para especificar el orden de inicio:
Consola
En la Google Cloud consola, ve a la página Cloud Run:
- En el caso de un trabajo ya creado, haz clic en Trabajos. A continuación, haga clic en el trabajo de la lista y seleccione Ver y editar configuración del trabajo para que se muestre el formulario Editar trabajo.
- Para crear un trabajo, haz clic en Implementar contenedor y selecciona Trabajo para que se muestre el formulario Crear trabajo.
En el caso de un nuevo trabajo, especifica el nombre del trabajo, la URL del contenedor del trabajo, la región y el número de tareas. En la pestaña Contenedores, volúmenes, redes y seguridad, haz lo siguiente:
- Configura el contenedor de trabajo principal.
- Para añadir cada contenedor sidecar que vayas a implementar, haz clic en Añadir contenedor.
- Si un contenedor depende de otros contenedores, usa el menú Orden de inicio de los contenedores para seleccionar los contenedores que Cloud Run debe iniciar antes del contenedor actual.
En el caso de un trabajo que ya exista, sigue estos pasos con cada contenedor:
- Examina los contenedores que se muestran en el menú Orden de inicio de los contenedores.
- Si un contenedor depende de otros contenedores, usa el menú Orden de inicio de los contenedores para seleccionar esos contenedores.
Completa las configuraciones necesarias y, a continuación, haz clic en Crear para crear un trabajo o en Actualizar para modificar uno que ya tengas. Espera a que finalice la implementación.
gcloud
-
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 trabajo con un orden de inicio específico, ejecuta el siguiente comando:
gcloud beta run create JOB \ --container CONTAINER_1_NAME --image='JOB_IMAGE' \ --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \ --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAMECONTAINER_2_NAME
Sustituye:
- JOB con el nombre del trabajo al que vas a implementar. Puedes omitir este parámetro por completo, pero se te pedirá el nombre de la tarea si lo haces.
- CONTAINER_1_NAME con un nombre para el contenedor de trabajo principal.
- JOB_IMAGE con una referencia a la imagen del contenedor de trabajo principal, por ejemplo,
us-docker.pkg.dev/cloudrun/container/job:latest
. - CONTAINER_2_NAME con un nombre para el contenedor sidecar, por ejemplo,
sidecar
. - SIDECAR_IMAGE con una referencia a la imagen de contenedor sidecar.
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
.Si vas a crear un trabajo, sáltate este paso. Si vas a actualizar una tarea, descarga su configuración YAML:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Actualice el atributo
container-dependencies
:apiVersion: run.googleapis.com/v1 kind: Job metadata: annotations: run.googleapis.com/launch-stage: BETA name: JOB spec: template: metadata: annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
Sustituir
- CONTAINER1 con el nombre del primer contenedor que depende de uno o varios contenedores. Ten en cuenta que puedes definir el nombre del contenedor en el archivo YAML. Cloud Run generará automáticamente un nombre si no se especifica ninguno.
- CONTAINER2 con el nombre del contenedor que debe iniciarse antes de CONTAINER1.
- CONTAINER3 con el nombre del segundo contenedor que depende de uno o varios contenedores.
En el ejemplo que se muestra en el fragmento de YAML, CONTAINER2 se inicia en primer lugar, CONTAINER1 en segundo lugar y CONTAINER3 en último lugar.
Crea o actualiza el trabajo con el siguiente comando:
gcloud run jobs replace job.yaml