Condividi tramite


Distribuire API di generazione dati in Istanze di Azure Container

Diagramma della posizione corrente ('Pubblica') nell'ambito della sequenza del manuale di distribuzione.

Diagramma della sequenza della guida alla distribuzione, inclusi questi percorsi, in ordine: Panoramica, Piano, Preparazione, Pubblicazione, Monitoraggio e Ottimizzazione. La posizione "Pubblica" è attualmente evidenziata.

Distribuire rapidamente il generatore di API dati in Azure usando solo un file di configurazione e nessun codice personalizzato. Questa guida include i passaggi per ospitare l'immagine del builder API dati di Docker come contenitore nelle Azure Container Instances.

In questa guida vengono illustrati i passaggi per compilare un file di configurazione di Generatore API dati, ospitare il file in File di Azure e quindi montare il file in un contenitore in Istanze di Azure Container.

Prerequisiti

Compilare il file di configurazione

Per iniziare, compilare un file di configurazione del generatore di API dati (DAB) per connettersi al database esistente. Questo file viene usato in un secondo momento con il contenitore finale.

  1. Creare una directory vuota nel computer locale per archiviare il file di configurazione.

  2. Inizializzare un nuovo file di configurazione di base usando dab init. Usare le impostazioni seguenti almeno all'inizializzazione.

    Impostazione Valore
    Tipo di database Selezionare un tipo di database supportato.
    Stringa di connessione Usare la @env() funzione per fare riferimento alla DATABASE_CONNECTION_STRING variabile di ambiente.
    dab init --database-type "<database-type>" --connection-string "@env('DATABASE_CONNECTION_STRING')"
    

    Importante

    Alcuni tipi di database richiedono impostazioni di configurazione aggiuntive per l'inizializzazione.

  3. Aggiungere almeno un'entità di database alla configurazione. Usare il dab add comando per configurare un'entità. Configurare ogni entità per consentire tutte le autorizzazioni per gli utenti anonimi. Ripeti dab add quante volte vuoi per le entità.

    dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"
    
  4. Aprire ed esaminare il contenuto del file dab-config.json . Questo file verrà usato più avanti in questa guida.

Configurazione dell'host in Azure File

