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

In dieser Kurzanleitung erfahren Sie, wie Sie ein App Engine-Aufgabe in einen Cloud Tasks-Warteschlange mithilfe der Cloud Tasks API erstellen

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Resource Manager and Cloud Tasks API:

    gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
  7. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  11. Make sure that billing is enabled for your Google Cloud project.

  12. Enable the Cloud Resource Manager and Cloud Tasks API:

    gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
  13. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

  14. Das App Engine-Standarddienstkonto wird automatisch erstellt, wenn Sie App Engine verwenden. Sie können dieses Dienstkonto verwenden, um diese Kurzanleitung auszuprobieren. Abhängig von Ihren Organisationsrichtlinien konfiguriert, wird das Standarddienstkonto Ihnen wird automatisch die Rolle Editor für Ihr Projekt zugewiesen. In diesem Fall müssen Sie dem Dienstkonto die folgenden Rollen zuweisen:
    1. Artifact Registry-Administrator (roles/artifactregistry.admin)
    2. Artifact Registry-Schreiber für Erstellung per Push (roles/artifactregistry.createOnPushWriter)
    3. Compute-Administrator (roles/compute.admin)
    4. Log-Autor (roles/logging.logWriter)
    5. Storage-Objekt-Betrachter (roles/storage.objectViewer)

App Engine-Anwendung hinzufügen

Wenn Sie eine App auf eine App Engine-Aufgabe ausrichten, müssen Sie Ihrem Projekt eine App Engine-Anwendung hinzufügen, bevor Sie die App in der App Engine-Standardumgebung bereitstellen können.

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

    Zu App Engine

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

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

      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 sich diese.

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

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

  5. Klicken Sie auf Weiter.

    Die Anwendung wird konfiguriert und erstellt. Dies 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 Your App Engine application has been created (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 hinzuzufügen. der Aufgaben-Warteschlange server.js wird in App Engine bereitgestellt als einen Worker-Dienst verwenden, um die Aufgabe zu verarbeiten.

  1. Klonen Sie in Ihrem Terminal das Repository der Beispielanwendung auf Ihr lokales Maschine.

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

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

    Sie können NPM für Folgendes verwenden:

    npm install
    

    Alternativ können Sie auch Yarn verwenden:

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

    gcloud app deploy app.yaml
    
  5. Prüfen Sie, ob die App, die den Dienst enthält, 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 Befehl gcloud tasks queues create, um die Warteschlange in der von Ihnen vorbereiteten Umgebung zu erstellen.

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

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

    Ersetzen Sie Folgendes:

    • QUEUE_NAME: ein Name für die Cloud Tasks-Warteschlange
    • REGION: Region, in der Sie Ihre Anwendung 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 diese Aufgabe an den Worker-Dienst.

  1. Legen Sie die folgenden Umgebungsvariablen fest: Der Client erstellt anhand dieser Informationen die Anfrage.

    export PROJECT_ID=PROJECT_ID
    export LOCATION_ID=REGION
    export QUEUE_ID=QUEUE_NAME
    
  2. Erstellen Sie eine Aufgabe mit einer Nutzlast von hellound 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, ob die Aufgabe ausgeführt wurde, indem Sie die Logs des Workers anzeigen lassen Service.

    gcloud app logs read
    

    Die Protokolle 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 Google Cloud-Projekt mit den Ressourcen, damit Ihrem Google Cloud-Konto die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden.

Delete a Google Cloud project:

gcloud projects delete PROJECT_ID

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

  1. So 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