Cette page explique comment installer un bucket Cloud Storage en tant que volume de stockage, à l'aide des installations de volume Cloud Run.
L'installation du bucket en tant que volume dans Cloud Run présente le contenu du bucket sous forme de fichiers dans le système de fichiers du conteneur, ce qui permet d'utiliser des opérations et des bibliothèques de systèmes de fichiers standards pour accéder à ce système de fichiers.
Limites
Cloud Run utilise Cloud Storage FUSE pour cette installation de volume. Quelques points sont à garder à l'esprit lors de l'installation d'un bucket Cloud Storage en tant que volume :
- Cloud Storage FUSE ne permet pas de contrôler la simultanéité pour plusieurs écritures (verrouillage de fichiers) dans un même fichier. Lorsque plusieurs écritures tentent de remplacer un fichier, la dernière écriture l'emporte et toutes les écritures précédentes sont perdues.
- Cloud Storage FUSE n'est pas un système de fichiers entièrement compatible avec POSIX. Pour plus de détails, consultez la documentation de Cloud Storage FUSE.
Avant de commencer
Vous avez besoin d'un bucket Cloud Storage à installer en tant que volume.
Contrôles des accès IAM pour les buckets Cloud Storage
L'identité du service Cloud Run s'authentifie auprès d'un bucket Cloud Storage protégé par IAM.
Assurez-vous que le compte de service configuré dispose des autorisations nécessaires pour accéder aux fichiers.
Installer un volume Cloud Storage
Vous pouvez installer plusieurs buckets sur différents chemins d'installation. Vous pouvez également installer un volume sur plusieurs conteneurs à l'aide de chemins d'installation identiques ou différents sur l'ensemble des conteneurs.
Si vous utilisez plusieurs conteneurs, spécifiez les volumes, puis spécifiez les installations de volume pour chaque conteneur.
Console
Dans la console Google Cloud, accédez à Cloud Run :
Cliquez sur Créer un service si vous configurez un nouveau service sur lequel effectuer un déploiement. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.
Si vous configurez un nouveau service, remplissez la page initiale des paramètres du service selon vos besoins, puis cliquez sur Conteneur(s), volumes, mise en réseau et sécurité pour développer la page de configuration du service.
Cliquez sur l'onglet Volumes.
- Sous Volumes :
- Cliquez sur Ajouter un volume.
- Dans la liste déroulante Type de volume, sélectionnez "Bucket Cloud Storage" comme type de volume.
- Dans le champ Nom du volume, saisissez le nom du volume que vous souhaitez utiliser.
- Parcourez les buckets Cloud Storage et sélectionnez celui à utiliser pour le volume ou, si vous le souhaitez, créez un bucket.
- Si vous souhaitez passer le bucket en lecture seule, cochez la case "Lecture seule".
- Cliquez sur OK.
- Cliquez sur l'onglet Conteneur.
- Cliquez sur l'onglet Montages de volume.
- Cliquez sur Monter le volume.
- Sélectionnez le volume de stockage dans le menu.
- Spécifiez le chemin d'accès où vous souhaitez installer le volume.
- Cliquez sur Terminé.
- Sous Volumes :
Cliquez sur Créer ou Déployer.
Ligne de commande
Remarque : Nous vous présentons la commande gcloud beta run services update
, mais vous pouvez également exécuter la commande gcloud beta run deploy
avec les mêmes paramètres que ceux indiqués.
Pour ajouter un volume et l'installer, procédez comme suit :
gcloud beta run services update SERVICE \ --execution-environment gen2 \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
Remplacez :
- SERVICE par le nom de votre service.
- MOUNT_PATH par le chemin relatif où vous installez le volume, par exemple,
/cache
. - VOLUME_NAME par le nom que vous souhaitez pour votre volume. La valeur VOLUME_NAME permet de mapper le volume à l'installation du volume.
- BUCKET_NAME par le nom de votre bucket Cloud Storage.
Pour installer votre volume en tant que volume en lecture seule, procédez comme suit :
--add-volume=name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,readonly=true
Si vous utilisez plusieurs conteneurs, spécifiez d'abord vos volumes, puis les installations de volumes pour chaque conteneur :
gcloud beta run services update SERVICE \ --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
Vous pouvez télécharger et afficher les configurations de service existantes à l'aide de la commande gcloud run services describe --format export
, qui renvoie les résultats nettoyés au format YAML.
Vous pouvez ensuite modifier les champs décrits ci-dessous et importer le fichier YAML modifié à l'aide de la commande gcloud run services replace
.
Veillez à ne modifier que les champs indiqués.
Pour afficher et télécharger la configuration, exécutez la commande suivante :
gcloud run services describe SERVICE --format export > service.yaml
Modifiez-les si nécessaire.
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: annotations: run.googleapis.com/execution-environment: gen2 spec: containers: - image: IMAGE_URL volumeMounts: - name: VOLUME_NAME mountPath: MOUNT_PATH volumes: - name: VOLUME_NAME csi: driver: gcsfuse.run.googleapis.com readOnly: IS_READ_ONLY volumeAttributes: bucketName: BUCKET_NAME
Remplacer
- IMAGE_URL par une référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante :LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- MOUNT_PATH par le chemin relatif où vous installez le volume, par exemple,
/cache
. - VOLUME_NAME par le nom que vous souhaitez pour votre volume. La valeur VOLUME_NAME permet de mapper le volume à l'installation du volume.
- IS_READ_ONLY par
True
pour passer le volume en lecture seule ouFalse
pour autoriser les écritures. - BUCKET_NAME par le nom du bucket Cloud Storage
- IMAGE_URL par une référence à l'image de conteneur, par exemple
Remplacez la configuration du service en exécutant la commande suivante :
gcloud run services replace service.yaml
Afficher les paramètres des installations de volumes
Procédez comme suit pour afficher les paramètres actuels des installations de volumes pour votre service Cloud Run :
Console
Dans la console Google Cloud, accédez à Cloud Run :
Cliquez sur le service qui vous intéresse pour ouvrir la page Informations sur le service.
Cliquez sur l'onglet Révisions.
Dans le panneau de détails sur la droite, le paramètre "Montages de volumes" est listé sous l'onglet Volumes.
Ligne de commande
Exécutez la commande suivante :
gcloud run services describe SERVICE
Recherchez le paramètre correspondant aux montages de volumes dans la configuration renvoyée.