Caricare quindi il file di configurazione in una condivisione file creata in File di Azure. Questa condivisione file viene infine montata nel contenitore finale come volume.

  1. Accedere al portale di Azure (https://portal.azure.com).

  2. Creare un nuovo gruppo di risorse. Questo gruppo di risorse verrà usato per tutte le nuove risorse in questa guida.

    Screenshot della scheda

    Suggerimento

    È consigliabile denominare il gruppo di risorse msdocs-dab-aci. Tutti gli screenshot in questa guida usano questo nome.

  3. Creare un account di archiviazione di Azure. Usare queste impostazioni per configurare l'account.

    Impostazione Valore
    Gruppo di risorse Selezionare il gruppo di risorse creato in precedenza
    Nome dell'account di archiviazione Immettere un nome univoco globale
    Regione Selezionare un'area di Azure
    Prestazioni selezionare Standard
    Ridondanza Selezionare Archiviazione con ridondanza locale.
    Abilitare l'accesso alla chiave dell'account di archiviazione Seleziona Abilitato

    Screenshot della scheda 'Avanzate' della pagina 'Crea un account di archiviazione' nel portale di Azure.

  4. Passare al nuovo account di archiviazione nel portale di Azure.

  5. Selezionare Condivisioni file nella sezione Archiviazione dati del menu delle risorse. Selezionare quindi Condivisione file dalla barra dei comandi per creare una nuova condivisione nell'account di archiviazione. Usare le impostazioni seguenti per configurare la nuova condivisione file.

    Impostazione Valore
    Nome Immetti config
    Livello di accesso Selezionare In evidenza
    Abilitare il backup Non selezionare

    Screenshot delle opzioni del menu della risorsa **Condivisione file** e della barra dei comandi nel portale di Azure.

  6. Caricare il dab-config.json e tutti gli altri file necessari nella cartella condivisa. Usare l'opzione Carica nella barra dei comandi per aprire la finestra di dialogo Carica file . Selezionare entrambi i file e quindi carica.

    Screenshot della finestra di dialogo **Carica file** nel portale di Azure.

  7. Selezionare Chiavi di accesso nella sezione Sicurezza e rete del menu delle risorse. Registrare quindi il nome dell'account di archiviazione e i valori chiave di questa pagina. Questi valori verranno usati più avanti in questa guida.

    Screenshot della pagina

Creare l'istanza del contenitore di base

Infine, creare il contenitore in Azure usando Istanze di Azure Container. Questo contenitore ospita l'immagine del generatore di API dati con un file di configurazione per connettersi al database.

Importante

Attualmente, l'unico modo per creare un'istanza di contenitore con un volume montato è l'interfaccia della riga di comando di Azure.

  1. Creare una risorsa Azure Container Instances utilizzando az container create. Usare queste impostazioni per configurare la risorsa.

    Impostazione Valore
    Gruppo di risorse Usare il gruppo di risorse creato in precedenza
    Nome contenitore Immettere un nome univoco globale
    Regione Usare la stessa area dell'account di archiviazione
    SKU Utilizzare Standard
    Tipo di immagine Usa Public
    Image Immetti mcr.microsoft.com/azure-databases/data-api-builder:latest
    Tipo di sistema operativo Usare Linux
    Tipo di rete Usa Public
    Porte di rete Immetti 5000
    Etichetta del nome DNS Immettere un'etichetta univoca a livello globale
    Variabili di ambiente Immettere DATABASE_CONNECTION_STRING e la stringa di connessione per il database.
    az container create \
        --resource-group "<resource-group-name>" \
        --name "<unique-container-instance-name>" \
        --image "mcr.microsoft.com/azure-databases/data-api-builder:latest" \
        --location "<region>" \
        --sku "Standard" \
        --os-type "Linux" \
        --ip-address "public" \
        --ports "5000" \
        --dns-name-label "<unique-dns-label>" \
        --environment-variables "DATABASE_CONNECTION_STRING=<database-connection-string>" \
        --azure-file-volume-mount-path "/cfg" \
        --azure-file-volume-account-name "<storage-account-name>" \
        --azure-file-volume-account-key "<storage-account-key>" \
        --azure-file-volume-share-name "config" \
        --command-line "dotnet Azure.DataApiBuilder.Service.dll --ConfigFileName /cfg/dab-config.json"
        --
    

    Suggerimento

    È consigliabile usare una stringa di connessione che non include chiavi di autorizzazione. Usare invece identità gestite e controllo degli accessi in base al ruolo per gestire l'accesso tra il database e l'host. Per altre informazioni, vedere Servizi di Azure che usano identità gestite.

  2. Usare az container show per eseguire una query sul nome di dominio completo (FQDN) per la nuova istanza del contenitore. Visitare quindi il sito Web dell'istanza del contenitore.

    az container show \
        --resource-group "<resource-group-name>" \
        --name "<unique-container-instance-name>" \
        --query "join('://', ['https', ipAddress.fqdn])" \
        --output "tsv"
    
  3. Osservare la risposta che indica che il contenitore DAB è in esecuzione e che lo stato è integro.

    {
        "status": "healthy",
        "version": "1.1.7",
        "app-name": "dab_oss_1.1.7"
    }
    

    Annotazioni

    Il numero di versione e il nome variano in base alla versione corrente di Generatore API dati. A questo punto, non è possibile passare ad alcun endpoint API. Questi endpoint saranno disponibili dopo il montaggio di un file di configurazione DAB.

  4. Passare al percorso /api/swagger dell'applicazione attualmente in esecuzione. Usare l'interfaccia utente di Swagger per inviare una richiesta HTTP GET per una delle entità.

Pulire le risorse

Quando l'applicazione o le risorse di esempio non sono più necessarie, rimuovere la distribuzione corrispondente e tutte le risorse.

  1. Passare al gruppo di risorse usando il portale di Azure.

  2. Nella barra dei comandi selezionare Elimina.

Passo successivo