App Engine-Aufgabe einer Cloud Tasks-Warteschlange hinzufügen

In dieser Kurzanleitung erfahren Sie, wie Sie mit der Cloud Tasks API eine App Engine-Aufgabe einer Cloud Tasks-Warteschlange hinzufügen.

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto haben Google Cloud, erstellen Sie eines, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Installieren Sie die Google Cloud CLI.

  3. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  4. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  5. Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.

    Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind

    • Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
    • Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (roles/resourcemanager.projectCreator), die die resourcemanager.projects.create Berechtigung enthält. Rollen zuweisen.
    • Erstellen Sie ein Google Cloud Projekt:

      gcloud projects create PROJECT_ID

      Ersetzen Sie PROJECT_ID durch einen Namen für das Google Cloud Projekt, das Sie erstellen.

    • Wählen Sie das Google Cloud Projekt aus, das Sie erstellt haben:

      gcloud config set project PROJECT_ID

      Ersetzen Sie PROJECT_ID durch den Namen Ihres Google Cloud Projekts.

  6. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  7. Aktivieren Sie die Cloud Resource Manager API und die Cloud Tasks API:

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Rollen zuweisen.

    gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
  8. Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:

    gcloud auth application-default login

    Wenn Sie Cloud Shell verwenden, ist dieser Schritt nicht erforderlich.

    Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.

  9. Installieren Sie die Google Cloud CLI.

  10. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  11. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  12. Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.

    Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind

    • Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
    • Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (roles/resourcemanager.projectCreator), die die resourcemanager.projects.create Berechtigung enthält. Rollen zuweisen.
    • Erstellen Sie ein Google Cloud Projekt:

      gcloud projects create PROJECT_ID

      Ersetzen Sie PROJECT_ID durch einen Namen für das Google Cloud Projekt, das Sie erstellen.

    • Wählen Sie das Google Cloud Projekt aus, das Sie erstellt haben:

      gcloud config set project PROJECT_ID

      Ersetzen Sie PROJECT_ID durch den Namen Ihres Google Cloud Projekts.

  13. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  14. Aktivieren Sie die Cloud Resource Manager API und die Cloud Tasks API:

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Rollen zuweisen.

    gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
  15. Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:

    gcloud auth application-default login

    Wenn Sie Cloud Shell verwenden, ist dieser Schritt nicht erforderlich.

    Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.

  16. Das App Engine-Standarddienstkonto wird automatisch erstellt, wenn Sie App Engine verwenden. Sie können dieses Dienstkonto verwenden, wenn Sie diese Kurzanleitung ausprobieren. Abhängig von der Konfiguration Ihrer Organisationsrichtlinie wird dem Standarddienstkonto für Ihr Projekt jedoch möglicherweise nicht automatisch die Rolle Editor zugewiesen.
      In diesem Fall müssen Sie dem Dienstkonto die folgenden Rollen zuweisen:
    1. Artifact Registry-Administrator (roles/artifactregistry.admin)
    2. Artifact Registry-Writer für „Bei Push erstellen“ (roles/artifactregistry.createOnPushWriter)
    3. Compute-Administrator (roles/compute.admin)
    4. Logs Writer (roles/logging.logWriter)
    5. Storage-Objekt-Betrachter (roles/storage.objectViewer)

App Engine-Anwendung hinzufügen

Wenn Sie eine App Engine-Aufgabe verwenden und eine Anwendung in der App Engine-Standardumgebung bereitstellen möchten, müssen Sie Ihrem Projekt eine App Engine-Anwendung hinzufügen.

  1. Rufen Sie in der Google Cloud Console die Seite App Engine auf.

    Zu App Engine

  2. Führen Sie im Dialogfeld Willkommen bei App Engine einen der folgenden Schritte aus:

    • Wenn Sie bereits eine App Engine-Anwendung erstellt haben und die Meldung Ihre App Engine-Anwendung wurde erstellt angezeigt wird, können Sie die restlichen Schritte in diesem Abschnitt überspringen und mit den Schritten im Abschnitt Beispiel installieren und bereitstellen fortfahren.

      oder

    • Wenn Sie noch keine App Engine-Anwendung erstellt haben, klicken Sie auf Anwendung erstellen und fahren Sie mit den restlichen Schritten in diesem Abschnitt fort.

  3. Wählen Sie eine Region für Ihre Anwendung aus und notieren Sie sie.

    Beachten Sie, dass europe-west und us-central in Cloud Tasks-Befehlen jeweils europe-west1 und us-central1 genannt werden.

  4. Wählen Sie kein Dienstkonto aus. Das App Engine-Standarddienstkonto wird verwendet.

  5. Klicken Sie auf Weiter.

    Die Anwendung wird konfiguriert und erstellt. Das kann einige Minuten dauern.

  6. Laden Sie das Cloud SDK nicht herunter, sondern klicken Sie auf Ich führe diesen Schritt später aus.

    Die Meldung Ihre App Engine-Anwendung wurde erstellt sollte angezeigt werden.

