Déclencheurs HTTP

Dans Cloud Functions, un déclencheur HTTP permet à une fonction de s'exécuter en réponse aux requêtes HTTP(S). Lorsque vous spécifiez un déclencheur HTTP pour une fonction, une URL est attribuée à cette fonction pour la réception des requêtes. Les déclencheurs HTTP acceptent les méthodes de requête GET, POST, PUT, DELETE et OPTIONS.

Dans Cloud Functions (2nd gen), les requêtes adressées à une URL de fonction nécessitent toujours le protocole HTTPS. Dans Cloud Functions (1st gen), vous pouvez choisir si HTTPS est requis lors du déploiement.

Par défaut, les requêtes adressées à une fonction avec un déclencheur HTTP nécessitent une authentification. Vous pouvez choisir d'autoriser les appels non authentifiés pendant le déploiement. Pour en savoir plus, consultez la section Autoriser l'appel de fonctions HTTP sans authentification.

Utilisez des fonctions HTTP pour mettre en œuvre des fonctions Cloud Functions capables de gérer des requêtes HTTP(S) générales.

Deployment

Vous pouvez spécifier un déclencheur HTTP lorsque vous déployez une fonction. Consultez la page Déployer une fonction Cloud pour obtenir des instructions générales sur le déploiement d'une fonction. Consultez cette section pour obtenir des informations supplémentaires spécifiques à la configuration des déclencheurs HTTP lors du déploiement.

gcloud

Si vous déployez à l'aide de gcloud CLI, les options ci-dessous permettent de configurer les déclencheurs HTTP :

gcloud functions deploy YOUR_FUNCTION_NAME \
--trigger-http \
[--allow-unauthenticated] \
[--security-level=SECURITY_LEVEL] \
...
  • L'option --trigger-http indique que la fonction utilise un déclencheur HTTP.
  • L'option --allow-unauthenticated indique que la fonction peut être appelée sans authentification. Si vous omettez cette option, les appels à la fonction nécessitent une authentification, ce qui est le fonctionnement par défaut. Pour en savoir plus, consultez la page Authentification pour l'appel.
  • (1st gen) L'option --security-level détermine si le point de terminaison de la fonction requiert HTTPS. La valeur secure-always signifie que HTTPS est requis et que les requêtes HTTP non-SSL ne sont pas acceptées. La valeur secure-optional signifie que HTTP et HTTPS sont tous deux acceptés. La valeur par défaut est secure-always.

Console

Si vous effectuez un déploiement à l'aide de la console Google Cloud, vous pouvez configurer un déclencheur HTTP dans la section Déclencheur.

  • Pour Cloud Functions (2nd gen), procédez comme suit :
    1. Sous HTTPS, dans le champ Authentification, sélectionnez une option selon que vous souhaitez autoriser les appels non authentifiés de votre fonction. Par défaut, l'authentification est requise. Pour en savoir plus, consultez la page Authentification pour l'appel.
  • Pour Cloud Functions (1st gen), procédez comme suit :
    1. Dans le champ Trigger (Déclencheur), sélectionnez HTTP.
    2. Dans le champ Authentification, sélectionnez une option selon que vous souhaitez autoriser les appels non authentifiés de votre fonction. Par défaut, l'authentification est requise. Pour en savoir plus, consultez la page Authentification pour l'appel.
    3. Cochez ou décochez la case Exiger le protocole HTTPS pour déterminer si le point de terminaison de la fonction requiert HTTPS. Si cette option n'est pas sélectionnée, les protocoles HTTP et HTTPS sont tous deux acceptés.

URL de la fonction

Une fois votre fonction déployée avec un déclencheur HTTP, vous pouvez récupérer son URL attribuée.

Les fonctions de 1re et 2e génération ont des URL attribuées au format suivant. Ces URL ont un format déterministe, ce qui signifie que vous pouvez prédire l'URL avant de déployer la fonction :

https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME

Les fonctions de 2e génération disposent également d'une URL attribuée associée au service Cloud Run sous-jacent. Ces URL n'ont pas de format déterministe, ce qui signifie que le deuxième champ étant un hachage aléatoire, vous ne pouvez pas prédire l'URL avant de déployer la fonction. Une fois que vous avez déployé la fonction, l'URL reste stable :

https://FUNCTION_NAME-RANDOM_HASH-REGION.a.run.app

Une URL cloudfunctions.net et une URL run.app de fonction de 2e génération se comporteront exactement de la même manière. Elles sont interchangeables.

Vous pouvez récupérer la ou les URL de votre fonction comme suit :

gcloud

  • Pour Cloud Functions (2nd gen), procédez comme suit :

    gcloud functions describe YOUR_FUNCTION_NAME \
    --gen2 \
    --region=YOUR_FUNCTION_REGION \
    --format="value(serviceConfig.uri)"
    
  • Pour Cloud Functions (1st gen), procédez comme suit :

    gcloud functions describe YOUR_FUNCTION_NAME \
    --format="value(httpsTrigger.url)"
    

Console

  1. Accédez à la page de présentation de Cloud Functions dans la console Google Cloud :

    Accéder à Cloud Functions

  2. Cliquez sur le nom de la fonction dont vous souhaitez récupérer l'URL.

  3. Cliquez sur l'onglet Modifier.

  4. Affichez l'URL de votre fonction dans la section Déclencheur.

Étapes suivantes