Dela via


Integrera Azure Storage för meddelanden och säkerhetskopiering

Du kan integrera ditt Custom Vision-projekt med en Azure Blob Storage-kö för att få push-meddelanden om projektträning/exportaktivitet. Den här funktionen är användbar för att undvika att kontinuerligt avsöka tjänsten efter resultat när långa åtgärder körs. I stället kan du integrera lagringskömeddelandena i arbetsflödet.

Du kan också använda Azure Storage för att lagra säkerhetskopior av dina publicerade modeller.

Den här guiden visar hur du använder dessa REST-API:er med cURL. Du kan också använda en HTTP-begärandetjänst, till exempel REST-klienten för Visual Studio Code, för att göra begäranden.

Kommentar

Push-meddelanden är beroende av den valfria notificationQueueUri-parametern i CreateProject-API:et, och modellsäkerhetskopior kräver att du också använder parametern exportModelContainerUri. Den här guiden använder båda för den fullständiga uppsättningen funktioner.

Förutsättningar

Konfigurera Azure Storage-integrering

Gå till din Custom Vision-träningsresurs på Azure-portalen, välj identitetssidan och aktivera systemtilldelad hanterad identitet.

Gå sedan till din lagringsresurs i Azure-portalen. Gå till sidan Åtkomstkontroll (IAM) och välj Lägg till rolltilldelning (förhandsversion). Lägg sedan till en rolltilldelning för antingen integrationsfunktionen eller båda:

  • Om du planerar att använda funktionen för modellsäkerhetskopiering väljer du rollen Storage Blob Data Contributor och lägger till din Custom Vision-träningsresurs som medlem. Välj Granska + tilldela för att slutföra.
  • Om du planerar att använda funktionen för meddelandekö väljer du rollen Lagringsködatadeltagare och lägger till din Custom Vision-träningsresurs som medlem. Välj Granska + tilldela för att slutföra.

Hjälp med rolltilldelningar finns i Tilldela Azure-roller med hjälp av Azure-portalen.

Hämta integrerings-URL:er

Därefter får du url:er som gör att din Custom Vision-resurs kan komma åt dessa slutpunkter.

För url:en för integrering av meddelandekön går du till sidan Köer för ditt lagringskonto , lägger till en ny kö och sparar url:en på en tillfällig plats.

Azure Storage-kösida

För url:en för integrering av modellsäkerhetskopiering går du till sidan Containrar för ditt lagringskonto och skapar en ny container. Välj den och gå sedan till sidan Egenskaper . Kopiera URL:en till en tillfällig plats.

Sidan Egenskaper för Azure Storage-container

Integrera ett Custom Vision-projekt

Nu när du har integrerings-URL:er kan du skapa ett nytt Custom Vision-projekt som integrerar Azure Storage-funktionerna. Du kan också uppdatera ett befintligt projekt för att lägga till funktionerna.

När du anropar API:et CreateProject lägger du till de valfria parametrarna exportModelContainerUri och notificationQueueUri. Tilldela de URL-värden som du fick i föregående avsnitt.

curl -v -X POST "{endpoint}/customvision/v3.3/Training/projects?exportModelContainerUri={inputUri}&notificationQueueUri={inputUri}&name={inputName}"
-H "Training-key: {subscription key}"

Om du får ett 200/OK svar innebär det att URL:erna har konfigurerats. Du bör också se dina URL-värden i JSON-svaret:

{
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "string",
  "description": "string",
  "settings": {
    "domainId": "00000000-0000-0000-0000-000000000000",
    "classificationType": "Multiclass",
    "targetExportPlatforms": [
      "CoreML"
    ],
    "useNegativeSet": true,
    "detectionParameters": "string",
    "imageProcessingSettings": {
      "augmentationMethods": {}
},
"exportModelContainerUri": {url}
"notificationQueueUri": {url}
  },
  "created": "string",
  "lastModified": "string",
  "thumbnailUri": "string",
  "drModeEnabled": true,
  "status": "Succeeded"
}

Verifiera anslutningen

DITT API-anrop i föregående avsnitt bör redan ha utlöst ny information i ditt Azure Storage-konto.

I den avsedda containern bör det finnas en testblob i mappen CustomVision-TestPermission . Den här bloben finns bara tillfälligt.

I meddelandekön bör du se ett testmeddelande i följande format:

{
"version": "1.0" ,
"type": "ConnectionTest",
"Content":
    {
    "projectId": "00000000-0000-0000-0000-000000000000"
    }
}

Hämta händelsemeddelanden

När du är redo anropar du TrainProject-API:et i projektet för att utföra en vanlig träningsåtgärd.

I lagringsmeddelandekön får du ett meddelande när träningen är klar:

{
"version": "1.0" ,
"type": "Training",
"Content":
    {
    "projectId": "00000000-0000-0000-0000-000000000000",
    "iterationId": "00000000-0000-0000-0000-000000000000",
    "trainingStatus": "TrainingCompleted"
    }
}

Fältet "trainingStatus" kan vara antingen "TrainingCompleted" eller "TrainingFailed". Fältet "iterationId" är ID för den tränade modellen.

Hämta säkerhetskopieringar av modellexport

När du är klar anropar du ExportIteration API för att exportera en tränad modell till en angiven plattform.

I din avsedda lagringscontainer visas en säkerhetskopia av den exporterade modellen. Blobnamnet har formatet:

{projectId} - {iterationId}.{platformType}

Dessutom får du ett meddelande i kön när exporten är klar.

{
"version": "1.0" ,
"type": "Export",
"Content":
    {
    "projectId": "00000000-0000-0000-0000-000000000000",
    "iterationId": "00000000-0000-0000-0000-000000000000",
    "exportStatus": "ExportCompleted",
    "modelUri": {url}
    }
}

Fältet "exportStatus" kan vara antingen "ExportCompleted" eller "ExportFailed". Fältet "modelUri" innehåller URL:en för den säkerhetskopieringsmodell som lagras i containern, förutsatt att du integrerade köaviseringar i början. Om du inte gjorde det visar fältet "modelUri" SAS-URL:en för din Custom Vision-modellblob.

Nästa steg

I den här guiden har du lärt dig hur du kopierar och säkerhetskopierar ett projekt mellan Custom Vision-resurser. Utforska sedan API-referensdokumenten för att se vad mer du kan göra med Custom Vision.