Guide de démarrage rapide : Événements pour Cloud Run pour Anthos

Cette page vous explique comment configurer des événements pour Cloud Run pour Anthos et recevoir des événements de Cloud Storage.

Dans le cadre de ce guide démarrage rapide, vous allez effectuer les étapes suivantes :

  1. Créer un cluster GKE et activer Cloud Run pour Anthos sur Google Cloud.
  2. Initialiser des événements pour Cloud Run pour Anthos.
  3. Créer un agent d'événements pour acheminer les événements de la source vers le destinataire.
  4. Déployer un service Cloud Run pour Anthos qui reçoit des événements.
  5. Configurer Cloud Storage pour générer des événements.
  6. Générer et afficher un événement.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder à la page de sélection du projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Installez et initialisez le SDK Cloud.
  5. Assurez-vous que vous utilisez la dernière version de l'outil de ligne de commande gcloud.
  6. Définissez l'outil de ligne de commande gcloud pour utiliser votre projet GCP :

    gcloud config set project PROJECT-ID
    

  7. Installez les composants bêta de l'outil de ligne de commande gcloud :

    gcloud components install beta
    

  8. Activez les services utilisés dans ce guide de démarrage rapide :

    gcloud services enable cloudapis.googleapis.com
    gcloud services enable container.googleapis.com
    gcloud services enable containerregistry.googleapis.com
    gcloud services enable cloudbuild.googleapis.com
    
  9. Définissez les variables de configuration de l'outil de ligne de commande gcloud :
    gcloud config set run/cluster events-cluster
    gcloud config set run/cluster_location us-central1
    gcloud config set run/platform gke
    

  10. Facultatif : Vous pouvez vérifier les paramètres de configuration à l'aide de l'outil de ligne de commande gcloud en saisissant :

    gcloud config list
    

    Le résultat ressemble à ce qui suit :

    [run]
    cluster = events-cluster
    cluster_location = us-central1
    platform = gke
    

Créer un cluster GKE avec Cloud Run pour Anthos activé

  1. Créez un cluster Google Kubernetes Engine pour Cloud Run pour Anthos avec les modules complémentaires CloudRun, HttpLoadBalancing et HorizontalPodAutoscaling activés :

    gcloud beta container clusters create events-cluster \
      --addons=HttpLoadBalancing,HorizontalPodAutoscaling,CloudRun \
      --machine-type=n1-standard-4 \
      --enable-autoscaling --min-nodes=3 --max-nodes=10 \
      --no-issue-client-certificate --num-nodes=3 --image-type=cos \
      --enable-stackdriver-kubernetes \
      --scopes=cloud-platform,logging-write,monitoring-write,pubsub \
      --zone us-central1 \
      --release-channel=rapid
    
  2. Attendez quelques minutes que la création du cluster soit terminée. Au cours du processus de création, des avertissements peuvent s'afficher, que vous pouvez ignorer en toute sécurité. Une fois la création du cluster terminée, le résultat est semblable à celui-ci :

    Creating cluster events-cluster...done.
    Created [https://container.googleapis.com/v1beta1/ \
    projects/my-project/zones/us-central1/clusters/events-cluster].
    

    my-project correspond à l'ID de votre projet. Vous venez de créer un cluster Google Kubernetes Engine nommé events-cluster dans le projet my-project.

Initialiser des événements pour Cloud Run pour Anthos

Pour initialiser des événements pour Cloud Run pour Anthos.

  1. Initialisez les événements pour Cloud Run pour Anthos à l'aide de l'outil de ligne de commande gcloud :

    gcloud beta events init --platform gke
    
    1. Lorsque vous y êtes invité, sélectionnez events-cluster comme cluster GKE.

    2. Saisissez Y à toutes les invites vous demandant de créer des comptes de service, liez-les à des rôles spécifiques, en générant de nouvelles clés, et activez les services nécessaires.

    Cela crée des pods dans deux espaces de noms Kubernetes appelés cloud-run-events et knative-eventing.

  2. Facultatif : Vérifiez que le pod a bien été créé :

    kubectl get pods -n cloud-run-events
    

    Le résultat ressemble à ce qui suit :

      NAME                         READY   STATUS    RESTARTS   AGE
      controller-9cc679b67-2952n   1/1     Running   0          22s
      webhook-8576c4cfcb-dhz82     1/1     Running   0          16m
    

    Pour vérifier l'espace de noms knative-eventing des pods, saisissez :

    kubectl get pods -n knative-eventing
    

    Le résultat ressemble à ce qui suit :

      NAME                                   READY   STATUS    RESTARTS   AGE
      eventing-controller-77f46f6cf8-kj9ck   1/1     Running   0          17m
      eventing-webhook-5bc787965f-hcmwg      1/1     Running   0          17m
    

Créer un agent d'événements

