Zones des fonctions Cloud Functions

Les fonctions Cloud Functions sont régionales. Cela signifie que l'infrastructure qui exécute votre fonction Cloud est située dans une région spécifique et gérée par Google pour être disponible de manière redondante dans toutes les zones de cette région.

Au moment de sélectionner la région dans laquelle vos fonctions Cloud vont s'exécuter, vos principales considérations doivent être la latence et la disponibilité. En règle générale, vous pouvez sélectionner la région la plus proche des utilisateurs de votre fonction Cloud, mais vous devez également tenir compte de l'emplacement des autres produits et services Google Cloud exploités par votre application. L'utilisation de services dans plusieurs zones peut avoir des répercussions sur la latence de votre application, ainsi que sur les tarifs.

Cloud Functions est disponible dans les régions suivantes avec des tarifs de niveau 1 :

  • us-central1 (Iowa)
  • us-east1 (Caroline du Sud)
  • us-east4 (Virginie du Nord)
  • europe-west1 (Belgique)
  • europe-west2 (Londres)
  • asia-east2 (Hong Kong)
  • asia-northeast1 (Tokyo)

Cloud Functions est disponible dans la région suivante avec des tarifs de niveau 2 :

  • europe-west3 (Francfort)

Vous pouvez déployer des fonctions dans différentes régions au sein d'un projet, mais la sélection d'une région pour une fonction est définitive.

Les fonctions dans une région donnée au sein d'un projet donné doivent porter des noms uniques (non sensibles à la casse). En revanche, les fonctions interrégionales ou sur plusieurs projets peuvent partager le même nom.

Notez que vous pouvez récupérer l'ensemble des emplacements le plus récent de manière automatisée à l'aide de la méthode project.locations/list de l'API Cloud Functions.

Sélectionner la région

Vous pouvez sélectionner une région pour votre fonction lors du déploiement.

gcloud

Si vous utilisez l'outil de ligne de commande gcloud, vous pouvez spécifier la région à l'aide de l'option --region. Exemple :

    gcloud functions deploy FUNCTION_NAME --region REGION FLAGS...
    

REGION est l'une des régions répertoriées ci-dessus.

Dans l'exemple ci-dessus, FLAGS... fait référence aux autres arguments que vous transmettez lors du déploiement de votre fonction. Pour en savoir plus sur la commande deploy, reportez-vous à la documentation de référence sur gcloud functions deploy.

Console

Si vous utilisez Cloud Console, vous pouvez sélectionner la région lorsque vous créez et déployez une fonction.

  1. Dans Cloud Console, accédez à la page de présentation de Cloud Functions.

    Accéder à la page de présentation de Cloud Functions

    Vérifiez que le projet pour lequel vous avez activé Cloud Functions est sélectionné.

  2. Cliquez sur Créer une fonction.

  3. Développez le menu Plus.

  4. Sous Région, sélectionnez votre région.

Définir une région par défaut

Vous pouvez définir une région par défaut à l'aide de l'outil de ligne de commande gcloud avec la commande suivante :

gcloud config set functions/region REGION

Exemple :

gcloud config set functions/region europe-west1
    

Bonnes pratiques pour modifier la région

Si vous devez modifier une région dans laquelle une fonction est déployée, suivez les recommandations ci-dessous.

Fonctions HTTP

Pour les fonctions HTTP, nous vous recommandons de commencer par redéployer votre fonction HTTP dans la région de destination (elle peut avoir le même nom), puis de modifier votre fonction d'origine pour rediriger sa requête HTTP vers la nouvelle fonction. Si les clients de votre fonction HTTP sont compatibles avec les redirections, vous pouvez simplement modifier votre fonction d'origine pour qu'elle renvoie un état de redirection HTTP (301) avec l'URL de votre nouvelle fonction. Si vos clients ne gèrent pas les redirections correctement, vous pouvez transférer la requête de la fonction d'origine vers la nouvelle fonction en envoyant une nouvelle requête de la fonction d'origine à la nouvelle fonction. Vérifiez enfin que tous les clients appellent la nouvelle fonction.

Fonctions d'arrière-plan

Les fonctions d'arrière-plan adoptent la sémantique de diffusion d'événements "au moins une fois" : cela signifie que dans certaines circonstances, elles peuvent recevoir des événements dupliqués. Ces fonctions doivent donc toujours être mises en œuvre pour être idempotentes. Si votre fonction est déjà idempotente, vous pouvez simplement la redéployer dans la nouvelle région avec le même déclencheur d'événements et supprimer l'ancienne fonction après avoir vérifié que la nouvelle reçoit correctement le trafic. Pendant cette transition, les deux fonctions recevront des événements.

Si votre fonction n'est pas idempotente pour le moment ou si son idempotence ne s'étend pas au-delà de la région, nous vous conseillons de commencer par mettre en œuvre l'idempotence avant de déplacer la fonction.