Nesta página, você aprende a montar um bucket do Cloud Storage como um volume de armazenamento usando as montagens de volumes do Cloud Run.
Ao montar o bucket como um volume no Cloud Run, o conteúdo dele é apresentado como arquivos no sistema de arquivos do contêiner, o que permite o uso de operações e bibliotecas padrão do sistema de arquivos para acessar esse sistema.
.Limitações
O Cloud Run usa o Cloud Storage FUSE para essa montagem de volume. Devido a isso, há alguns pontos a serem considerados ao montar um bucket do Cloud Storage como um volume:
- O Cloud Storage FUSE não oferece controle de simultaneidade para várias gravações (bloqueio de arquivo) no mesmo arquivo. Quando várias gravações tentam substituir um arquivo, a última é bem-sucedida e todas as anteriores são perdidas.
- O Cloud Storage FUSE não é um sistema de arquivos totalmente compatível com POSIX. Para mais detalhes, consulte a documentação do Cloud Storage FUSE.
Antes de começar
Você precisa de um bucket do Cloud Storage para montar como o volume.
Montar um volume do Cloud Storage
É possível montar vários buckets em diferentes caminhos de montagem. Também é possível montar um volume em mais de um contêiner usando caminhos de montagem iguais ou diferentes nos contêineres.
Ao usar vários contêineres, primeiro especifique os volumes e, depois, as montagens de volume de cada contêiner.
Linha de comando
Para adicionar um volume e montá-lo:
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
Substitua:
JOB
pelo nome do job.- MOUNT_PATH pelo caminho relativo em que você está montando o volume, por exemplo,
/cache
. - VOLUME_NAME pelo nome que você quiser para o volume. O valor VOLUME_NAME é usado para mapear o volume para a montagem associada.
- BUCKET_NAME pelo nome do bucket do Cloud Storage.
Para montar o volume como somente leitura:
--add-volume=name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,readonly=true
Se você estiver usando vários contêineres, primeiro especifique os volumes e, em seguida, as ativações de volume para cada contêiner:
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
Faça o download e consulte a configuração do job que já existe usando o comando gcloud run jobs describe --format export
, que gera resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run jobs replace
.
Modifique os campos somente conforme documentado.
Para visualizar e fazer o download da configuração:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Atualize MOUNT_PATH, VOLUME_NAME, BUCKET_NAME e IS_READ_ONLY conforme necessário.
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
Substituir
- IMAGE_URL por uma referência à imagem de contêiner. Por
exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- MOUNT_PATH pelo caminho relativo em que você está montando o volume, por exemplo,
/cache
. - VOLUME_NAME pelo nome que você quiser para o volume. O valor VOLUME_NAME é usado para mapear o volume para a montagem associada.
- IS_READ_ONLY com
True
para tornar o volume somente leitura ouFalse
para permitir gravações. - BUCKET_NAME pelo nome do bucket do Cloud Storage.
- IMAGE_URL por uma referência à imagem de contêiner. Por
exemplo,
Substitua o serviço pela nova configuração usando o seguinte comando:
gcloud beta run jobs replace job.yaml
Acessar configurações de montagem de volume
Console
No console do Google Cloud, acesse a página de jobs do Cloud Run:
Clique no job em que você tem interesse para abrir a página Detalhes do job.
Clique na guia Volumes.
Localize a configuração de montagens de volume na página de detalhes dos volumes.
Linha de comando
Use o comando a seguir:
gcloud run jobs describe JOB_NAME
Localize a configuração de montagens de volume na configuração retornada.