Déployer sur Cloud Run

Vous pouvez déployer une image hébergée par Artifact Registry sur Cloud Run.

Autorisations requises pour déployer

Pour déployer sur Cloud Run, vous devez disposer du rôle Propriétaire ou Éditeur, ou des rôles Administrateur et utilisateur de compte de service Cloud Run, ou de tout rôle personnalisé incluant cette liste spécifique d'autorisations.

Par défaut, Cloud Run utilise le compte de service Compute Engine comme identité pour les révisions. Ce compte de service par défaut dispose d'un accès en lecture seule aux dépôts Artifact Registry dans le même projet Google Cloud. Si vos dépôts se trouvent dans un projet différent ou si vous utilisez un compte de service géré par l'utilisateur en tant qu'identité pour vos révisions, vous devez accorder des autorisations Lecteur d'Artifact Registry au compte de service d'exécution. (Installation de Python groupée).

Déployer des fonctions depuis une source locale

Pour les langues acceptées, Cloud Run peut automatiquement:

  1. Conteneuriser le code source local.
  2. Transférez l'image de conteneur dans un dépôt Artifact Registry.
  3. Déployez l'image de conteneur Cloud Run à partir du dépôt.

Cloud Run envoie et extrait des images à l'aide du dépôt cloud-run-source-deploy dans la région que vous spécifiez au moment du déploiement. Si le dépôt n'existe pas, Cloud Run le crée pour vous si votre compte dispose des autorisations requises.

Pour plus d'informations, consultez la section Déployer à partir du code source. Vous pouvez également consulter les guides de démarrage rapide de Cloud Run pour les langages compatibles avec le déploiement à partir du code source.

Déployer des images de conteneurs

Vous déployez une image par tag ou condensé stockée dans Artifact Registry.

Le déploiement d'un service pour la première fois crée sa première révision. Notez que les révisions sont immuables. Si vous déployez à partir d'un tag d'image de conteneur, il sera transformé en condensé et la révision desservira toujours ce condensé.

Vous pouvez déployer un conteneur à l'aide de Cloud Console ou de la ligne de commande gcloud.

Console

Pour déployer une image de conteneur, procédez comme suit :

  1. Accédez à Cloud Run

  2. Cliquez sur Create service (Créer un service) pour afficher la page Créer un service.

  3. Sous Deployment platform (Plate-forme de déploiement) :

    1. Sélectionnez Cloud Run comme plate-forme de déploiement.

    2. Sélectionnez la région dans laquelle vous souhaitez créer votre service.

    3. Saisissez le nom du service. Les noms de service doivent être uniques par région et par projet ou par cluster. Un nom de service ne peut pas être modifié ultérieurement et est public lorsque vous utilisez Cloud Run.

  4. Sous Authentication (Authentification) :

    • Si vous créez une API ou un site Web public, sélectionnez Allow unauthenticated invocations (Autoriser les appels non authentifiés). En sélectionnant cette option, le rôle Demandeur IAM est attribué à l'identifiant spécial allUser. Vous pouvez utiliser IAM pour modifier ce paramètre ultérieurement après avoir créé le service.
    • Si vous souhaitez qu'un service sécurisé soit protégé par authentification, sélectionnez Require authentication (Exiger l'authentification).
  5. Cliquez sur Next (Suivant) pour passer à la deuxième page du formulaire de création de service :

  6. Dans la zone de texte Container image URL (URL de l'image du conteneur), indiquez l'URL d'une image, par exemple : us-central1-docker.pkg.dev/my-project/my-repo/my-image:latest

  7. Vous pouvez également cliquer sur Show Advanced Settings (Afficher les paramètres avancés) et sur les onglets suivants pour définir les éléments suivants :

  8. Cliquez sur Créer pour déployer l'image sur Cloud Run, puis attendez la fin du déploiement.

  9. Cliquez sur le lien URL affiché pour ouvrir le point de terminaison du service déployé.

Ligne de commande

Pour déployer une image de conteneur, procédez comme suit :

  1. Exécutez la commande suivante.

    gcloud run deploy SERVICE --image REPO-LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE \
    [--platform managed --region RUN-REGION]
    

    Où :

    • REPO-LOCATION est l'emplacement du dépôt. Exemple :us-central1
    • SERVICE correspond au nom du service sur lequel vous souhaitez effectuer le déploiement. Si le service n'existe pas encore, cette commande le crée lors du déploiement. Vous pouvez omettre ce paramètre, mais dans ce cas le nom du service vous sera demandé.
    • PROJECT-ID est l'ID du projet Google Cloud.
    • REPOSITORY est le nom du dépôt où l'image est stockée.
    • IMAGE est le nom de votre image, par exemple, us-central1-docker.pkg.dev/my-project/my-repo/my-image:latest.
    • RUN-REGION correspond à l'emplacement Cloud Run du déploiement. Si vous définissez un emplacement Cloud Run par défaut avec legcloud propriétérun/region, vous pouvez omettre--platform managed -region RUN-REGION] (Installation de Python groupée).

    Si vous créez une API ou un site Web public, vous pouvez autoriser les appels non authentifiés de votre service à l'aide de l'option --allow- unauthenticated. Cette action attribue le rôle IAM Demandeur Cloud Run à allUsers. Vous pouvez également spécifier --no-allow-unauthenticated pour interdire les appels non authentifiés. Si vous omettez l'une de ces options, vous êtes invité à confirmer l'exécution de la commande deploy.

  2. Patientez jusqu'à la fin du déploiement. Une fois l'opération réussie, un message de réussite s'affiche indiquant l'URL du service déployé.