הוספת משימת יעד HTTP לתור משימות ב-Cloud Tasks
שירות Cloud Tasks מאפשר לשלוח משימות אסינכרוניות ליעדי HTTP, תוך שליטה בקצב הביצוע ובהתנהגות של ניסיונות חוזרים. במדריך למתחילים הזה משתמשים ב-Cloud Tasks API כדי ליצור תור ולהוסיף לו משימת HTTP target.
לפני שמתחילים
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים Google Cloud פרויקט.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
יוצרים Google Cloud פרויקט:
gcloud projects create PROJECT_ID
מחליפים את
PROJECT_IDבשם של פרויקט Google Cloud שיוצרים. -
בוחרים את הפרויקט שיצרתם: Google Cloud
gcloud config set project PROJECT_ID
מחליפים את
PROJECT_IDבשם הפרויקט ב- Google Cloud .
מפעילים את Cloud Tasks API, אם הוא עדיין לא מופעל:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable cloudtasks.googleapis.com
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות, צריך לוודא ש נכנסתם ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
-
מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM:
roles/cloudtasks.admin, roles/logging.viewergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
USER_IDENTIFIER: המזהה של חשבון המשתמש . דוגמאות מופיעות במאמר ייצוג המשתמשים במאגרי כוח עבודה בכללי מדיניות IAM. -
ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.
-
יצירת תור משימות ב-Cloud Tasks
משתמשים בפקודה gcloud tasks queues create כדי ליצור את התור.
בטרמינל, יוצרים תור שמתעד את כל הפעולות.
gcloud tasks queues create QUEUE_NAME \ --log-sampling-ratio=1.0 \ --location=REGIONמחליפים את מה שכתוב בשדות הבאים:
-
QUEUE_NAME: שם לתור של Cloud Tasks -
REGION: האזור הנתמך שבו פרסתם את השירות או האפליקציה
-
מחכים שהתור יופעל ומוודאים שהוא נוצר בהצלחה.
gcloud tasks queues describe QUEUE_NAME \ --location=REGIONהפלט אמור להיראות כך:
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
הוספת משימה לתור משימות ב-Cloud Tasks
משתמשים בפקודה gcloud tasks create-http-task כדי ליצור משימה שמכוונת לנקודת קצה של HTTP ולהוסיף את המשימה לתור.
ליצור משימה, להוסיף אותה לתור שיצרתם ולשלוח את המשימה לנקודת קצה של HTTP.
gcloud tasks create-http-task \ --queue=QUEUE_NAME \ --url=URL_PATH \ --method=GET \ --location=REGION \ --project=PROJECT_IDמחליפים את
URL_PATHבנתיב המלא של כתובת ה-URL שאליה תישלח הבקשה. הנתיב חייב להתחיל ב-http://או ב-https://. לדוגמה:https://www.example.com.כדי לוודא שהמשימה בוצעה בהצלחה, קוראים את היומנים.
gcloud logging read 'resource.type="cloud_tasks_queue" resource.labels.queue_id="QUEUE_NAME" severity>=DEFAULT' --limit=3היומנים אמורים להיראות כך:
jsonPayload: '@type': type.googleapis.com/google.cloud.tasks.logging.v1.TaskActivityLog task: projects/PROJECT_ID/locations/REGION/queues/QUEUE_NAME/tasks/TASK_ID taskCreationLog: scheduleTime: '2024-07-04T19:00:27.801837Z' status: OK targetAddress: GET https://www.example.com/ targetType: HTTP ...
הסרת המשאבים
כדי לא לצבור חיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, אתם צריכים למחוק את הפרויקט Google Cloud יחד עם המשאבים.
כדי למחוק Google Cloud פרויקט:
gcloud projects delete PROJECT_ID
אפשר גם למחוק את התור של Cloud Tasks:
gcloud tasks queues delete QUEUE_NAME \
--location=REGION