بافر درخواست های HTTP با وظایف ابری

1. مقدمه

c6ac6ed05292f13e.png

Cloud Tasks یک سرویس صف کاملاً مدیریت شده برای مدیریت اجرا، ارسال و تحویل تعداد زیادی کار است.

Cloud Tasks به شما این امکان را می‌دهد تا تکه‌های کاری را که وظایف نامیده می‌شوند، جدا کنید، که می‌توانند به‌طور مستقل انجام شوند (مثلاً وظیفه‌ای برای به‌روزرسانی ورودی پایگاه داده)، خارج از جریان برنامه اصلی خود، و آنها را برای پردازش، به‌صورت ناهمزمان، با استفاده از کنترل‌کننده‌هایی ارسال کنید که شما ایجاد می کنید

وظیفه بارگذاری شده به یک صف اضافه می شود، که تا زمانی که با موفقیت اجرا شود یا با شکست مواجه شود، کار ادامه دارد. بر اساس پیکربندی، صف همچنین می تواند به عنوان یک کنترل جریان اعزام عمل کند. شما صف را ایجاد و پیکربندی می کنید که سپس توسط سرویس Cloud Tasks مدیریت می شود. هنگامی که وظایف اضافه می شوند، صف وظایف را ارسال می کند و مطمئن می شود که کارگران به طور قابل اعتماد آنها را پردازش می کنند.

d59ffe8d34138c88.png

برخی از ویژگی های اصلی Cloud Tasks عبارتند از:

  • اهداف HTTP: با استفاده از احراز هویت استاندارد صنعتی OAuth/OIDC، وظایفی را با هدف قرار دادن هر سرویس HTTP که در Compute Engine، Google Kubernetes Engine، Cloud Run، Cloud Functions یا سیستم‌های درون محل اجرا می‌شود، هدف قرار دهید.
  • تکثیر وظایف : کارهایی که چندین بار اضافه شده اند فقط یک بار ارسال می شوند.
  • تحویل تضمینی : کارها حداقل یک بار تضمین می شوند و اکثر کارها دقیقاً یک بار تحویل می شوند.
  • کنترل‌های نرخ و تلاش مجدد: با تنظیم سرعت ارسال وظایف، حداکثر تعداد تلاش‌ها و حداقل زمان انتظار بین تلاش‌ها، اجرا را کنترل کنید.
  • برنامه ریزی آینده: زمان اجرای یک کار را کنترل کنید.

در این کد لبه ابتدا یاد خواهید گرفت که چگونه یک صف معمولی Cloud Tasks برای وظایف HTTP هدف ایجاد و استفاده کنید. سپس، نحوه استفاده از URI HTTP در سطح صف و API جدید BufferTask را برای بافر کردن آسان‌تر درخواست‌های HTTP با وظایف Cloud یاد خواهید گرفت.

چیزی که یاد خواهید گرفت

  • نحوه ایجاد وظایف هدف HTTP
  • نحوه ایجاد وظایف هدف HTTP با URI جدید HTTP در سطح صف.
  • نحوه تغییر وظایف معلق با URI جدید HTTP در سطح صف.
  • چگونه با API جدید BufferTask، درخواست‌های HTTP را راحت‌تر بافر کنیم.

2. راه اندازی و الزامات

