Créer et mettre à jour des instances d'application

Après avoir créé et déployé des applications, vous pouvez créer et mettre à jour ces instances d'application à l'aide de la console Google Cloud ou de la ligne de commande.

Créer une instance d'application

REST

Pour créer une instance d'application, envoyez une requête POST à l'aide de la méthode projects.locations.applications.createApplicationInstances.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_NUMBER : Numéro de votre projet Google Cloud.
  • LOCATION_ID : région dans laquelle vous utilisez Vertex AI Vision. Par exemple : us-central1, europe-west4. Consultez les régions disponibles.
  • APPLICATION_ID : ID de votre application cible.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON de ce type :

{
  "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
}

Mettre à jour une instance d'application

Une fois que vous avez créé une application et obtenu un ID d'instance d'application, vous pouvez modifier les ressources d'instance d'application suivantes :

  • Flux d'entrée* : vous pouvez modifier le composant du flux d'entrée.
  • Élément d'entrepôt de données de sortie : vous pouvez mettre à jour l'élément de sortie si vous êtes connecté à un entrepôt de données et que vous souhaitez écrire la sortie dans un autre élément d'entrepôt de données (corpus).
  • Flux de sortie* : vous pouvez remplacer le flux de sortie si vous souhaitez passer d'un flux généré automatiquement à un flux spécifique que vous avez créé.

    * Le flux d'entrée et le flux de sortie doivent appartenir au même cluster pour la même instance d'application.

REST

Pour mettre à jour une instance d'application, envoyez une requête POST à l'aide de la méthode projects.locations.applications.updateApplicationInstances.

L'exemple de code suivant met à jour le flux d'entrée (inputResources) et toutes les ressources de sortie associées à l'instance d'application (outputResources).

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT : ID ou numéro de votre projet Google Cloud.
  • LOCATION_ID : région dans laquelle vous utilisez Vertex AI Vision. Par exemple : us-central1, europe-west4. Consultez les régions disponibles.
  • APPLICATION_ID : ID de votre application cible.
  • INSTANCE_NAME : nom complet de la ressource de l'instance d'application. Exemple :
    • projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID/instances/INSTANCE_ID
  • inputResources : ressource (s) d'entrée pour l'instance d'application actuelle. Il s'agit d'un tableau d'objets contenant les champs suivants :
    • consumerNode : nom du nœud de graphique qui reçoit la ressource d'entrée.
    • inputResource : nom complet de la ressource d'entrée.
  • outputResources : toutes les ressources de sortie associées à une instance d'application. Il s'agit d'un tableau d'objets contenant les champs suivants :
    • outputResource : nom complet de la ressource de sortie.
    • producerNode : nom du nœud de graphique qui génère le nom de la ressource de sortie.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "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"
          }
        ]
      },
    }
  ],
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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
 

Gérer des applications à grande échelle

Les méthodes de déploiement et d'annulation du déploiement sont valides pour les applications comportant moins de 20 instances. Si votre application comporte plus de 20 instances, vous devez créer et supprimer des instances de manière incrémentielle avec l'API. Le workflow recommandé est le suivant :

  1. Créez votre application.
  2. Ajoutez entre 1 et 20 instances expérimentales.
  3. Déployez votre application.
  4. Vérifiez que votre application fonctionne comme prévu.
  5. Utilisez la méthode createApplicationInstances pour ajouter progressivement des entrées à l'application déployée.
  6. Autorisez l'application à s'exécuter.
  7. Utilisez la méthode deleteApplicationInstances pour supprimer progressivement les entrées des applications déployées.
  8. Annulez le déploiement de l'application.