HTTP-Anfragen mit Cloud Tasks zwischenspeichern

1. Einführung

c6ac6ed05292f13e.png

Cloud Tasks ist ein vollständig verwalteter Warteschlangendienst zum Verwalten der Ausführung, Weiterleitung und Zustellung einer großen Anzahl von Aufgaben.

Mit Cloud Tasks können Sie Aufgaben, die unabhängig vom Hauptanwendungsablauf ausgeführt werden können, trennen und asynchron mit von Ihnen erstellten Handlern zur Verarbeitung senden. Diese Aufgaben werden hier Aufgaben genannt, z. B. eine Aufgabe zum Aktualisieren eines Datenbankeintrags.

Die ausgelagerte Aufgabe wird einer Warteschlange hinzugefügt, die die Aufgabe so lange speichert, bis sie erfolgreich ausgeführt wurde oder ein Fehler auftritt. Je nach Konfiguration kann die Warteschlange auch als Steuerung des Weiterleitungsablaufs dienen. Sie erstellen und konfigurieren die Warteschlange, die dann vom Cloud Tasks-Dienst verwaltet wird. Sobald Aufgaben hinzugefügt wurden, werden sie von der Warteschlange weitergeleitet und von den Mitarbeitern zuverlässig verarbeitet.

d59ffe8d34138c88.png

Hier einige der wichtigsten Funktionen von Cloud Tasks:

  • HTTP-Ziele:Mit der auf Branchenstandards basierenden OAuth-/OIDC-Authentifizierung lassen sich zielgerichtete Aufgaben sicher für einen HTTP-Dienst hinzufügen, der in Compute Engine, Kubernetes Engine, Cloud Run, Cloud Functions oder lokalen Systemen ausgeführt wird.
  • Deduplizierung von Aufgaben: Aufgaben, die mehrmals hinzugefügt wurden, werden nur einmal weitergeleitet.
  • Garantierte Zustellung: Aufgaben werden garantiert mindestens einmal zugestellt. Die meisten Aufgaben werden genau einmal zugestellt.
  • Raten- und Wiederholungssteuerung:Sie können die Ausführung steuern, indem Sie festlegen, mit welcher Rate Aufgaben weitergeleitet werden, und können die Höchstzahl der Versuche sowie die Mindestwartezeit zwischen Versuchen definieren.
  • Zukünftige Planung:Sie können steuern, wann eine Aufgabe ausgeführt wird.

In diesem Codelab erfahren Sie zuerst, wie Sie eine reguläre Cloud Tasks-Warteschlange für HTTP-Zielaufgaben erstellen und verwenden. Anschließend erfahren Sie, wie Sie den HTTP-URI auf Warteschlangenebene überschreiben und die neue BufferTask API verwenden, um HTTP-Anfragen mit Cloud Tasks einfacher zu puffern.

Lerninhalte

  • HTTP Target-Aufgaben erstellen
  • So erstellen Sie HTTP Target-Aufgaben mit der neuen HTTP-URI-Überschreibung auf Warteschlangenebene.
  • So ändern Sie die ausstehenden Aufgaben mit der neuen HTTP-URI-Überschreibung auf Warteschlangenebene.
  • So können Sie HTTP-Anfragen mit der neuen BufferTask API einfacher puffern.

2. Einrichtung und Anforderungen

Umgebung zum selbstbestimmten Lernen einrichten

  1. Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um einen String, der nicht von Google APIs verwendet wird. Sie können sie jederzeit aktualisieren.
  • Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich (kann nach dem Festlegen nicht mehr geändert werden). In der Cloud Console wird automatisch ein eindeutiger String generiert. Normalerweise ist es nicht wichtig, wie dieser String aussieht. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (in der Regel als PROJECT_ID angegeben). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie es mit einem eigenen Namen versuchen und sehen, ob er verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen.
  • Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten
  1. Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs zu verwenden. Die Durchführung dieses Codelabs kostet wenig oder gar nichts. Wenn Sie Ressourcen herunterfahren möchten, um Kosten zu vermeiden, die über diese Anleitung hinausgehen, können Sie die erstellten Ressourcen oder das Projekt löschen. Neue Google Cloud-Nutzer können am kostenlosen Testzeitraum mit einem Guthaben von 300$ teilnehmen.