تنظیم محیط خود به خود

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه‌های Google Cloud منحصربه‌فرد است و تغییرناپذیر است (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام PROJECT_ID شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، می‌توانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند.
  • برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورت‌حساب فراتر از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

Cloud Shell را راه اندازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

از Google Cloud Console ، روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

55efc1aaa7a4d3ad.png

تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

7ffe5cbb04455448.png

این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این کد لبه را می توان در یک مرورگر انجام داد. شما نیازی به نصب چیزی ندارید.

3. یک صف منظم برای وظایف HTTP هدف ایجاد کنید

در این مرحله اول، یاد خواهید گرفت که چگونه یک صف معمولی Cloud Tasks ایجاد کنید و وظایف HTTP را به آن اضافه کنید تا یک سرویس Cloud Run را هدف قرار دهید.

d4f09a342c8eab.png

وظایف هدف HTTP چیست؟

وظایف هدف HTTP می‌تواند هر سرویس HTTP را که در Compute Engine، Google Kubernetes Engine، Cloud Run، Cloud Functions یا سیستم‌های درون محل اجرا می‌شود، با استفاده از احراز هویت استاندارد OAuth/OIDC به روشی امن مورد هدف قرار دهد.

یک سرویس Cloud Run را مستقر کنید

ابتدا مطمئن شوید که API های مورد نیاز فعال هستند:

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

یک سرویس Cloud Run را مستقر کنید که به عنوان هدف وظایف HTTP عمل می کند:

SERVICE1=hello1
REGION=us-central1

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

یک صف Cloud Tasks ایجاد کنید

یک صف معمولی Cloud Tasks ایجاد کنید:

QUEUE1=http-queue
LOCATION=us-central1

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

صف را موقتاً متوقف کنید تا بتوانید وظایف HTTP را هنگام ایجاد مشاهده کنید:

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

4. ایجاد و تست یک کار HTTP

در این مرحله، یک کار HTTP برای هدف قرار دادن صفی که قبلا ایجاد کرده اید ایجاد می کنید.

یک کار HTTP ایجاد کنید

می توانید وظایف HTTP را با استفاده از gcloud ایجاد کنید:

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

اختیاری: همچنین می توانید یک کار HTTP با کتابخانه های سرویس گیرنده ایجاد کنید. به عنوان مثال، می توانید Program.cs را برای نمونه C# بررسی کنید که در آن یک درخواست HTTP در یک Task و یک TaskRequest قبل از ارسال به Cloud Tasks با یک CloudTasksClient پیچیده می شود:

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);

برای ایجاد و اضافه کردن وظیفه به صف می توانید آن را به صورت زیر اجرا کنید:

dotnet run $PROJECT_ID $LOCATION $QUEUE1 $SERVICE1_URL

وظیفه HTTP را تست کنید

در این مرحله، وظیفه ایجاد می شود اما هنوز اجرا نشده است، زیرا صف متوقف شده است. شما می توانید این را با لیست کردن صف ها تأیید کنید:

gcloud tasks queues list --location=$LOCATION

باید صف را در حالت PAUSED ببینید:

QUEUE_NAME  STATE
http-queue  PAUSED

از سرگیری صف:

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

گزارش های سرویس Cloud Run را بررسی کنید:

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

باید ببینید که سرویس Cloud Run یک درخواست HTTP GET از Cloud Tasks دریافت کرده است:

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. یک صف با پیکربندی مسیریابی ایجاد کنید

در این مرحله، نحوه ایجاد یک صف Cloud Tasks با پیکربندی مسیریابی برای اضافه کردن یک URI HTTP با استفاده از ویژگی پیکربندی Task Routing در سطح صف ایجاد می‌کنید. سپس وظایف HTTP را به آن اضافه می‌کنید تا اولین سرویس Cloud Run را هدف قرار دهید و مشاهده کنید که پیکربندی مسیریابی URI را لغو می‌کند تا وظایف را به دومین سرویس Cloud Run هدایت کند.

5d1ec61a933f77.png

پیکربندی مسیریابی وظیفه در سطح صف چیست؟

پیکربندی مسیریابی وظیفه در سطح صف، مسیریابی وظایف HTTP را برای کل صف برای همه کارهای معلق و جدید تغییر می دهد. این امکان ایجاد آسان‌تر وظایف را فراهم می‌کند زیرا هدف HTTP نیازی به تنظیم در سطح کار نیست و کنترل بیشتری را به ارائه‌دهنده سرویس منتقل می‌کند زیرا آنها می‌توانند هدف تمام وظایف را در یک صف تنظیم کنند (مثلاً ترافیک را به یک باطن دیگر هدایت کنند). اگر باطن اصلی خراب باشد).

پیکربندی زیر را می توان در سطح صف تنظیم کرد:

  • سرصفحه ها : سرصفحه های سطح صف زمانی که در سطح صف مشخص می شوند، سرصفحه ها را برای تمام وظایف موجود در صف اضافه می کنند.
  • روش HTTP : وقتی روش HTTP در سطح صف مشخص شود، روش HTTP را برای همه وظایف موجود در صف لغو می کند.
  • URI هدف : میزبان، مسیر، پرس و جو، پورت، طرح (HTTP یا HTTPS) را می توان به صورت جداگانه لغو کرد.
  • مجوز : پیکربندی OIDC/OAuth وقتی در سطح صف مشخص شود، پیکربندی OIDC/OAuth در سطح کار را لغو می کند.