Dans le cas des événements Cloud Run pour Anthos, les agents acheminent les événements de la source vers un service de destination. Dans ce guide de démarrage rapide, vous allez créer un agent qui achemine les événements de Cloud Storage vers un service Cloud Run pour Anthos.

Pour créer un agent, procédez comme suit :

  1. Créez un espace de noms events :

    kubectl create namespace events
    
  2. Initialisez l'espace de noms avec le secret par défaut :

    gcloud beta events namespaces init events \
      --copy-default-secret
    
  3. Créez l'agent d'événements :

    gcloud beta events brokers create default \
      --namespace events
    
  4. Facultatif : Après quelques minutes, vous pouvez vérifier l'état de votre agent en exécutant la commande suivante :

    kubectl get brokers \
      -n events
    

Déployer un service Cloud Run pour Anthos pour recevoir des événements

Déployez un service Cloud Run pour Anthos qui reçoit les événements de l'agent et les consigne.

Pour déployer le service Cloud Run pour Anthos, procédez comme suit :

  1. Clonez le dépôt :

    Python

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    cd python-docs-samples/eventarc/audit-storage
    

    Java

    git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
    cd java-docs-samples/eventarc/audit-storage
    

    Go

    git clone https://github.com/GoogleCloudPlatform/golang-samples.git
    cd golang-samples/eventarc/audit_storage
    

    Node.js

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
    cd nodejs-docs-samples/eventarc/audit-storage
    

    C#

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
    cd dotnet-docs-samples/eventarc/audit-storage
    
  2. Créez le conteneur et importez-le dans Cloud Build :

    gcloud builds submit \
     --tag gcr.io/$(gcloud config get-value project)/events-quickstart-container
    
  3. Déployez l'image de conteneur dans Cloud Run pour Anthos :

    gcloud run deploy events-quickstart-receiver \
       --namespace=events \
       --image gcr.io/$(gcloud config get-value project)/events-quickstart-container
    

    Lorsque l'URL du service s'affiche, cela signifie que le déploiement a réussi.

Configurer Cloud Storage

Cloud Storage génère des événements en cas de modification du bucket de stockage et les envoie à l'agent d'événements. Pour configurer Cloud Storage, procédez comme suit :

  1. Créez un bucket Cloud Storage à l'aide de l'outil de ligne de commande gsutil :

    gsutil mb \
        -p $(gcloud config get-value project) \
        -l us-central1 \
        gs://"events-quickstart-$(gcloud config get-value project)"
    

    Dans cet exemple, le bucket Cloud Storage est créé dans la région us-central1.

  2. Récupérez le compte de service Cloud Storage :

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/projects/$(gcloud config get-value project)/serviceAccount"
    
  3. Attribuez au compte de service Cloud Storage les droits de publication sur Pub/Sub :

    gcloud projects add-iam-policy-binding $(gcloud config get-value project) \
        --member=serviceAccount:CLOUD-STORAGE-SERVICE-ACCOUNT \
        --role roles/pubsub.publisher
    

Créer un déclencheur Cloud Storage

Lorsque vous créez un déclencheur, vous devez spécifier le service Cloud Run pour Anthos qui reçoit les événements de Cloud Storage.

  1. Créez le déclencheur Cloud Storage :

    gcloud beta events triggers create trigger-storage \
      --namespace events \
      --target-service events-quickstart-receiver \
      --type=google.cloud.storage.object.v1.finalized \
      --parameters bucket=events-quickstart-$(gcloud config get-value project)
    

    Cette action crée un déclencheur pour votre bucket Cloud Storage events-quickstart-bucket.

  2. Facultatif : Vous pouvez vérifier l'état du déclencheur en exécutant la commande suivante :

    gcloud beta events triggers list \
      --namespace=events
    
  3. Notez que même si la création du déclencheur est terminée et que le déclencheur est prêt, il peut lui falloir jusqu'à 10 minutes pour propager et filtrer des événements Cloud Storage.

Générer et afficher un événement

  1. Pour générer un événement, créez un fichier texte portant le nom de fichier random.txt et contenant le texte "Hello World", puis importez-le dans Cloud Storage à l'aide de l'outil de ligne de commande gsutil.

    echo "Hello World" > random.txt
    gsutil cp random.txt gs://events-quickstart-$(gcloud config get-value project)/random.txt
    

    Votre importation génère un événement, et le service Cloud Run pour Anthos consigne le message de l'événement.

  2. Pour afficher le message dans Cloud Logging :

    Accéder à la page "Visionneuse de journaux"

Félicitations ! Vous venez de déployer des événements pour Cloud Run pour Anthos, de déclencher un événement et d'enregistrer son contenu.

Nettoyer

Pour arrêter la facturation de toutes les ressources utilisées dans votre projet Cloud de test, supprimez le projet :

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Étapes suivantes