Cloud Shell starten

Während Sie Google Cloud von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

Klicken Sie in der Google Cloud Console rechts oben in der Symbolleiste auf das Cloud Shell-Symbol:

55efc1aaa7a4d3ad.png

Die Bereitstellung und Verbindung mit der Umgebung sollte nur wenige Augenblicke dauern. Anschließend sehen Sie in etwa Folgendes:

7ffe5cbb04455448.png

Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Alle Aufgaben in diesem Codelab können in einem Browser ausgeführt werden. Sie müssen nichts installieren.

3. Reguläre Warteschlange für HTTP Target-Aufgaben erstellen

In diesem ersten Schritt erfahren Sie, wie Sie eine reguläre Cloud Tasks-Warteschlange erstellen und ihr HTTP-Aufgaben hinzufügen, die auf einen Cloud Run-Dienst ausgerichtet sind.

d4f09a342c8eab.png

Was sind HTTP Target-Aufgaben?

Aufgaben mit HTTP-Ziel können auf jeden HTTP-Dienst ausgerichtet werden, der in Compute Engine, Google Kubernetes Engine, Cloud Run, Cloud Functions oder lokalen Systemen ausgeführt wird. Dabei wird die auf Branchenstandards basierende OAuth-/OIDC-Authentifizierung verwendet.

Cloud Run-Dienst bereitstellen

Prüfen Sie zuerst, ob die erforderlichen APIs aktiviert sind:

gcloud services enable \
  cloudtasks.googleapis.com \
  run.googleapis.com

Stellen Sie einen Cloud Run-Dienst bereit, der als Ziel der HTTP-Aufgaben dient:

SERVICE1=hello1
REGION=us-central1

gcloud run deploy $SERVICE1 \
  --allow-unauthenticated \
  --image=gcr.io/cloudrun/hello \
  --region=$REGION

Cloud Tasks-Warteschlange erstellen

So erstellen Sie eine reguläre Cloud Tasks-Warteschlange:

QUEUE1=http-queue
LOCATION=us-central1

gcloud tasks queues create $QUEUE1 --location=$LOCATION

Pausieren Sie die Warteschlange vorübergehend, damit Sie HTTP-Aufgaben beobachten können, während sie erstellt werden:

gcloud tasks queues pause $QUEUE1 --location=$LOCATION

4. HTTP-Aufgabe erstellen und testen

In diesem Schritt erstellen Sie eine HTTP-Aufgabe, die auf die Warteschlange ausgerichtet ist, die Sie zuvor erstellt haben.

HTTP-Aufgabe erstellen

Sie können HTTP-Aufgaben mit gcloud erstellen:

gcloud tasks create-http-task \
    --queue=$QUEUE1 \
    --location=$LOCATION \
    --url=$SERVICE1_URL \
    --method=GET

Optional:Sie können auch einen HTTP-Task mit Clientbibliotheken erstellen. Ein C#-Beispiel, in dem eine HTTP-Anfrage in ein Task und ein TaskRequest verpackt wird, bevor sie mit einem CloudTasksClient an Cloud Tasks gesendet wird, finden Sie beispielsweise unter Program.cs:

var taskRequest = new CreateTaskRequest
{
    Parent = new QueueName(projectId, location, queue).ToString(),
    Task = new Task
    {
        HttpRequest = new HttpRequest
        {
            HttpMethod = HttpMethod.Get,
            Url = url
        }
    }
};

var client = CloudTasksClient.Create();
var response = client.CreateTask(taskRequest);

So können Sie den Befehl ausführen, um die Aufgabe zu erstellen und der Warteschlange hinzuzufügen:

dotnet run $PROJECT_ID $LOCATION $QUEUE1 $SERVICE1_URL

HTTP-Aufgabe testen

An diesem Punkt wird die Aufgabe erstellt, aber noch nicht ausgeführt, da die Warteschlange pausiert ist. Sie können dies überprüfen, indem Sie die Warteschlangen auflisten:

gcloud tasks queues list --location=$LOCATION

Die Warteschlange sollte den Status PAUSED haben:

QUEUE_NAME  STATE
http-queue  PAUSED

Warteschlange fortsetzen:

gcloud tasks queues resume $QUEUE --location=$LOCATION

Prüfen Sie die Logs des Cloud Run-Dienstes:

gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=$SERVICE1" --limit 1

Sie sollten sehen, dass der Cloud Run-Dienst eine HTTP-GET-Anfrage von Cloud Tasks empfangen hat:

httpRequest:
  latency: 0.227597158s
  protocol: HTTP/1.1
  remoteIp: 35.243.23.192
  requestMethod: GET
  requestSize: '415'
  requestUrl: https://hello1-idcwffc3yq-uc.a.run.app/
  responseSize: '5510'
  serverIp: 216.239.32.53
  status: 200
  userAgent: Google-Cloud-Tasks

5. Warteschlange mit einer Routingkonfiguration erstellen

In diesem Schritt erfahren Sie, wie Sie eine Cloud Tasks-Warteschlange mit einer Routingkonfiguration erstellen, um mithilfe der Funktion Aufgabenzuweisungskonfiguration auf Warteschlangenebene einen HTTP-URI zu überschreiben. Anschließend fügen Sie HTTP-Aufgaben hinzu, die auf den ersten Cloud Run-Dienst ausgerichtet sind. Sie werden feststellen, dass die Routingkonfiguration den URI überschreibt, um Aufgaben an den zweiten Cloud Run-Dienst weiterzuleiten.

5d1ec61a933f77.png

Was ist die Konfiguration des Aufgabenroutings auf Warteschlangenebene?

Durch die Konfiguration des Aufgabenroutings auf Warteschlangenebene wird das HTTP-Aufgabenrouting für die gesamte Warteschlange für alle ausstehenden und neuen Aufgaben geändert. Dadurch wird die Erstellung von Aufgaben vereinfacht, da das HTTP-Ziel nicht auf Aufgabenebene festgelegt werden muss. Außerdem wird mehr Kontrolle an den Dienstanbieter übertragen, da er das Ziel aller Aufgaben in einer Warteschlange festlegen kann, z. B. Traffic an ein anderes Backend weiterleiten, wenn das ursprüngliche Backend nicht verfügbar ist.

Die folgende Konfiguration kann auf Warteschlangenebene festgelegt werden:

  • Header: Wenn Header auf Warteschlangenebene angegeben werden, werden sie für alle Aufgaben in der Warteschlange eingefügt oder aktualisiert.
  • HTTP-Methode: Wenn die HTTP-Methode auf Queue-Ebene angegeben wird, wird die HTTP-Methode für alle Aufgaben in der Queue überschrieben.
  • Ziel-URI: Host, Pfad, Abfrage, Port und Schema (HTTP oder HTTPS) können einzeln überschrieben werden.
  • Autorisierung: Wenn die OIDC-/OAuth-Konfiguration auf Warteschlangenebene angegeben wird, wird die OIDC-/OAuth-Konfiguration auf Aufgabenebene überschrieben.

Zweiten Cloud Run-Dienst bereitstellen

Stellen Sie einen zweiten Cloud Run-Dienst bereit, der später als Ziel der HTTP-URI-Überschreibung dient:

SERVICE2=hello2
REGION=us-central1

gcloud run deploy $SERVICE2 \
  --allow-unauthenticated \
  --image=gcr.io/cloudrun/hello \
  --region=$REGION

Speichern Sie den Host der Dienst-URL für später:

SERVICE2_URL=$(gcloud run services describe $SERVICE2 --region $REGION --format 'value(status.url)')
SERVICE2_HOST=$(echo $SERVICE2_URL | sed 's,http[s]*://,,g')

Cloud Tasks-Warteschlange mit Routing-Konfiguration erstellen

Erstellen Sie eine Warteschlange mit einer Routingkonfiguration mit HTTP-URI-Überschreibung für den zweiten Cloud Run-Dienst.

QUEUE2=http-queue-uri-override

gcloud beta tasks queues create $QUEUE2 \
  --http-uri-override=host:$SERVICE2_HOST \
  --location=$LOCATION

Der URI-Überschreibungsbefehl bezieht sich auf den zweiten Cloud Run-Dienst. Bei jeder HTTP-Aufgabe, die der Warteschlange hinzugefügt wird, wird der ursprüngliche URI-Host überschrieben. Sie können die Warteschlangenkonfiguration so aufrufen:

gcloud beta tasks queues describe $QUEUE2 --location=$LOCATION

Sie sollten sehen, dass der httpTarget einen uriOverride hat, der auf den Host des zweiten Dienstes verweist:

httpTarget:
  uriOverride:
    host: hello2-idcwffc3yq-uc.a.run.app
    pathOverride: {}
    queryOverride: {}
...

Pausieren Sie die Warteschlange vorübergehend, damit Sie HTTP-Aufgaben beobachten können, während sie erstellt werden:

gcloud tasks queues pause $QUEUE2 --location=$LOCATION

6. HTTP-Aufgabe für die Warteschlange mit der Routingkonfiguration erstellen und testen

In diesem Schritt erstellen Sie eine HTTP-Aufgabe, die auf den ersten Dienst ausgerichtet ist. Sie sehen dann, dass der URI durch die Warteschlange überschrieben wird und auf den zweiten Dienst verweist.

HTTP-Aufgabe erstellen

Erstellen Sie einen HTTP-Task mit der URL des ersten Dienstes:

gcloud tasks create-http-task \
    --queue=$QUEUE2 \
    --location=$LOCATION \
    --url=$SERVICE1_URL \
    --method=GET

HTTP-Aufgabe testen

Warteschlange fortsetzen:

gcloud tasks queues resume $QUEUE2 --location=$LOCATION

Sie sollten sehen, dass der zweite (nicht der erste) Cloud Run-Dienst aufgrund der Überschreibung eine HTTP-GET-Anfrage von Cloud Tasks erhalten hat:

gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=$SERVICE2" --limit 1
---
httpRequest:
  latency: 0.228982142s
  protocol: HTTP/1.1
  remoteIp: 35.187.132.84
  requestMethod: GET
  requestSize: '426'
  requestUrl: https://hello2-idcwffc3yq-uc.a.run.app/
  responseSize: '5510'
  serverIp: 216.239.34.53
  status: 200
  userAgent: Google-Cloud-Tasks

7. Ausstehende Aufgaben mit der Routingkonfiguration ändern

Sie können die Routingkonfiguration auch verwenden, um den HTTP-URI aller ausstehenden Aufgaben in einer Warteschlange zu ändern. Das ist nützlich, wenn der Back-End-Dienst ausfällt und Sie schnell zu einem anderen Dienst weiterleiten möchten. In diesem Schritt sehen wir uns an, wie das funktioniert.

Warteschlange noch einmal pausieren:

gcloud tasks queues pause $QUEUE2 --location=$LOCATION

Erstellen Sie eine HTTP-Aufgabe mit google.com als Aufgaben-URL:

gcloud tasks create-http-task \
    --queue=$QUEUE2 \
    --location=$LOCATION \
    --url=https://www.google.com \
    --method=GET

Die Aufgabe hat den Status „Ausstehend“, da die Warteschlange pausiert ist.

Aktualisieren Sie nun die Überschreibung des HTTP-URI, sodass er auf den ersten Dienst verweist. Dadurch wird der Host der ausstehenden Aufgabe von google.com in den Host des ersten Dienstes geändert:

SERVICE1_URL=$(gcloud run services describe $SERVICE1 --region $REGION --format 'value(status.url)')
SERVICE1_HOST=$(echo $SERVICE1_URL | sed 's,http[s]*://,,g')

gcloud beta tasks queues update $QUEUE2 \
  --http-uri-override=host:$SERVICE1_HOST \
  --location=$LOCATION

Warteschlange fortsetzen:

gcloud tasks queues resume $QUEUE2 --location=$LOCATION

Der erste Cloud Run-Dienst hat aufgrund der Überschreibung eine HTTP-GET-Anfrage von Cloud Tasks erhalten (anstelle von google.com):

gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=$SERVICE1" --limit 1
---
httpRequest:
  latency: 0.228982142s
  protocol: HTTP/1.1
  remoteIp: 35.187.132.84
  requestMethod: GET
  requestSize: '426'
  requestUrl: https://hello1-idcwffc3yq-uc.a.run.app/
  responseSize: '5510'
  serverIp: 216.239.34.53
  status: 200
  userAgent: Google-Cloud-Tasks

