App Engine-Aufgabe einer Cloud Tasks-Warteschlange hinzufügen
Mit Cloud Tasks können Sie asynchrone Aufgaben an App Engine-Dienste senden, um Hintergrundarbeitslasten zu verarbeiten. In dieser Kurzanleitung verwenden Sie die Cloud Tasks API, um eine App Engine-Aufgabe zu erstellen und einer Cloud Tasks-Warteschlange hinzuzufügen.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, 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.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Google Cloud -Projekt erstellen oder auswählen.
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Project Creator“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Projekt in Google Cloud , das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Cloud Resource Manager API und die Cloud Tasks API, falls sie noch nicht aktiviert sind:
Erforderliche Rollen zum Aktivieren von APIs
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. Informationen zum Zuweisen von Rollengcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Authentifizierungsdaten für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
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.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Google Cloud -Projekt erstellen oder auswählen.
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Project Creator“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Projekt in Google Cloud , das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Cloud Resource Manager API und die Cloud Tasks API, falls sie noch nicht aktiviert sind:
Erforderliche Rollen zum Aktivieren von APIs
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. Informationen zum Zuweisen von Rollengcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Authentifizierungsdaten für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
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.
- 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
Editorzugewiesen. 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 Engine-Aufgabe als Ziel festlegen, müssen Sie Ihrem Projekt eine App Engine-Anwendung hinzufügen, bevor Sie eine 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 verbleibenden 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 verbleibenden Schritten in diesem Abschnitt fort.
Wählen Sie eine Region für Ihre Anwendung aus und notieren Sie sie.
Beachten Sie, dass
europe-westundus-centralin Cloud Tasks-Befehlen alseurope-west1bzw.us-central1bezeichnet 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.
Die Meldung Ihre App Engine-Anwendung wurde erstellt sollte angezeigt werden.
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 Aufgabenwarteschlange hinzuzufügen. server.js wird in App Engine als Worker-Dienst bereitgestellt, um die Aufgabe zu verarbeiten.
Klonen Sie in Ihrem Terminal das Repository der Beispielanwendung auf Ihren lokalen Computer.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.gitWechseln Sie zu dem Verzeichnis, das den Beispielcode enthält.
cd nodejs-docs-samples/cloud-tasks/snippetsInstallieren Sie alle Abhängigkeiten mit einem Node.js-Paketmanager.
Sie können NPM verwenden:
npm installAlternativ können Sie Yarn verwenden:
yarn installStellen Sie den Worker-Dienst (
server.js) in der App Engine-Standardumgebung bereit.gcloud app deploy app.yamlPrüfen Sie, ob die Anwendung, die den Dienst enthält, ausgeführt wird.
gcloud app browseRufen Sie in Ihrem Browser den angegebenen Link auf. Beispiel:
https://PROJECT_ID.uc.r.appspot.com/Hello, World!sollte angezeigt werden.
Cloud Tasks-Aufgabenwarteschlange erstellen
Verwenden Sie den Befehl gcloud tasks queues create, um die Warteschlange in der vorbereiteten Umgebung zu erstellen.
Erstellen Sie im Terminal eine Warteschlange, in der alle Vorgänge protokolliert werden.
gcloud tasks queues create QUEUE_NAME \ --log-sampling-ratio=1.0 \ --location=REGIONErsetzen Sie Folgendes:
QUEUE_NAME: ein Name für Ihre Cloud Tasks-WarteschlangeREGION: die Region, in der Sie Ihre Anwendung 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=REGIONDie 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-Aufgabenwarteschlange hinzufügen
Erstellen Sie eine Aufgabe, fügen Sie sie der von Ihnen erstellten Warteschlange hinzu und stellen Sie sie dem Worker-Dienst zur Verfügung.
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_NAMEErstellen Sie eine Aufgabe mit einer Nutzlast von
hellound fügen Sie diese Aufgabe der Warteschlange hinzu. Die Nutzlast kann beliebige Daten aus der Anfrage enthalten, die der Worker-Dienst zum Verarbeiten der Aufgabe benötigt.node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID helloPrüfen Sie, ob die Aufgabe ausgeführt wurde, indem Sie die Logs des Worker-Dienstes aufrufen.
gcloud app logs readDie 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 Google Cloud zusammen mit den Ressourcen, damit Ihrem Konto von Google Cloud die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden.
Google Cloud -Projekt löschen:
gcloud projects delete PROJECT_ID
Alternativ können Sie die von Ihnen erstellten Ressourcen löschen:
Löschen Sie die Cloud Tasks-Warteschlange:
gcloud tasks queues delete QUEUE_NAME \ --location=REGION