Ce guide présente une introduction sur la façon dont les autres services Google Cloud sont impliqués dans le processus de déploiement des fonctions Cloud Run.
Avant de commencer
Familiarisez-vous avec les concepts de Cloud Run Functions et du déploiement depuis la source à partir du guide Options de déploiement et modèle de ressources Cloud Run.
Présentation de l'architecture
Lorsque vous déployez le code source de votre fonction dans Cloud Run Functions, ce code source est stocké dans un bucket Cloud Storage. Cloud Build compile ensuite automatiquement votre code dans une image de conteneur, puis transfère cette image dans un registre d'images Artifact Registry. Cloud Run Functions accède à cette image lorsqu'il doit exécuter le conteneur pour exécuter votre fonction.
Dans le schéma suivant, la zone "Cloud Run Functions" représente une fonction déployée dans Cloud Run, à l'aide de l'API Cloud Run Admin ou de l'API Cloud Functions. En règle générale, les fonctions les plus récentes sont déployées à l'aide de l'API Cloud Run Admin, et les fonctions les plus anciennes à l'aide de l'API Cloud Functions.
Selon l'API utilisée lors du déploiement d'une fonction, les événements suivants se produisent :
Si vous avez déployé votre fonction à l'aide de l'API Cloud Run Admin, les éléments suivants se produisent :
Votre code source est importé dans un bucket Cloud Storage sans période de conservation.
- Si vous utilisez le chiffrement par défaut, le nom du bucket est généré automatiquement et nommé
run-sources-PROJECT_ID-REGION
. - Si vous protégez vos données avec des clés de chiffrement gérées par le client (CMEK), le nom du bucket n'est pas généré automatiquement. Vous devez donc en fournir un.
- Si vous utilisez le chiffrement par défaut, le nom du bucket est généré automatiquement et nommé
Le code source est envoyé à Cloud Build, où les buildpacks de Google Cloud et le Functions Framework créent une image de conteneur. Notez que le compte de service Cloud Build crée l'image de conteneur. Par défaut, Cloud Run utilise le type de machine
e2-standard-2
fourni par Cloud Build.Votre image de conteneur est ensuite importée dans Artifact Registry via un bucket créé automatiquement et nommé
REGION-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy
.L'image est déployée dans Cloud Run en tant que service.
Vous pouvez déclencher ou appeler la fonction avec Eventarc, Pub/Sub ou d'autres déclencheurs HTTP.
Si vous avez déployé votre fonction à l'aide de l'API Cloud Functions (v2), les éléments suivants se produisent :
Votre code source est importé dans un bucket Cloud Storage sans période de conservation.
Le nom du bucket est généré automatiquement et se présente comme suit :
- Si vous utilisez le chiffrement par défaut, ce bucket est nommé
gcf-v2-sources-PROJECT_NUMBER-REGION
. - Si vous protégez vos données avec des CMEK, le bucket est nommé
gcf-sources-PROJECT_NUMBER-REGION-CMEK_KEY_HASH
.
- Si vous utilisez le chiffrement par défaut, ce bucket est nommé
Le code source est envoyé à Cloud Build, où les buildpacks de Google Cloud et le Functions Framework créent une image de conteneur. Notez que le compte de service Cloud Build crée l'image de conteneur. Par défaut, Cloud Run utilise le type de machine
e2-standard-2
fourni par Cloud Build.Votre image de conteneur est ensuite importée dans Artifact Registry via un bucket créé automatiquement et nommé
REGION-docker.pkg.dev/PROJECT_ID/gcf-artifacts
.L'image est déployée dans Cloud Run en tant que service.
Vous pouvez déclencher ou appeler la fonction avec Eventarc, Pub/Sub ou d'autres déclencheurs HTTP.
Étapes suivantes
- Découvrez les différents types de fonctions et les options disponibles pour déclencher des fonctions.
- Si vous avez déjà créé des fonctions avec l'API Cloud Functions, consultez le guide comparatif Cloud Run Functions pour en savoir plus sur les différences entre les deux versions de Cloud Run Functions.