دومین سرویس Cloud Run را راه اندازی کنید

دومین سرویس Cloud Run را مستقر کنید که بعداً به عنوان هدف لغو URI HTTP عمل می کند:

SERVICE2=hello2
REGION=us-central1

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

میزبان URL سرویس را برای بعد ذخیره کنید:

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 با پیکربندی مسیریابی ایجاد کنید

یک صف با پیکربندی مسیریابی با لغو HTTP URI به دومین سرویس Cloud Run ایجاد کنید.

QUEUE2=http-queue-uri-override

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

توجه داشته باشید که لغو URI به دومین سرویس Cloud Run اشاره دارد. هر کار HTTP اضافه شده به صف میزبان URI اصلی آن لغو می شود. می توانید پیکربندی صف را ببینید:

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

باید ببینید که httpTarget دارای یک uriOverride است که به میزبان سرویس دوم اشاره می کند:

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

صف را موقتاً متوقف کنید تا بتوانید وظایف HTTP را هنگام ایجاد مشاهده کنید:

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

6. یک کار HTTP برای صف با پیکربندی مسیریابی ایجاد و آزمایش کنید

در این مرحله، یک کار HTTP برای هدف قرار دادن سرویس اول ایجاد می‌کنید و مشاهده می‌کنید که URI آن توسط صف برای اشاره به سرویس دوم لغو می‌شود.

یک کار HTTP ایجاد کنید

یک کار HTTP با URL اولین سرویس ایجاد کنید:

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

وظیفه HTTP را تست کنید

از سرگیری صف:

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

باید ببینید که سرویس Cloud Run دوم (نه اولین) یک درخواست HTTP GET از Cloud Tasks به دلیل نادیده گرفتن دریافت کرد:

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. وظایف معلق را با پیکربندی مسیریابی تغییر دهید

همچنین می‌توانید از پیکربندی مسیریابی برای تغییر HTTP URI همه کارهای معلق در یک صف استفاده کنید. اگر سرویس Backend از کار بیفتد و بخواهید به سرعت به سرویس دیگری بروید، مفید است. بیایید ببینیم که در این مرحله چگونه کار می کند.

دوباره صف را مکث کنید:

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

یک کار HTTP با google.com به عنوان URL کار ایجاد کنید:

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

کار در حالت معلق است زیرا صف متوقف شده است.

اکنون، URI HTTP را به‌روزرسانی کنید تا به اولین سرویس اشاره کند. با این کار میزبان وظیفه معلق از google.com به میزبان سرویس اول لغو می شود:

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

از سرگیری صف:

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