8. Warteschlange für BufferTask API erstellen

Normalerweise erstellen Sie Aufgaben mit der Tasks API entweder über gcloud oder über Tasks-Clientbibliotheken. Dadurch müssen Anwendungen HTTP-Anfragen mithilfe von Clientbibliotheken in Tasks einbinden. Außerdem entsteht eine Abhängigkeit zwischen Anwendungen und den Tasks-Clientbibliotheken.

In diesem Schritt erfahren Sie, wie Sie den HTTP-URI-Override auf Warteschlangenebene und die neue BufferTask API nutzen können, um HTTP-Zielaufgaben einfacher zu erstellen, indem Sie einfach eine HTTP-Anfrage senden. Jede Anwendung, die HTTP-Anfragen senden kann, kann jetzt HTTP-Zielaufgaben erstellen.

b1606516297fc4b6.png

Was ist die BufferTask API?

Die CreateTask API ist die alte Methode zum Erstellen von Aufgaben. Hier muss der Client ein Task-Objekt mit allen erforderlichen Feldern an die API senden.

Die BufferTask API ist eine neue Funktion, mit der Nutzer eine HTTP-Aufgabe erstellen können, ohne eine Aufgabenkonfiguration (HTTP-URL, Header, Autorisierung) angeben zu müssen. Sie können einfach eine Nachricht oder den Text Ihrer Anfrage an die Buffer API senden.

Dies ermöglicht eine einfachere Integration mit Diensten, da Cloud Tasks jetzt vor Ihrem Dienst bereitgestellt werden kann, ohne dass clientseitige Codeänderungen erforderlich sind. Jede beliebige HTTP-Anfrage, die an die BufferTask API gesendet wird, wird als Task-Objekt verpackt und an das auf Warteschlangenebene festgelegte Ziel gesendet.

Wenn Sie die BufferTask API verwenden möchten, muss die Ziel-URI-Konfiguration für die Warteschlange festgelegt sein. Das bedeutet, dass das Feature Routing-Konfiguration auf Warteschlangenebene eine Voraussetzung für die Verwendung der BufferTask API ist.

Cloud Tasks-Warteschlange mit Routing-Konfiguration erstellen

Erstellen Sie eine Warteschlange mit einer Routingkonfiguration, die auf den ersten Dienst verweist, den wir im vorherigen Schritt bereitgestellt haben:

SERVICE1=hello1
SERVICE1_URL=$(gcloud run services describe $SERVICE1 --region $REGION --format 'value(status.url)')
SERVICE1_HOST=$(echo $SERVICE1_URL | sed 's,http[s]*://,,g')
QUEUE3=http-queue-uri-override-buffer

gcloud beta tasks queues create $QUEUE3 \
  --http-uri-override=host:$SERVICE1_HOST \
  --location=$LOCATION

Pausieren Sie die Warteschlange vorübergehend, damit Sie HTTP-Aufgaben beobachten können, während sie erstellt werden:

gcloud tasks queues pause $QUEUE3 --location=$LOCATION

9. HTTP-Anfragen mit der BufferTask API puffern

In diesem Schritt puffern Sie einfache HTTP GET- oder POST-Anfragen mit der BufferTask API. Im Hintergrund werden diese HTTP-Anfragen von Cloud Tasks in HTTP-Aufgaben mit den Standardeinstellungen für die Routingkonfiguration der Warteschlange verpackt.

Melden Sie sich zuerst an, um ein Zugriffstoken zu erhalten, und legen Sie einige Variablen fest:

gcloud auth application-default login
ACCESS_TOKEN=$(gcloud auth application-default print-access-token)
PROJECT_ID=$(gcloud config get-value project)
TASKS_QUEUES_API="https://cloudtasks.googleapis.com/v2beta3/projects/$PROJECT_ID/locations/$LOCATION/queues"

HTTP-Aufgabe erstellen

Erstellen Sie einen HTTP-Task mit der BufferTask API. Es handelt sich um eine einfache HTTP GET-Anfrage, für die keine Aufgabe erstellt werden muss:

curl -X GET "$TASKS_QUEUES_API/$QUEUE3/tasks:buffer" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Erstellen Sie einen weiteren HTTP-Task mit HTTP POST und einem Textkörper:

curl -X POST "$TASKS_QUEUES_API/$QUEUE3/tasks:buffer" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d "{'message': 'Hello World'}"

Optional:Sie können auch einen HTTP-Task mit Clientbibliotheken erstellen. Ein C#-Beispiel, in dem eine HTTP-GET-Anfrage direkt an die BufferTask API gesendet wird, ohne dass sie in ein Task eingebunden werden muss oder die Clientbibliothek für Cloud Tasks erforderlich ist, finden Sie unter Program.cs:

var BufferTaskApiUrl = $"https://cloudtasks.googleapis.com/v2beta3/projects/{ProjectId}/locations/{Location}/queues/{Queue}/tasks:buffer";

using (var client = new HttpClient())
{
    client.DefaultRequestHeaders.Add("Authorization", $"Bearer {AccessToken}");
    var response = await client.GetAsync(BufferTaskApiUrl);
    var content = await response.Content.ReadAsStringAsync();
    Console.WriteLine($"Response: {content}");
}

So führen Sie es aus:

dotnet run $PROJECT_ID $LOCATION $QUEUE3 $ACCESS_TOKEN

Die BufferTask API erstellt eine Aufgabe aus den HTTP-Anfragen und fügt die URL aus den Routingkonfigurationseinstellungen der Warteschlange für den URI hinzu.

HTTP-Aufgabe testen

Warteschlange fortsetzen:

gcloud tasks queues resume $QUEUE3 --location=$LOCATION

Sie sollten sehen, dass der Cloud Run-Dienst HTTP-GET- und -POST-Anfragen von Cloud Tasks empfangen hat:

gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=$SERVICE1" --limit 4
---
httpRequest:
  latency: 0.002279292s
  protocol: HTTP/1.1
  remoteIp: 35.243.23.42
  requestMethod: POST
  requestSize: '777'
  requestUrl: https://hello1-idcwffc3yq-uc.a.run.app/
  responseSize: '5450'
  serverIp: 216.239.32.53
  status: 200
  userAgent: Google-Cloud-Tasks
...
httpRequest:
  latency: 0.228982142s
  protocol: HTTP/1.1
  remoteIp: 35.187.132.84
  requestMethod: GET
  requestSize: '426'
  requestUrl: https://hello1-idcwffc3yq-uc.a.run.app/
  responseSize: '5510'
  serverIp: 216.239.34.53
  status: 200
  userAgent: Google-Cloud-Tasks

10. Glückwunsch

Herzlichen Glückwunsch! Sie haben das Codelab abgeschlossen.

Als Nächstes können Sie sich Cloud Tasks als Puffer zwischen Pub/Sub und Cloud Run ansehen, um ein praktisches Beispiel dafür zu sehen, wie diese neuen Funktionen von Cloud Tasks dabei helfen können, ganz einfach eine Pufferwarteschlange zwischen Diensten zu erstellen.

Bereinigen (optional)

Um Gebühren zu vermeiden, sollten Sie Ressourcen bereinigen.

Wenn Sie das Projekt nicht benötigen, können Sie es einfach löschen:

gcloud projects delete $PROJECT_ID

Wenn Sie das Projekt benötigen, können Sie Ressourcen einzeln löschen.

Löschen Sie die Cloud Run-Dienste:

gcloud run services delete $SERVICE1 --region $REGION
gcloud run services delete $SERVICE2 --region $REGION

Löschen Sie die Cloud Tasks-Warteschlangen:

gcloud tasks queues delete $QUEUE1 --location=$LOCATION
gcloud tasks queues delete $QUEUE2 --location=$LOCATION
gcloud tasks queues delete $QUEUE3 --location=$LOCATION

Behandelte Themen

  • HTTP Target-Aufgaben erstellen
  • So erstellen Sie HTTP Target-Aufgaben mit der neuen HTTP-URI-Überschreibung auf Warteschlangenebene.
  • So ändern Sie die ausstehenden Aufgaben mit der neuen HTTP-URI-Überschreibung auf Warteschlangenebene.
  • So können Sie HTTP-Anfragen mit der neuen BufferTask API einfacher puffern.