Einer Cloud Tasks-Warteschlange eine App Engine-Aufgabe hinzufügen
In dieser Kurzanleitung erfahren Sie, wie Sie einer Cloud Tasks-Warteschlange mithilfe der Cloud Tasks API eine App Engine-Aufgabe hinzufügen.
Hinweis
- 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Resource Manager and Cloud Tasks API:
gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Resource Manager and Cloud Tasks API:
gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
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.
- 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 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:- Artifact Registry-Administrator (
roles/artifactregistry.admin
) - Artifact Registry Create-on-Push Writer (
roles/artifactregistry.createOnPushWriter
) - Compute-Administrator (
roles/compute.admin
) - Log-Autor (
roles/logging.logWriter
) - Storage-Objekt-Betrachter (
roles/storage.objectViewer
)
- Artifact Registry-Administrator (
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.
Rufen Sie in der Google Cloud Console die Seite App Engine auf.
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.
Wählen Sie eine Region für Ihre Anwendung aus und notieren Sie sich diese.
Beachten Sie, dass
europe-west
undus-central
in Cloud Tasks-Befehleneurope-west1
bzw.us-central1
genannt werden.Wählen Sie kein Dienstkonto aus. Es wird das App Engine-Standarddienstkonto verwendet.
Klicken Sie auf Weiter.
Die Anwendung wird konfiguriert und erstellt. Das kann einige Minuten dauern.
Laden Sie das Cloud SDK nicht herunter, sondern klicken Sie auf Ich führe diesen Schritt später aus.
Sie sollten die Meldung Ihre App Engine-Anwendung wurde erstellt sehen.
Beispiel installieren und bereitstellen
Das in diesem Schnellstart verwendete Node.js-Beispiel besteht aus zwei Dateien: createTask.js
wird lokal als Befehlszeilentool ausgeführt, um Aufgaben zu erstellen und der Tasks-Warteschlange hinzuzufügen. server.js
wird in der App Engine als Workerdienst bereitgestellt, um die Aufgabe zu verarbeiten.
Klonen Sie das Beispielanwendungs-Repository in Ihrem Terminal auf Ihren lokalen Computer.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Rufen Sie das Verzeichnis mit dem Beispielcode auf.
cd nodejs-docs-samples/cloud-tasks/snippets
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
Stellen Sie den Worker-Dienst (
server.js
) in der App Engine-Standardumgebung bereit.gcloud app deploy app.yaml
Prüfen Sie, ob die App mit dem Dienst ausgeführt wird.
gcloud app browse
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.
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 die Cloud Tasks-WarteschlangeREGION
: die Region, in der Sie Ihre App bereitgestellt haben
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.
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
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
Prüfen Sie anhand der Logs des Worker-Dienstes, ob die Aufgabe ausgeführt wurde.
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:
So löschen Sie die Cloud Tasks-Warteschlange:
gcloud tasks queues delete QUEUE_NAME \ --location=REGION