En esta página, se describe cómo configurar el comando de punto de entrada y los argumentos para un trabajo 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 trabajo.
En esta página, se muestra cómo configurar el comando, los argumentos y el orden de inicio de los contenedores en tus trabajos de Cloud Run.
Roles obligatorios
Para obtener los permisos que necesitas para configurar los trabajos 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 trabajo 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 trabajo 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
Puedes configurar el argumento y el punto de entrada del comando para los trabajos con laGoogle Cloud consola, gcloud CLI, YAML o Terraform:
Console
En la consola Google Cloud , ve a la página de Cloud Run:
Selecciona Trabajos en el menú de navegación de Cloud Run:
Si creas un trabajo nuevo, haz clic en Implementar contenedor para completar la página de configuración de trabajo inicial.
Si quieres configurar un trabajo existente, selecciónalo y, luego, haz clic en Ver y editar la configuración del trabajo.
Haz clic en Contenedores, Conexiones, Seguridad para expandir la página de propiedades del trabajo.
Especifica el comando que deseas que ejecute el contenedor, si no es el comando definido en tu contenedor.
Opcional: Especifica los argumentos del comando del punto de entrada.
Haz clic en Crear o Actualizar.
gcloud
Para configurar el comando de inicio y los argumentos para un trabajo nuevo, ejecuta el siguiente comando:
gcloud run jobs create JOB --image IMAGE_URL --command COMMAND --args ARG1,ARG_N
Reemplaza lo siguiente:
JOBpor el nombre del trabajo de Cloud Run.IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo,us-docker.pkg.dev/cloudrun/container/job:latest.COMMAND: Es el comando con el que se iniciará el contenedor si no usas el comando predeterminado.ARG1: Es el argumento que envías al comando del contenedor. 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 Usa signos igual o comas en argumentos.
Para actualizar el comando y los argumentos de un trabajo existente, ejecuta el siguiente comando:
gcloud run jobs update JOB --command COMMAND --args ARG1,ARG_N
Para borrar cualquier comando y argumento de punto de entrada, ejecuta el siguiente comando:
gcloud run jobs update JOB --command "" --args ""
YAML
Si creas un trabajo nuevo, omite este paso. Si actualizas un trabajo existente, descarga su configuración de YAML:
gcloud run jobs describe JOB --format export > job.yaml
Actualiza los atributos
args:ycommand:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE_URL args: - ARG1' - ARG_N command: - COMMAND
Reemplaza lo siguiente:
JOBpor el nombre del trabajo de Cloud Run.IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo,us-docker.pkg.dev/cloudrun/container/job:latest.ARG1: Es el argumento que envías al comando del contenedor. De manera opcional, especifica argumentos adicionales en una línea separada. Si tus argumentos contienen comas o caracteres especiales, consulta Usa signos igual o comas en argumentos.COMMAND: Es el comando con el que se iniciará el contenedor si no usas el comando predeterminado.
Actualiza la configuración del trabajo existente:
gcloud run jobs replace job.yaml
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega lo siguiente a un recursogoogle_cloud_run_v2_job en tu configuración de Terraform:resource "google_cloud_run_v2_job" "default" {
name = "JOB"
location = "REGION"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
command = ["COMMAND"]
args = ["ARG1", "ARG_N"]
}
}
}
}
Reemplaza lo siguiente:
JOBpor el nombre del trabajo de Cloud Run.REGION: La Google Cloud región Por ejemplo,europe-west1.COMMAND: Es el comando con el que se iniciará el contenedor si no usas el comando predeterminado.ARG1: Es el argumento que envías al comando del contenedor. De manera opcional, especifica argumentos adicionales. Si tus argumentos contienen comas o caracteres especiales, consulta Usa signos igual o comas en argumentos.
Usa signos igual o comas en argumentos
Si usas el signo igual en tus argumentos, proporciónalos con el siguiente formato:
gcloud run deploy \
--args="--repo-allowlist=github.com/example/example_demo"
Si se usan comas en los argumentos, consulta Configura variables de entorno para obtener detalles sobre cómo escapar comas.
Cómo establecer 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 servicio nuevo o existente. Si no se especifica, se usa el directorio de trabajo predeterminado de la imagen del contenedor. Para restablecer este campo a su valor predeterminado, pasa una cadena vacía o quita el campo.
Puedes establecer un directorio de trabajo con gcloud CLI, YAML o Terraform:
gcloud
Para actualizar el directorio de trabajo de un trabajo existente, ejecuta el siguiente comando:
gcloud run jobs update JOB --workdir WORKING_DIR
Reemplaza lo siguiente:
JOBpor el nombre del trabajo de Cloud Run.WORKING_DIR: Es el directorio de trabajo del contenedor. Si no se especifica, se usa el valor predeterminado de la imagen del contenedor. Para restablecer este campo a su valor predeterminado, pasa una cadena vacía"".
Para especificar el directorio de trabajo cuando crees un trabajo, ejecuta el siguiente comando:
gcloud run jobs create JOB --image IMAGE_URL --workdir WORKING_DIR
Reemplaza lo siguiente:
JOBpor el nombre del trabajo de Cloud Run.IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo,us-docker.pkg.dev/cloudrun/container/job:latest.WORKING_DIR: Es el directorio de trabajo del contenedor. Si no se especifica, se usa el valor predeterminado de la imagen del contenedor. Para restablecer este campo a su valor predeterminado, pasa una cadena vacía"".
YAML
Si creas un trabajo nuevo, omite este paso. Si actualizas un trabajo existente, descarga su configuración de YAML:
gcloud run jobs describe JOB --format export > job.yaml
Actualiza el atributo
workingDir::apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE_URL workingDir: WORKING_DIR
Reemplaza lo siguiente:
JOBpor el nombre del trabajo de Cloud Run.IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo,us-docker.pkg.dev/cloudrun/container/job:latest.WORKING_DIR(opcional): Es 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 estar configurado en la imagen del contenedor.
Actualiza la configuración del trabajo existente:
gcloud run jobs replace job.yaml
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega lo siguiente a un recursogoogle_cloud_run_v2_job en tu configuración de Terraform:resource "google_cloud_run_v2_job" "default" {
name = "JOB"
location = "REGION"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
working_dir = WORKING_DIR
}
}
}
}
Reemplaza lo siguiente:
JOBpor el nombre del trabajo de Cloud Run.REGION: La Google Cloud región Por ejemplo,europe-west1.WORKING_DIR(opcional): Es 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 del 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, se usa la función de dependencias de contenedores. Especifica cualquier contenedor que tenga 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, gcloud CLI o YAML para especificar el orden de inicio:
Console
En la consola de Google Cloud , ve a la página Trabajos de Cloud Run:
Si creas un trabajo nuevo, sigue estos pasos:
- Haz clic en Implementar contenedor.
- Especifica el nombre del trabajo, la URL del contenedor del trabajo, la región y la cantidad de tareas.
- Haz clic en Contenedores, redes y seguridad para expandir la sección.
- Configura el contenedor de trabajo principal.
- Para agregar cada contenedor sidecar que implementas, haz clic en Agregar contenedor.
- Si un contenedor depende de otros contenedores, usa el menú Orden de inicio del contenedor para seleccionar los contenedores que Cloud Run debe iniciar antes del contenedor actual.
Si quieres configurar un trabajo existente, sigue estos pasos:
- Selecciona el trabajo que deseas actualizar.
- Haz clic en Ver y editar la configuración del trabajo.
- Haz clic en Contenedores, Conexiones, Seguridad para expandir la sección.
- Si un contenedor depende de otros contenedores, usa el menú Orden de inicio del contenedor para seleccionar esos contenedores.
Finaliza cualquier otra configuración necesaria y, luego, haz clic en Crear para un trabajo nuevo o en Actualizar para un trabajo existente. Espera a que finalice la implementación.
gcloud
Para implementar varios contenedores en un trabajo con un orden de inicio especificado, 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
Reemplaza lo siguiente:
JOBpor el nombre del trabajo de Cloud Run.CONTAINER_1_NAME: Es un nombre para el contenedor del trabajo principal.JOB_IMAGE: Es una referencia a la imagen del contenedor del trabajo principal, por ejemplo,us-docker.pkg.dev/cloudrun/container/job:latest.CONTAINER_2_NAME: Es un nombre para el contenedor de sidecar, por ejemplo,sidecar.SIDECAR_IMAGE: Es una referencia a la imagen del contenedor del sidecar.Si 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 trabajo nuevo, omite este paso. Si actualizas un trabajo existente, descarga su configuración de YAML:
gcloud run jobs describe JOB --format export > job.yaml
Actualiza 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"]}'Reemplaza lo siguiente:
CONTAINER1: Es el nombre del primer contenedor que depende de uno o más contenedores. Ten en cuenta que puedes configurar el nombre del contenedor en el YAML: Cloud Run generará un nombre de forma automática si no se especifica uno.CONTAINER2: Es el nombre del contenedor que se debe iniciar antes de CONTAINER1.CONTAINER3: Es el nombre del segundo contenedor que depende de uno o más contenedores.
En el ejemplo que se muestra en el fragmento YAML, CONTAINER2 se inicia primero, CONTAINER1 se inicia en segundo lugar y CONTAINER3 se inicia en último lugar.
Crea o actualiza el servicio con el siguiente comando:
gcloud run jobs replace job.yaml
El comando
gcloud run jobs replaceusa de forma predeterminada el archivojob.yamlsi está presente.
Visualiza la configuración del contenedor
Para ver la configuración actual del contenedor de tu trabajo de Cloud Run, usa la Google Cloud consola o Google Cloud CLI:
Console
En la Google Cloud consola, ve a la página de trabajos de Cloud Run:
Haz clic en el trabajo para abrir la página Detalles del trabajo.
Haz clic en Ver y editar la configuración del trabajo.
Ubica la configuración del contenedor en los detalles de configuración.
gcloud
Ejecuta el comando siguiente:
gcloud run jobs describe JOB
Busca la configuración de contenedores en la configuración mostrada.