יצירה ועדכון של מופעים של אפליקציות

אחרי שיוצרים ופורסים אפליקציות, אפשר ליצור ולעדכן את מופעי האפליקציות האלה באמצעות מסוף Google Cloud או שורת פקודה.

יצירת מופע של אפליקציה

REST

כדי ליצור מופע של אפליקציה, שולחים בקשת POST באמצעות השיטה projects.locations.applications.createApplicationInstances.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

ה-method של ה-HTTP וכתובת ה-URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:createApplicationInstances

גוף בקשת JSON:

{
  "applicationInstances": [
    {
      "instance": {
        "inputResources": [
          {
            "consumerNode": "input-stream",
            "inputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
          }
        ]
      },
      "instanceId": "INSTANCE_ID"
    },
    {
      "instance": {
         [...]
    },
    [...]
  ]
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:createApplicationInstances"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:createApplicationInstances" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.OperationMetadata",
    "createTime": "[...]",
    "Target": "projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID"
    "Verb": "update"
    "apiVersion": "v1"
  },
  "done": false
}

עדכון מופע של אפליקציה

אחרי שיוצרים אפליקציה ומקבלים מזהה מופע אפליקציה, אפשר לשנות את המשאבים הבאים של מופע האפליקציה:

  • זרם קלט*: אפשר לשנות את נכס זרם הקלט.
  • נכס של מחסן נתונים של פלט: אתם יכולים לעדכן את נכס הפלט אם התחברתם למחסן נתונים ואתם רוצים לכתוב את הפלט לנכס אחר של מחסן נתונים (corpus).
  • זרם פלט*: אפשר להחליף את זרם הפלט אם רוצים לעדכן אותו מזרם שנוצר אוטומטית לזרם ספציפי שיצרתם.

    * מקור הנתונים ומקור הפלט חייבים להיות באותו אשכול עבור אותו מופע של האפליקציה.

REST

כדי לעדכן מופע של אפליקציה, שולחים בקשת POST באמצעות השיטה projects.locations.applications.updateApplicationInstances.

בדוגמת הקוד הבאה מתבצע עדכון של זרם הקלט (inputResources) ושל כל משאבי הפלט שמשויכים למופע האפליקציה (outputResources).

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT: מזהה הפרויקט או מספר הפרויקט ב- Google Cloud.
  • LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI Vision. לדוגמה: us-central1, ‏ europe-west4. אזורים זמינים
  • APPLICATION_ID: המזהה של אפליקציית היעד.
  • INSTANCE_NAME: שם המשאב המלא של מופע האפליקציה. לדוגמה:
    • projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID/instances/INSTANCE_ID
  • inputResources: משאב הקלט (או המשאבים) של מופע האפליקציה הנוכחי. זהו מערך של אובייקטים שמכילים את השדות הבאים:
    • consumerNode: השם של צומת הגרף שמקבל את משאב הקלט.
    • inputResource: שם המשאב המלא של הקלט.
  • outputResources: כל משאבי הפלט שמשויכים למופע אחד של אפליקציה. זהו מערך של אובייקטים שמכילים את השדות הבאים:
    • outputResource: שם המשאב המלא של הפלט.
    • producerNode: השם של צומת הגרף שמייצר את שם משאב הפלט.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances

גוף בקשת JSON:

{
  "applicationInstances": [
    {
      "instance": {
        "name": "INSTANCE_NAME",
        "inputResources": [
          {
            "consumerNode": "input-stream",
            "inputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
          }
        ],
        "outputResources":[
          {
            "outputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID",
            "producerNode": "warehouse"
          },
          {
            "outputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID",
            "producerNode": "occupancy-count"
          }
        ]
      },
    }
  ],
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances" | Select-Object -Expand Content
 

ניהול אפליקציות בקנה מידה גדול

השיטות deploy ו-undeploy תקפות לאפליקציות עם פחות מ-20 מופעים. אם באפליקציה יש יותר מ-20 מופעים, צריך ליצור ולהסיר מופעים באופן מצטבר באמצעות ה-API. תהליך העבודה המומלץ הוא כדלקמן:

  1. יוצרים את האפליקציה.
  2. מוסיפים 1 עד 20 מופעים ניסיוניים.
  3. פורסים את האפליקציה.
  4. מוודאים שהאפליקציה פועלת כמצופה.
  5. כדי להוסיף עוד קלטים לאפליקציה שנפרסה, אפשר להשתמש בשיטה createApplicationInstances.
  6. מאשרים את הפעלת האפליקציה.
  7. משתמשים בשיטה deleteApplicationInstances כדי להסיר בהדרגה קלטים מאפליקציות שפרסתם.
  8. מבטלים את הפריסה של האפליקציה.