باید ببینید که اولین سرویس Cloud Run یک درخواست HTTP GET از Cloud Tasks به دلیل لغو (به جای 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. یک صف برای BufferTask API ایجاد کنید

به طور معمول، شما با استفاده از Tasks API یا از کتابخانه های سرویس گیرنده gcloud یا Tasks، کارها را ایجاد می کنید. این کار باعث می شود تا برنامه ها با استفاده از کتابخانه های سرویس گیرنده، درخواست های HTTP را در Tasks بپیچند و همچنین وابستگی بین برنامه ها و کتابخانه های سرویس گیرنده Tasks ایجاد می کند.

در این مرحله، می‌بینید که چگونه می‌توانید از مزایای URI HTTP در سطح صف و API جدید BufferTask برای ایجاد آسان‌تر وظایف هدف HTTP با ارسال یک درخواست HTTP استفاده کنید. هر برنامه‌ای که بتواند درخواست‌های HTTP ارسال کند، اکنون می‌تواند وظایف هدف HTTP ایجاد کند.

b1606516297fc4b6.png

BufferTask API چیست؟

CreateTask API روش قدیمی ایجاد Tasks است و مشتری را ملزم می کند که یک شی Task را با تمام فیلدهای مورد نیاز به API ارسال کند.

BufferTask API یک ویژگی جدید است که به کاربران امکان می دهد بدون نیاز به ارائه هیچ گونه پیکربندی وظیفه (URL HTTP، سرصفحه ها، مجوز) یک کار HTTP ایجاد کنند و به شما این امکان را می دهد که به سادگی یک پیام یا متن درخواست خود را به Buffer API ارسال کنید.

این امر ادغام آسان‌تر با سرویس‌ها را امکان‌پذیر می‌کند، زیرا اکنون می‌توان Cloud Tasks را در مقابل سرویس شما بدون نیاز به تغییر کد در سمت سرویس گیرنده مستقر کرد. هر درخواست HTTP دلخواه ارسال شده به BufferTask API به عنوان یک شی Task پیچیده می شود و به مقصد تعیین شده در سطح صف تحویل داده می شود.

برای استفاده از BufferTask API، صف باید دارای تنظیمات Target URI باشد، یا به عبارت دیگر، ویژگی Routing Configuration در سطح صف ، پیش نیاز استفاده از BufferTask API است.

یک صف Cloud Tasks با پیکربندی مسیریابی ایجاد کنید

یک صف با پیکربندی مسیریابی ایجاد کنید که به اولین سرویسی که در مرحله قبل مستقر کردیم اشاره می کند:

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

صف را موقتاً متوقف کنید تا بتوانید وظایف HTTP را هنگام ایجاد مشاهده کنید:

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

9. بافر درخواست های HTTP با BufferTask API

در این مرحله، درخواست های ساده HTTP GET یا POST را با BufferTask API بافر می کنید. زیر پوشش‌ها، Cloud Tasks این درخواست‌های HTTP را با تنظیمات پیکربندی مسیریابی پیش‌فرض صف در وظایف HTTP قرار می‌دهد.

ابتدا وارد شوید تا یک نشانه دسترسی دریافت کنید و چند متغیر را تنظیم کنید:

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 ایجاد کنید

یک کار HTTP با BufferTask API ایجاد کنید. توجه کنید که چگونه یک درخواست HTTP GET ساده بدون نیاز به ایجاد یک Task است:

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

یک کار HTTP دیگر با HTTP POST و بدنه ایجاد کنید:

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

اختیاری: همچنین می توانید یک کار HTTP با کتابخانه های سرویس گیرنده ایجاد کنید. به عنوان مثال، می‌توانید Program.cs برای نمونه C# بررسی کنید که در آن درخواست HTTP GET مستقیماً به BufferTask API ارسال می‌شود، بدون اینکه آن را در یک Task بپیچید یا نیازی به کلاینت-کتابخانه برای وظایف Cloud داشته باشید:

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}");
}

می توانید آن را به صورت زیر اجرا کنید:

dotnet run $PROJECT_ID $LOCATION $QUEUE3 $ACCESS_TOKEN

BufferTask API از ایجاد یک Task از درخواست های HTTP مراقبت می کند و URL را از تنظیمات پیکربندی مسیریابی صف برای URI اضافه می کند.

وظیفه HTTP را تست کنید

از سرگیری صف:

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

باید ببینید که سرویس Cloud Run یک درخواست HTTP GET و POST از Cloud Tasks دریافت کرده است:

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. تبریک می گویم

تبریک می گویم، شما نرم افزار کد را تمام کردید!

در ادامه، می‌توانید Cloud Tasks را به‌عنوان یک بافر بین Pub/Sub و Cloud Run امتحان کنید تا نمونه‌ای در دنیای واقعی ببینید که چگونه این ویژگی‌های جدید Cloud Tasks می‌تواند به ایجاد آسان صف بافر بین سرویس‌ها کمک کند.

پاکسازی (اختیاری)

برای جلوگیری از تحمیل هزینه، ایده خوبی است که منابع را تمیز کنید.

اگر به پروژه نیاز ندارید، می توانید به سادگی پروژه را حذف کنید:

gcloud projects delete $PROJECT_ID

اگر به پروژه نیاز دارید، می توانید منابع را به صورت جداگانه حذف کنید.

سرویس های Cloud Run را حذف کنید:

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

صف های Cloud Tasks را حذف کنید:

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

آنچه را پوشش داده ایم

  • نحوه ایجاد وظایف هدف HTTP
  • نحوه ایجاد وظایف هدف HTTP با URI جدید HTTP در سطح صف.
  • نحوه تغییر وظایف معلق با URI جدید HTTP در سطح صف.
  • چگونه با API جدید BufferTask، درخواست‌های HTTP را راحت‌تر بافر کنیم.