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
- En Azure Custom Vision-resurs. Om du inte har någon går du till Azure Portal och skapar en ny Custom Vision-resurs.
Kommentar
Den här funktionen stöder inte azure AI-tjänster med flera tjänster.
- Ett Azure Storage-konto med en blobcontainer. Följ snabbstarten För lagring om du behöver hjälp med det här steget.
- PowerShell version 6.0+ eller ett liknande kommandoradsprogram.
Konfigurera Azure Storage-integrering
Gå till din Custom Vision-träningsresurs på Azure Portal, välj identitetssidan och aktivera systemtilldelad hanterad identitet.
Gå sedan till lagringsresursen i Azure Portal. 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 Portal.
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.
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.
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}¬ificationQueueUri={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.