App Engine-Aufgabe einer Cloud Tasks-Warteschlange hinzufügen
In diesem Schnellstart wird gezeigt, wie Sie mit der Cloud Tasks API einer Cloud Tasks-Warteschlange eine App Engine-Aufgabe hinzufügen.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie 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 -
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 jedes 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 Berechtigungresourcemanager.projects.createenthält. Weitere 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 Google Cloud -Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
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 IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
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, 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 -
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 jedes 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 Berechtigungresourcemanager.projects.createenthält. Weitere 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 Google Cloud -Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
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 IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
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, 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 kann dem Standarddienstkonto für Ihr Projekt jedoch nicht automatisch die Rolle
Editorzugewiesen werden. Ist dies der 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) - Logautor (
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-Befehleneurope-west1bzw.us-central1genannt werden.Wählen Sie kein Dienstkonto aus. Das App Engine-Standarddienstkonto wird 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 zur Verarbeitung der Aufgabe bereitgestellt.
Klonen Sie das Beispielanwendungs-Repository in Ihrem Terminal auf Ihren lokalen Computer.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.gitWechseln Sie in das Verzeichnis mit dem Beispielcode.
cd nodejs-docs-samples/cloud-tasks/snippetsInstallieren Sie alle Abhängigkeiten mit einem Node.js-Paketmanager.
Sie können NPM für Folgendes 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.yamlAchten Sie darauf, dass die App mit dem Dienst ausgeführt wird.
gcloud app browseRufen Sie in Ihrem Browser den bereitgestellten Link auf. Beispiel:
https://PROJECT_ID.uc.r.appspot.com/Hello, World!sollte angezeigt werden.
Cloud Tasks-Warteschlange erstellen
Erstellen Sie die Warteschlange in der vorbereiteten Umgebung mit dem Befehl gcloud tasks queues create.
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=REGIONErsetzen Sie Folgendes:
QUEUE_NAME: ein Name für Ihre 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=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-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.
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_NAMEErstellen 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 helloPrüfen Sie anhand der Logs des Worker-Dienstes, ob die Aufgabe ausgeführt wurde.
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