Usare i contenitori Docker in ambienti disconnessi

I contenitori consentono di eseguire le API dei servizi di intelligenza artificiale di Azure nel proprio ambiente e sono ideali per i requisiti specifici di sicurezza e governance dei dati. I contenitori disconnessi consentono di usare diverse di queste API disconnesse da Internet. Attualmente, i contenitori seguenti possono essere eseguiti in questo modo:

Prima di tentare di eseguire un contenitore Docker in un ambiente offline, assicurarsi di conoscere i passaggi per scaricare e usare correttamente il contenitore. Ad esempio:

  • Requisiti e raccomandazioni del computer host.
  • Il comando Docker pull che verrà usato per scaricare il contenitore.
  • Come verificare che un contenitore sia in esecuzione.
  • Come inviare query all'endpoint del contenitore, dopo l'esecuzione.

Richiedere l'accesso per l'uso di contenitori in ambienti disconnessi

Compilare e inviare il modulo di richiesta per richiedere l'accesso ai contenitori disconnessi da Internet.

Il modulo richiede informazioni sull'utente, sull'azienda e sullo scenario utente per cui si userà il contenitore. Dopo aver inviato il modulo, il team di Servizi di Azure AI lo esamina e invia una decisione entro 10 giorni lavorativi.

Importante

  • Nel modulo è necessario usare un indirizzo di posta elettronica associato a un ID sottoscrizione di Azure.
  • La risorsa di Azure usata per eseguire il contenitore deve essere stata creata con l'ID sottoscrizione di Azure approvato.
  • Controllare la posta elettronica (sia nella cartella della posta in arrivo sia nella cartella della posta indesiderata) per gli aggiornamenti sullo stato della richiesta da Microsoft.

Dopo avere ottenuto l'approvazione, sarà possibile eseguire il contenitore dopo averlo scaricato dal registro dei contenitori Microsoft (MCR) descritto più avanti nell'articolo.

Non sarà possibile eseguire il contenitore se la sottoscrizione di Azure non è stata approvata.

L'accesso è limitato ai clienti che soddisfano i requisiti seguenti:

  • L'organizzazione deve essere identificata come cliente strategico o partner con Microsoft.
  • I contenitori disconnessi devono essere eseguiti completamente offline, pertanto i casi d'uso devono soddisfare uno dei requisiti seguenti o simili:
    • Ambiente o dispositivi senza connettività a Internet.
    • Posizione remota che occasionalmente ha accesso a Internet.
    • L'organizzazione, in base a una rigorosa regolamentazione, non invia alcun tipo di dati al cloud.
  • Applicazione completata come indicato: prestare particolare attenzione alle indicazioni fornite in tutta l'applicazione per assicurarsi di fornire tutte le informazioni necessarie per l'approvazione.

Acquistare un piano tariffario del livello di impegno per i contenitori disconnessi

Creazione di una nuova risorsa

  1. Accedere al portale di Azure e selezionare Crea una nuova risorsa per uno dei servizi di intelligenza artificiale di Azure applicabili elencati in precedenza.

  2. Immettere le informazioni applicabili per creare la risorsa. Assicurarsi di selezionare Contenitori disconnessi del livello di impegno come piano tariffario.

    Nota

    • Verrà visualizzata l'opzione per acquistare un livello di impegno solo se è stato approvato da Microsoft.
    • I dettagli sui prezzi sono solo per esempio.
  3. Selezionare Rivedi e crea nella parte inferiore della pagina. Esaminare le informazioni e selezionare Crea.

Configurare il contenitore per l'utilizzo disconnesso

Per la procedura di download e configurazione del contenitore per l'utilizzo disconnesso, vedere la documentazione seguente:

Servizio Voce

Servizio di linguaggio

Nomi di variabili di ambiente nelle distribuzioni kubernetes

Alcuni contenitori di Azure per intelligenza artificiale, ad esempio Traduttore, richiedono agli utenti di passare nomi di variabili ambientali che includono i due punti (:) durante l'esecuzione del contenitore. Questa operazione funzionerà correttamente quando si usa Docker, ma Kubernetes non accetta i due punti nei nomi delle variabili di ambiente. Per risolvere questo problema, è possibile sostituire i due punti con caratteri di sottolineatura doppia (__) durante la distribuzione in Kubernetes. Vedere l'esempio seguente di un formato accettabile per i nomi delle variabili di ambiente:

        env:  
        - name: Mounts__License
          value: "/license"
        - name: Mounts__Output
          value: "/output"