Beispiel installieren und bereitstellen

Das in dieser Kurzanleitung verwendete Node.js-Beispiel besteht aus zwei Dateien: createTask.js wird lokal als Befehlszeilentool ausgeführt, um Aufgaben zu erstellen und der Aufgabenwarteschlange hinzuzufügen. server.js wird in App Engine als Worker-Dienst bereitgestellt, um die Aufgabe zu verarbeiten.

  1. Klonen Sie das Beispielanwendungs-Repository in Ihrem Terminal auf Ihren lokalen Computer.

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
    
  2. Wechseln Sie in das Verzeichnis mit dem Beispielcode.

    cd nodejs-docs-samples/cloud-tasks/snippets
    
  3. Installieren Sie alle Abhängigkeiten mit einem Node.js-Paketmanager.

    Sie können NPM verwenden:

    npm install
    

    Oder Sie verwenden Yarn:

    yarn install
    
  4. Stellen Sie den Worker-Dienst (server.js) in der App Engine-Standardumgebung bereit.

    gcloud app deploy app.yaml
    
  5. Achten Sie darauf, dass die App mit dem Dienst ausgeführt wird.

    gcloud app browse
    
  6. Rufen Sie in Ihrem Browser den angegebenen Link auf. Beispiel:

    https://PROJECT_ID.uc.r.appspot.com/
    

    Hello, World! sollte angezeigt werden.

Cloud Tasks-Warteschlange erstellen

Verwenden Sie den gcloud tasks queues create Befehl, um die Warteschlange in der von Ihnen vorbereiteten Umgebung zu erstellen.

  1. Erstellen Sie in Ihrem Terminal eine Warteschlange, in der alle Vorgänge protokolliert werden.

    gcloud tasks queues create QUEUE_NAME \
        --log-sampling-ratio=1.0 \
        --location=REGION
    

    Ersetzen Sie Folgendes:

    • QUEUE_NAME: ein Name für Ihre Cloud Tasks-Warteschlange
    • REGION: die Region, in der Sie Ihre App bereitgestellt haben
  2. Warten Sie, bis die Warteschlange initialisiert wurde, und prüfen Sie dann, ob sie erfolgreich erstellt wurde.

    gcloud tasks queues describe QUEUE_NAME \
        --location=REGION
    

    Die Ausgabe sollte in etwa so aussehen:

     name: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_NAME
     rateLimits:
       maxBurstSize: 100
       maxConcurrentDispatches: 1000
       maxDispatchesPerSecond: 500.0
     retryConfig:
       maxAttempts: 100
       maxBackoff: 3600s
       maxDoublings: 16
       minBackoff: 0.100s
     state: RUNNING
    

Aufgabe zur Cloud Tasks-Warteschlange hinzufügen

Erstellen Sie eine Aufgabe, fügen Sie sie der von Ihnen erstellten Warteschlange hinzu und übergeben Sie sie an den Worker-Dienst.

  1. Legen Sie die folgenden Umgebungsvariablen fest: Der Client verwendet diese Informationen, um die Anfrage zu erstellen.

    export PROJECT_ID=PROJECT_ID
    export LOCATION_ID=REGION
    export QUEUE_ID=QUEUE_NAME
    
  2. Erstellen Sie eine Aufgabe mit einer Nutzlast von hello und fügen Sie diese Aufgabe der Warteschlange hinzu. Die Nutzlast kann aus beliebigen Daten der Anfrage bestehen, die der Worker-Dienst zur Verarbeitung der Aufgabe benötigt.

    node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID hello
    
  3. Prüfen Sie anhand der Logs des Worker-Dienstes, ob die Aufgabe ausgeführt wurde.

    gcloud app logs read
    

    Die Logs sollten in etwa so aussehen:

    2024-06-20 15:00:00 default[20240620t143852]  "POST /log_payload HTTP/1.1" 200
    2024-06-20 15:00:00 default[20240620t143852]  App listening on port 8081
    2024-06-20 15:00:00 default[20240620t143852]  Press Ctrl+C to quit.
    2024-06-20 15:00:00 default[20240620t143852]  Received task with payload: hello
    

Bereinigen

Löschen Sie das Projekt von zusammen mit den Ressourcen, damit Ihrem Google Cloud Konto von die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden. Google Cloud

Projekt löschen: Google Cloud

gcloud projects delete PROJECT_ID

Alternativ können Sie die von Ihnen erstellten Ressourcen löschen:

  1. Löschen Sie die Cloud Tasks-Warteschlange:

    gcloud tasks queues delete QUEUE_NAME \
        --location=REGION
    
  2. Deaktivieren Sie die App Engine-Anwendung.

Nächste Schritte