Använda Docker-containrar i frånkopplade miljöer

Med containrar kan du köra API:er för Cognitive Services i din egen miljö och passar bra för dina specifika krav på säkerhet och datastyrning. Med frånkopplade containrar kan du använda flera av dessa API:er som är frånkopplade från Internet. För närvarande kan följande containrar köras på det här sättet:

Användningen av frånkopplade containrar är också tillgänglig för följande tillämpade AI-tjänst:

Innan du försöker köra en Docker-container i en offlinemiljö bör du se till att du känner till stegen för att ladda ned och använda containern. Ett exempel:

  • Värddatorkrav och rekommendationer.
  • Det Docker-kommando pull som du använder för att ladda ned containern.
  • Så här verifierar du att en container körs.
  • Skicka frågor till containerns slutpunkt när den körs.

Begär åtkomst för att använda containrar i frånkopplade miljöer

Fyll i och skicka begärandeformuläret för att begära åtkomst till containrarna som är frånkopplade från Internet.

Formuläret begär information om dig, ditt företag och det användarscenario som du ska använda containern för. När du har skickat formuläret granskar Azure Cognitive Services-teamet det och skickar ett e-postmeddelande med ett beslut inom 10 arbetsdagar.

Viktigt

  • I formuläret måste du använda en e-postadress som är associerad med ett Azure-prenumerations-ID.
  • Den Azure-resurs som du använder för att köra containern måste ha skapats med det godkända Azure-prenumerations-ID:t.
  • Kontrollera din e-post (både inkorgen och skräppostmappar) för att få uppdateringar om status för ditt program från Microsoft.

När du har godkänts kan du köra containern när du har laddat ned den från Microsoft Container Registry (MCR), som beskrivs senare i artikeln.

Du kan inte köra containern om din Azure-prenumeration inte har godkänts.

Åtkomsten är begränsad till kunder som uppfyller följande krav:

  • Din organisation måste ha ett Microsoft-Enterprise-avtal eller ett motsvarande avtal och bör identifieras som strategisk kund eller partner med Microsoft.
  • Frånkopplade containrar förväntas köras helt offline, därför måste dina användningsfall uppfylla något av följande eller liknande krav:
    • Miljö eller enheter med noll anslutning till Internet.
    • Fjärrplats som ibland har internetåtkomst.
    • Organisation under strikt reglering av att inte skicka någon form av data tillbaka till molnet.
  • Programmet har slutförts enligt anvisningarna – Var noga med vägledningen som tillhandahålls i hela programmet för att säkerställa att du tillhandahåller all nödvändig information som krävs för godkännande.

Köpa en åtagandeplan för att använda containrar i frånkopplade miljöer

Skapa en ny resurs

  1. Logga in på Azure Portal och välj Skapa en ny resurs för någon av de tillämpliga Cognitive Services- eller Applied AI-tjänsterna som anges ovan.

  2. Ange relevant information för att skapa resursen. Se till att välja frånkopplade containrar på åtagandenivå som prisnivå.

    Anteckning

    • Du ser bara alternativet att köpa en åtagandenivå om du har godkänts av Microsoft.
    • Prisinformation är till exempel endast.

    En skärmbild som visar hur du skapar resurser på Azure Portal.

  3. Välj Granska + skapa längst ned på sidan. Granska informationen och välj Skapa.

Samla in obligatoriska parametrar

Det finns tre primära parametrar för alla Cognitive Services-containrar som krävs. Licensavtalet för slutanvändare (EULA) måste finnas med värdet accept. Dessutom behövs både en slutpunkts-URL och en API-nyckel när du först kör containern för att konfigurera den för frånkopplad användning.

Du hittar nyckeln och slutpunkten på sidan Nyckel och slutpunkt för din resurs.

Viktigt

Du använder bara din nyckel och slutpunkt för att konfigurera containern så att den körs i en frånkopplad miljö. När du har konfigurerat containern behöver du inte dem för att skicka API-begäranden. Lagra dem på ett säkert sätt, till exempel med hjälp av Azure Key Vault. Endast en nyckel krävs för den här processen.

Ladda ned en Docker-container med docker pull

När du har en licensfil laddar du ned Docker-containern som du har godkännande för att köra i en frånkopplad miljö. Ett exempel:

docker pull mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice:latest

Konfigurera containern som ska köras i en frånkopplad miljö

Nu när du har laddat ned containern måste du köra containern med parametern DownloadLicense=True i docker run kommandot . Den här parametern laddar ned en licensfil som gör att Docker-containern kan köras när den inte är ansluten till Internet. Den innehåller också ett förfallodatum, varefter licensfilen är ogiltig för att köra containern. Du kan bara använda en licensfil med lämplig container som du har godkänts för. Du kan till exempel inte använda en licensfil för en tal till text-container med en container för formigenkänning.

Viktigt

  • Endast Translator-container:
    • Du måste inkludera en parameter för att ladda ned modellfiler för de språk som du vill översätta. Exempelvis: -e Languages=en,es
    • Containern genererar en docker run mall som du kan använda för att köra containern, som innehåller parametrar som du behöver för de nedladdade modellerna och konfigurationsfilen. Se till att du sparar den här mallen.

I följande exempel visas formateringen för det docker run kommando som du ska använda, med platshållarvärden. Ersätt dessa platshållarvärden med dina egna värden.

Platshållare Värde Format eller exempel
{IMAGE} Den containeravbildning som du vill använda. mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{LICENSE_MOUNT} Sökvägen där licensen laddas ned och monteras. /host/license:/path/to/license/directory
{ENDPOINT_URI} Slutpunkten för att autentisera din tjänstbegäran. Du hittar den på resursens nyckel- och slutpunktssida på Azure Portal. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API_KEY} Nyckeln för din Textanalys resurs. Du hittar den på resursens nyckel- och slutpunktssida på Azure Portal. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{CONTAINER_LICENSE_DIRECTORY} Plats för licensmappen i containerns lokala filsystem. /path/to/license/directory
docker run --rm -it -p 5000:5000 \ 
-v {LICENSE_MOUNT} \
{IMAGE} \
eula=accept \
billing={ENDPOINT_URI} \
apikey={API_KEY} \
DownloadLicense=True \
Mounts:License={CONTAINER_LICENSE_DIRECTORY} 

När du har konfigurerat containern använder du nästa avsnitt för att köra containern i din miljö med licensen och lämpliga minnes- och CPU-allokeringar.

Köra containern i en frånkopplad miljö

Viktigt

Om du använder containrarna Translator, Neural text till tal eller Tal till text läser du avsnittet Ytterligare parametrar nedan för information om kommandon eller ytterligare parametrar som du behöver använda.

När licensfilen har laddats ned kan du köra containern i en frånkopplad miljö. I följande exempel visas formateringen för det docker run kommando som du ska använda, med platshållarvärden. Ersätt dessa platshållarvärden med dina egna värden.

Oavsett var containern körs måste licensfilen monteras på containern och platsen för licensmappen i containerns lokala filsystem måste anges med Mounts:License=. En utdatamontering måste också anges så att faktureringsanvändningsposter kan skrivas.

Platshållare Värde Format eller exempel
{IMAGE} Den containeravbildning som du vill använda. mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{MEMORY_SIZE} Lämplig storlek på minne som ska allokeras för containern. 4g
{NUMBER_CPUS} Lämpligt antal processorer som ska allokeras för containern. 4
{LICENSE_MOUNT} Sökvägen där licensen ska finnas och monteras. /host/license:/path/to/license/directory
{OUTPUT_PATH} Utdatasökvägen för loggning av användningsposter. /host/output:/path/to/output/directory
{CONTAINER_LICENSE_DIRECTORY} Plats för licensmappen i containerns lokala filsystem. /path/to/license/directory
{CONTAINER_OUTPUT_DIRECTORY} Platsen för utdatamappen i containerns lokala filsystem. /path/to/output/directory
docker run --rm -it -p 5000:5000 --memory {MEMORY_SIZE} --cpus {NUMBER_CPUS} \ 
-v {LICENSE_MOUNT} \ 
-v {OUTPUT_PATH} \
{IMAGE} \
eula=accept \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
Mounts:Output={CONTAINER_OUTPUT_DIRECTORY}

Ytterligare parametrar och kommandon

Se följande avsnitt för ytterligare parametrar och kommandon som du kan behöva köra containern.

Translator-container

