ID de la région
Le REGION_ID est un code abrégé que Google attribue en fonction de la région que vous sélectionnez lors de la création de votre application. Le code ne correspond pas à un pays ou une province, même si certains ID de région peuvent ressembler aux codes de pays et de province couramment utilisés. Pour les applications créées après février 2020, REGION_ID.r est inclus dans les URL App Engine. Pour les applications existantes créées avant cette date, l'ID de région est facultatif dans l'URL.
En savoir plus sur les ID de région.
Ce guide explique comment déployer vos applications existantes dans l' environnement standard sur Cloud Run. Les instructions s'appliquent aux environnements d'exécution de deuxième génération qui n'utilisent pas les anciens services groupés App Engine.
Les étapes décrites dans ce guide n'affectent pas les fonctionnalités ni le flux de trafic de votre application App Engine existante. Le service Cloud Run nouvellement créé est une réplique du service App Engine que vous pouvez tester indépendamment.
Cloud Run utilise en grande partie la même infrastructure que l'environnement standard App Engine, ce qui entraîne de nombreuses similitudes entre les plates-formes. Pour en savoir plus sur les similitudes et les différences entre App Engine et Cloud Run, y compris les avantages de la migration vers Cloud Run, consultez le résumé de la comparaison.Pour déployer sur Cloud Run, choisissez l'une des stratégies suivantes :
Utiliser la configuration locale d'un fichier
app.yaml(recommandé) : Choisissez cette option pour créer une image de conteneur directement à partir de votre code source local et la déployer sur Cloud Run. Cela garantit que toutes les modifications locales récentes apportées à votre code ou à votre configuration sont incluses dans le nouveau déploiement.Utiliser une image précédemment créée: Cette option est utile si vous n'avez pas accès au code source. Choisissez cette option pour déployer une copie exacte d'une version déjà exécutée sur App Engine, sans recréer l'image de conteneur. Cela est utile si vous souhaitez vérifier le comportement du déploiement actif sans modifier le code.
Avant de commencer
Assurez-vous que votre application App Engine s'exécute sans erreur. Vous devez avoir accès au code source de votre application App Engine si vous choisissez de déployer à l'aide de votre configuration locale.
Activez l'API Cloud Run Admin et l'API Artifact Registry :
Configurez votre projet et votre région à l'aide de la commande suivante :
gcloud auth login gcloud config set project PROJECT_ID gcloud config set run/region REGION gcloud components updateRemplacez les éléments suivants :
- PROJECT_ID: ID de votre Google Cloud projet.
- REGION : région dans laquelle vous souhaitez déployer votre service Cloud Run.
Recherchez les fonctionnalités incompatibles dans votre application et supprimez-les avant de migrer vers Cloud Run. Pour vérifier l'incompatibilité de votre application sans effectuer de migration ni de déploiement, exécutez la commande suivante :
gcloud beta app migrate-to-run --dry-runExaminez les résultats de la vérification de la compatibilité et apportez les modifications recommandées si nécessaire.
Passez en revue les différences Cloud Run suivantes :
Cloud Run utilise le terme
Revisionau lieu deVersionpour représenter chaque déploiement de modifications dans un service spécifique. Le premier déploiement de votre application sur un service dans Cloud Run a pour effet de créer la première révision de votre application. Chaque déploiement ultérieur d'un service crée une autre révision. En savoir plus sur le déploiement sur Cloud Run.Vous pouvez déployer votre code source sur Cloud Run à l'aide de la gcloud CLI ou de la Google Cloud console pour configurer et gérer les paramètres de votre application. Cloud Run ne nécessite pas de configuration basée sur des fichiers. Cependant, les configurations YAML sont prises en charge.
Chaque service que vous déployez sur Cloud Run utilise le
run.appdomaine de l'URL pour accéder au service en mode public.Contrairement aux services App Engine qui sont publics par défaut, les services Cloud Run sont privés par défaut et vous obligent à les configurer pour l'accès public (non authentifié).
Rôles requis
Vous pouvez choisir de créer un compte de service ou d'utiliser le même compte de service géré par l'utilisateur dans Cloud Run que celui que vous utilisez pour l'environnement standard. Vous ou votre administrateur devez attribuer les rôles IAM suivants au compte déployeur et au compte de service Cloud Build.
Cliquez ici pour afficher les rôles requis pour le compte déployeur
Pour obtenir les autorisations nécessaires pour créer et déployer à partir de la source, demandez à votre administrateur de vous accorder les rôles IAM suivants :
- Développeur source Cloud Run (
roles/run.sourceDeveloper) sur votre projet - Consommateur Service Usage (
roles/serviceusage.serviceUsageConsumer) sur votre projet - Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur l'identité du service Cloud Run
Cliquez ici pour afficher les rôles requis pour le compte de service Cloud Build
Cloud Build utilise automatiquement le
compte de service Compute Engine par défaut comme compte de service Cloud Build par défaut pour créer votre code source et votre ressource Cloud Run, sauf si vous remplacez ce comportement. Pour
que Cloud Build puisse créer vos sources, demandez à votre administrateur d'accorder
le rôle Compilateur Cloud Run
(roles/run.builder) au compte de service Compute Engine par défaut
sur votre projet :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Remplacez PROJECT_NUMBER par votre Google Cloud
numéro de projet et PROJECT_ID par votre Google Cloud
ID de projet. Pour obtenir des instructions détaillées sur la façon de trouver l'ID du projet et le numéro de votre projet,
consultez Créer
et gérer des projets.
L'attribution du rôle de compilateur Cloud Run au compte de service Compute Engine par défaut prend quelques minutes pour se propager.
Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre service Cloud Run communique avec Google Cloud des API, telles que les bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les pages Autorisations de déploiement et Gérer les accès.
Utiliser la configuration locale d'un fichier app.yaml
Déployez votre configuration App Engine locale sur Cloud Run à l'aide de
la Google Cloud console ou de la gcloud CLI.
Console
Dans la Google Cloud console, accédez à la page App Engine.
Dans le menu de navigation, cliquez sur Migration hub (Hub de migration) pour déployer votre application App Engine sur Cloud Run. Le Migration hub (Hub de migration) vous permet également de vérifier les économies estimées sur Cloud Run pour l'estimation des coûts et les recommandations.
Sélectionnez le service que vous souhaitez migrer, puis cliquez sur Check compatibility (Vérifier la compatibilité).
Sélectionnez votre Service et votre Version pour afficher les résultats de compatibilité. Le hub de migration exécute un vérificateur de compatibilité pour identifier les fonctionnalités incompatibles.
Examinez les résultats pour vérifier que votre application est entièrement compatible avec Cloud Run, puis cliquez sur Continue (Continuer) pour accéder à la section Review &Deploy (Examiner et déployer).
Copiez la commande dans la section Deploy through gcloud (Déployer via gcloud), puis exécutez-la dans le répertoire de votre projet.
Cliquez sur View deployed versions (Afficher les versions déployées) pour afficher vos services App Engine déployés dans Cloud Run.
gcloud
Pour déployer votre service Cloud Run à l'aide du fichier app.yaml local d'une configuration App Engine existante, procédez comme suit :
Dans votre terminal, accédez au répertoire source où se trouve le fichier
app.yaml.Exécutez la commande suivante pour déployer votre service sur Cloud Run :
gcloud beta app migrate-to-runCette commande génère la configuration du fichier
service.yamlpour Cloud Run et l'enregistre localement dans le même répertoire que votre fichierapp.yaml. Pour en savoir plus, consultezgcloud beta app migrate-to-run.- Lorsque vous êtes invité à répondre à la question
Proceed with the deployment?(Poursuivre le déploiement ?), saisissezYpour créer une image de conteneur à partir de votre code source et déployer le service sur Cloud Run.
- Lorsque vous êtes invité à répondre à la question
Accédez à votre service Cloud Run déployé en ouvrant l'URL du service dans un navigateur Web.
Facultatif :
Si votre fichier
app.yamlse trouve dans un autre répertoire, spécifiez son chemin d'accès à l'aide de l'indicateur--appyaml:gcloud beta app migrate-to-run --appyaml=PATHRemplacez PATH par le chemin d'accès à votre fichier
app.yaml.Pour générer et exporter la configuration
service.yamlCloud Run sans déployer le service, utilisez l'indicateur--export-only:gcloud beta app migrate-to-run --export-only=EXPORT_PATHRemplacez EXPORT_PATH par le répertoire ou le chemin d'accès où vous souhaitez enregistrer le
service.yamlfichier.
Utiliser une image précédemment créée
Pour déployer à l'aide d'une image de conteneur précédemment créée à partir d'une version App Engine déployée au lieu de recréer l'image de conteneur à partir d'un fichier app.yaml local, procédez comme suit :
Vous n'avez pas besoin du code source de votre application pour ce déploiement.
Exécutez la commande suivante pour déployer votre service sur Cloud Run. Cette commande utilise l'image de conteneur d'un déploiement App Engine actif et ne capture pas les modifications récentes de votre fichier
app.yamllocal, ce qui peut entraîner un déploiement obsolète :gcloud beta app migrate-to-run --service=SERVICE --version=VERSION --from-imageRemplacez les éléments suivants :
- SERVICE : nom de votre service App Engine.
- VERSION : ID de version de votre service.
Cette commande récupère la configuration du service et de la version spécifiés pour générer le fichier
service.yamlpour Cloud Run. Pour en savoir plus, consultezgcloud beta app migrate-to-run.- Lorsque vous êtes invité à répondre à la question
Proceed with the deployment?(Poursuivre le déploiement ?), saisissezYpour exporter votre image de conteneur App Engine existante et déployer le service sur Cloud Run.
Accédez à votre service Cloud Run déployé en ouvrant l'URL du service dans un navigateur Web.
Facultatif :
Pour générer la configuration
service.yamlCloud Run sans déployer le service, exécutez la commande suivante :gcloud beta app migrate-to-run --service=SERVICE \ --version=VERSION \ --from-image \ --export-only=EXPORT_PATHRemplacez EXPORT_PATH par le répertoire ou le chemin d'accès où vous souhaitez enregistrer le fichier
service.yaml.
Fonctionnalités incompatibles
La commande de migration échoue si votre fichierapp.yaml contient l'une des configurations non compatibles suivantes :
Services entrants :
inbound_services: - warmupSolution : supprimez la section
inbound_servicesde votreapp.yamlfichier. Cloud Run préchauffe les instances à l'aide du point d'entrée du conteneur. Vous n'avez donc pas besoin de configurer les requêtes de préchauffage. Si vous devez exécuter du code d'initialisation avant de diffuser le trafic, configurez votre service pour qu'il s'exécute au démarrage, avant d'écouter les requêtes ou d'utiliser des vérifications de démarrage. Vous pouvez également configurer le nombre minimal d'instances pour maintenir les instances au chaud.
Pages d'erreur personnalisées :
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.htmlSolution : supprimez la section
error_handlersde votre fichierapp.yaml, et suivez l'une ou les deux stratégies suivantes :- Implémentez la gestion des exceptions directement dans le code de votre application. Interceptez les codes d'erreur HTTP standards, tels que
404ou500, et diffusez vos pages d'erreur HTML personnalisées à partir de la logique de votre application. - Si vous utilisez Cloud Load Balancing avec Cloud Run, configurez des réponses d'erreur personnalisées au niveau de l'équilibreur de charge. Cela vous permet de diffuser des pages d'erreur personnalisées à partir de Cloud Storage en fonction du code de réponse de votre service Cloud Run.
- Implémentez la gestion des exceptions directement dans le code de votre application. Interceptez les codes d'erreur HTTP standards, tels que
Services groupés pour les environnements d'exécution de deuxième génération :
app_engine_apis: trueSolution : supprimez le paramètre
app_engine_apisde votre fichierapp.yamlet migrez vers des API Google Cloud ou des alternatives tierces. Pour en savoir plus, consultez Migrer depuis les services groupés.Environnements d'exécution de première génération :
runtime: python27Solution : mettez à niveau votre application vers un environnement d'exécution de deuxième génération compatible. Pour en savoir plus, consultez la présentation de la migration vers les environnements d'exécution de deuxième génération.
Étape suivante
- Découvrez comment gérer vos services Cloud Run.
- Consultez le contrat d'exécution du conteneur Cloud Run pour comprendre les exigences et les comportements des conteneurs dans Cloud Run.
- Découvrez comment stocker des dépendances pour votre service nécessitant des clés API, des mots de passe ou d'autres informations sensibles à l'aide d'un gestionnaire de secrets.