Activaciones de volúmenes de Cloud Storage para trabajos

En esta página, se muestra cómo activar un bucket de Cloud Storage como un volumen de almacenamiento mediante el uso de activaciones de volúmenes de Cloud Run.

Activar el bucket como un volumen en Cloud Run presenta el contenido del bucket como archivos en el sistema de archivos del contenedor, lo que permite el uso de operaciones y bibliotecas estándar del sistema de archivos para acceder a ese sistema de archivos.

Limitaciones

Cloud Run usa Cloud Storage FUSE para esta activación de volumen. Por lo tanto, debes tener en cuenta la siguiente información cuando actives un bucket de Cloud Storage como un volumen:

  • Cloud Storage FUSE no proporciona control de simultaneidad para varias operaciones de escritura (bloqueo de archivos) en el mismo archivo. Cuando varias operaciones de escritura intentan reemplazar un archivo, la última escritura gana y todas las escrituras anteriores se pierden.
  • Cloud Storage FUSE no es un sistema de archivos compatible con POSIX. Si deseas obtener más información, consulta la documentación de Cloud Storage FUSE.

Antes de comenzar

Necesitas un bucket de Cloud Storage para activarlo como volumen.

Controles de acceso de IAM para buckets de Cloud Storage

La identidad del servicio de tu servicio de Cloud Run se autentica en un bucket de Cloud Storage protegido por IAM.

Asegúrate de que la cuenta de servicio configurada tenga los permisos necesarios para el acceso a los archivos.

Activa un volumen de Cloud Storage

Puedes activar varios buckets en diferentes rutas de activación. También puedes activar un volumen en más de un contenedor con las mismas (o diferentes) rutas de activación en diferentes contenedores.

Si usas varios contenedores, primero especifica los volúmenes y, luego, especifica las activaciones de volúmenes de cada contenedor.

Línea de comandos

  • Para agregar un volumen y activarlo, sigue estos pasos:

    gcloud beta run jobs update JOB \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH

    Reemplaza lo siguiente:

    • JOB por el nombre de tu trabajo.
    • MOUNT_PATH por la ruta de acceso relativa en la que activarás el volumen, por ejemplo, /cache.
    • VOLUME_NAME por el nombre que quieras para el volumen. El valor VOLUME_NAME se usa para asignar el volumen a la activación de volúmenes.
    • BUCKET_NAME por el nombre del bucket de Cloud Storage.
  • Para activar el volumen como un volumen de solo lectura, sigue estos pasos:

    --add-volume=name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,readonly=true
  • Si usas varios contenedores, primero especifica los volúmenes y, luego, especifica las activaciones de volumen de cada contenedor:

    gcloud beta run jobs update JOB \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME \
    --container CONTAINER_1 \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH \
    --container CONTAINER_2 \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH2

YAML

Descarga y visualiza la configuración del trabajo existente mediante el comando gcloud run jobs describe --format export, que genera resultados limpios en formato YAML. Luego, modifica los campos que se describen a continuación y sube el YAML modificado mediante el comando gcloud run jobs replace. Asegúrate de modificar los campos tal como se indica en la documentación.

  1. Para ver y descargar la configuración, ejecuta el siguiente comando:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Actualiza MOUNT_PATH, VOLUME_NAME, BUCKET_NAME y IS_READ_ONLYsegún sea necesario.

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB_NAME
    spec:
      metadata:
        annotations:
          run.googleapis.com/launch-stage: BETA
      template:
        metadata:
          annotations:
            run.googleapis.com/execution-environment: gen2
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
                volumeMounts:
                - mountPath: MOUNT_PATH
                  name: VOLUME_NAME
              volumes:
              - name: VOLUME_NAME
                csi:
                  driver: gcsfuse.run.googleapis.com
                  readOnly: IS_READ_ONLY
                  volumeAttributes:
                    bucketName: BUCKET_NAME

    Reemplazar

    • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • MOUNT_PATH por la ruta de acceso relativa en la que activarás el volumen, por ejemplo, /cache.
    • VOLUME_NAME por el nombre que quieras para el volumen. El valor VOLUME_NAME se usa para asignar el volumen a la activación de volúmenes.
    • IS_READ_ONLY por True para que el volumen sea de solo lectura o False para permitir escrituras.
    • BUCKET_NAME con el nombre del bucket de Cloud Storage.
  3. Reemplaza el servicio por la configuración nueva mediante el siguiente comando:

    gcloud beta run jobs replace job.yaml

Visualiza la configuración de activaciones de volumen

Console

  1. En la consola de Google Cloud, ve a la página de trabajos de Cloud Run:

    Ir a Trabajos de Cloud Run

  2. Haz clic en el trabajo que te interesa para abrir la página Detalles del trabajo.

  3. Haz clic en la pestaña Volúmenes.

  4. Ubica la configuración de activaciones de volumen en la página de detalles de los volúmenes.

Línea de comandos

  1. Usa el siguiente comando:

    gcloud run jobs describe JOB_NAME
  2. Ubica la configuración de activaciones de volumen en la configuración que se muestra.