In questo esempio viene sostituito il formato predefinito con i nomi delle variabili di ambiente Mounts:License e Mounts:Output nel comando di esecuzione docker.

Aggiornamenti delle licenze e dell'immagine del contenitore

I file di licenza del contenitore vengono usati come chiavi per decrittografare determinati file all’interno di ogni immagine del contenitore. Se questi file crittografati vengono aggiornati in una nuova immagine del contenitore, il file di licenza potrebbe non riuscire ad avviare il contenitore anche se funzionava con la versione precedente dell'immagine del contenitore. Per prevenire questo problema, si consiglia di scaricare un nuovo file di licenza dall'endpoint della risorsa per il contenitore fornito nel portale di Azure, dopo aver eseguito il pull di nuove versioni di immagini da mcr.microsoft.com.

Per scaricare un nuovo file di licenza, è possibile aggiungere DownloadLicense=True al comando di esecuzione docker insieme a un montaggio della licenza, alla chiave API e all'endpoint di fatturazione. Per istruzioni dettagliate, fare riferimento alla documentazione del contenitore.

Record di utilizzo

Quando si usano contenitori Docker in un ambiente disconnesso, il contenitore scriverà i record di utilizzo in un volume in cui vengono raccolti nel tempo. È anche possibile chiamare un endpoint REST per generare un report sull'utilizzo del servizio.

Argomenti per l'archiviazione dei log

Quando viene eseguito in un ambiente disconnesso, un montaggio di output deve essere disponibile per il contenitore per archiviare i log di utilizzo. Ad esempio, è necessario includere -v /host/output:{OUTPUT_PATH} e Mounts:Output={OUTPUT_PATH} nell'esempio seguente, sostituendo {OUTPUT_PATH} con il percorso in cui verranno archiviati i log:

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

Ottenere record usando gli endpoint del contenitore

Il contenitore fornisce due endpoint per la restituzione di record relativi all'utilizzo.

Ottenere tutti i record

L'endpoint seguente fornirà un report che riepiloga tutti gli utilizzi raccolti nella directory dei record di fatturazione montata.

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

Restituisce JSON simile all'esempio seguente.

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

Ottenere record per un mese specifico

L'endpoint seguente fornirà un report che riepiloga l'utilizzo in un mese e un anno specifici.

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

restituirà una risposta JSON simile all'esempio seguente:

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

Acquistare un piano di impegno per l'uso di contenitori in ambienti disconnessi

I piani di impegno per i contenitori disconnessi hanno un periodo di impegno di un anno di calendario. Quando acquisti un piano, riceverai immediatamente l'addebito del prezzo completo. Durante il periodo di impegno, non è possibile modificare il piano di impegno, ma è possibile acquistare unità aggiuntive a un prezzo proporzionale per i giorni rimanenti dell'anno. È possibile terminare un piano di impegno fino alla mezzanotte (UTC) dell'ultimo giorno dell'impegno.

È possibile scegliere un piano di impegno diverso nelle impostazioni Prezzi del piano di impegno della risorsa.

Terminare un piano di impegno

Se si decide di non voler continuare ad acquistare un piano di impegno, è possibile impostare il rinnovo automatico della risorsa su Non rinnovare automaticamente. Il piano di impegno scadrà alla data di fine dell'impegno visualizzata. Dopo questa data, i costi per il piano di impegno non verranno più addebitati. Sarà possibile continuare a usare la risorsa di Azure per effettuare chiamate API, addebitate ai prezzi con pagamento in base al consumo. Fino alla mezzanotte (UTC) dell'ultimo giorno dell'anno per terminare un piano di impegno per i contenitori disconnessi e non verrà addebitato alcun costo per l'anno successivo.

Risoluzione dei problemi

Se si esegue il contenitore con un punto di montaggio di output e la registrazione attivata, il contenitore genera file di log utili per risolvere i problemi che si verificano durante l'avvio o l'esecuzione del contenitore.

Suggerimento

Per altre informazioni sulla risoluzione dei problemi e indicazioni, vedere Domande frequenti sui contenitori disconnessi.

Passaggi successivi

Panoramica dei contenitori di Intelligenza artificiale di Azure