Om du använder Translator-containern måste du lägga till parametrar för de nedladdade översättningsmodellerna och containerkonfigurationen. Dessa värden genereras och visas i containerns utdata när du konfigurerar containern enligt beskrivningen ovan. Ett exempel:

-e MODELS= /path/to/model1/, /path/to/model2/
-e TRANSLATORSYSTEMCONFIG=/path/to/model/config/translatorsystemconfig.json

Tal till text och neurala text-till-tal-containrar

Containrarna tal till text och neural text till tal tillhandahåller en standardkatalog för att skriva licensfilen och faktureringsloggen vid körning. Standardkatalogerna är /license respektive /output.

När du monterar dessa kataloger i containern med docker run -v kommandot kontrollerar du att den lokala datorkatalogen är inställd på user:group nonroot:nonroot ägarskap innan du kör containern.

Nedan visas ett exempelkommando för att ange fil-/katalogägarskap.

sudo chown -R nonroot:nonroot <YOUR_LOCAL_MACHINE_PATH_1> <YOUR_LOCAL_MACHINE_PATH_2> ...

Användningsposter

När du använder Docker-containrar i en frånkopplad miljö skriver containern användningsposter till en volym där de samlas in över tid. Du kan också anropa en REST-slutpunkt för att generera en rapport om tjänstanvändning.

Argument för att lagra loggar

När du kör i en frånkopplad miljö måste en utdatamontering vara tillgänglig för containern för att lagra användningsloggar. Du kan till exempel inkludera -v /host/output:{OUTPUT_PATH} och Mounts:Output={OUTPUT_PATH} i exemplet nedan ersätta {OUTPUT_PATH} med sökvägen där loggarna ska lagras:

docker run -v /host/output:{OUTPUT_PATH} ... <image> ... Mounts:Output={OUTPUT_PATH}

Hämta poster med containerslutpunkterna

Containern innehåller två slutpunkter för att returnera poster om dess användning.

Hämta alla poster

Följande slutpunkt innehåller en rapport som sammanfattar all användning som samlas in i katalogen för monterade faktureringsposter.

https://<service>/records/usage-logs/

Det returnerar JSON som liknar exemplet nedan.

{
  "apiType": "noop",
  "serviceName": "noop",
  "meters": [
    {
      "name": "Sample.Meter",
      "quantity": 253
    }
  ]
}

Hämta poster för en viss månad

Följande slutpunkt ger en rapport som sammanfattar användningen under en viss månad och ett visst år.

https://<service>/records/usage-logs/{MONTH}/{YEAR}

det returnerar ett JSON-svar som liknar exemplet nedan:

{
  "apiType": "string",
  "serviceName": "string",
  "meters": [
    {
      "name": "string",
      "quantity": 253
    }
  ]
}

Köpa en annan åtagandeplan för frånkopplade containrar

Åtagandeplaner för frånkopplade containrar har en åtagandeperiod för kalenderår. När du köper en plan debiteras du det fullständiga priset omedelbart. Under åtagandeperioden kan du inte ändra åtagandeplanen, men du kan köpa ytterligare enheter till ett proportionellt pris för de återstående dagarna under året. Du har fram till midnatt (UTC) på den sista dagen av ditt åtagande för att avsluta en åtagandeplan.

Du kan välja en annan åtagandeplan i prisinställningarna för åtagandenivå för din resurs.

Avsluta en åtagandeplan

Om du bestämmer dig för att du inte vill fortsätta köpa en åtagandeplan kan du ställa in resursens automatiska förnyelse på Förnya inte automatiskt. Din åtagandeplan upphör att gälla vid det visade slutdatumet för åtagandet. Efter det här datumet debiteras du inte för åtagandeplanen. Du kommer att kunna fortsätta använda Azure-resursen för att göra API-anrop, som debiteras enligt betala per användning-priser. Du har fram till midnatt (UTC) på den sista dagen på året för att avsluta en åtagandeplan för frånkopplade containrar och debiteras inte för följande år.

Felsökning

Om du kör containern med en utdatamontering och loggning aktiverad genererar containern loggfiler som är användbara för att felsöka problem som inträffar när containern startas eller körs.

Tips

Mer felsökningsinformation och vägledning finns i Vanliga frågor och svar om frånkopplade containrar.

Nästa steg

Översikt över Azure Cognitive Services-containrar