Fornire una rete virtuale a un ambiente esterno App contenitore di Azure.

L'esempio seguente illustra come creare un ambiente app contenitore in una rete virtuale esistente.

Per iniziare, accedere al portale di Azure.

Creare un'app contenitore

Per creare l'app contenitore, iniziare dalla home page portale di Azure.

  1. Cercare App contenitore nella barra di ricerca superiore.
  2. Selezionare App contenitore nei risultati della ricerca.
  3. Selezionare il pulsante Crea.

Scheda Informazioni di base

Nella scheda Informazioni di base eseguire le azioni seguenti.

  1. Immettere i valori seguenti nella sezione Dettagli progetto.

    Impostazione Azione
    Abbonamento Seleziona la tua sottoscrizione di Azure.
    Gruppo di risorse Selezionare Crea nuovo e immettere my-container-apps.
    Nome dell'app contenitore Immettere my-container-app.

Crea un ambiente

Creare quindi un ambiente per l'app contenitore.

  1. Selezionare l'area appropriata.

    Impostazione Valore
    Paese Selezionare Stati Uniti centrali.
  2. Nel campo Crea ambiente app contenitore selezionare il collegamento Crea nuovo.

  3. Nella pagina Crea ambiente app contenitore nella scheda Informazioni di base immettere i valori seguenti:

    Impostazione Valore
    Nome ambiente Immettere my-environment.
    Tipo di ambiente Selezionare Solo consumo.
    Ridondanza della zona selezionare Disabilitato
  4. Selezionare la scheda Monitoraggio per creare un'area di lavoro Log Analytics.

  5. Selezionare Azure Log Analytics come destinazione log.

  6. Selezionare il collegamento Crea nuovo nel campo Area di lavoro Log Analytics e immettere i valori seguenti.

    Impostazione valore
    Nome Immettere my-container-apps-logs.

    Il campo Località viene precompilato con Stati Uniti centrali.

  7. Seleziona OK.

Nota

È possibile usare una rete virtuale esistente, ma è necessaria una subnet dedicata con un intervallo CIDR superiore /23 o superiore per l'uso con le app contenitore quando si usa l'architettura solo a consumo. Quando si usa un ambiente dei profili di carico di lavoro, è necessario un /27 o più grandi. Per altre informazioni sul dimensionamento delle subnet, vedere panoramica dell'architettura di rete.

  1. Selezionare la scheda Rete per creare una rete virtuale.

  2. Selezionare Sì accanto a Usa la propria rete virtuale.

  3. Accanto alla casella Rete virtuale selezionare il collegamento Crea nuovo e immettere il valore seguente.

    Impostazione valore
    Nome Immettere my-custom-vnet.
  4. Selezionare il pulsante OK.

  5. Accanto alla casella Subnet infrastruttura selezionare il collegamento Crea nuovo e immettere i valori seguenti:

    Impostazione Valore
    Nome della subnet Immettere infrastructure-subnet.
    Blocco di indirizzi della rete virtuale Mantenere i valori predefiniti.
    Blocco di indirizzi della subnet Mantenere i valori predefiniti.
  6. Selezionare il pulsante OK.

  7. In IP virtuale selezionare Esterno.

  8. Seleziona Crea.

Distribuire l'app contenitore

  1. Selezionare Rivedi e crea nella parte inferiore della pagina.

    Se non vengono rilevati errori, il pulsante Crea è abilitato.

    In caso di errori, qualsiasi scheda contenente errori viene contrassegnata con un punto rosso. Passare alla scheda appropriata. I campi contenenti un errore vengono evidenziati in rosso. Dopo aver corretto tutti gli errori, selezionare Rivedi e crea di nuovo.

  2. Seleziona Crea.

    Viene visualizzata una pagina con il messaggio Distribuzione in corso . Al termine della distribuzione, viene visualizzato il messaggio: La distribuzione è stata completata.

Prerequisiti

  • Account Azure con una sottoscrizione attiva.
  • Installare l'interfaccia della riga di comando di Azure versione 2.28.0 o successiva.

Attrezzaggio

Per iniziare, accedere ad Azure. Eseguire il comando seguente e seguire le istruzioni per completare il processo di autenticazione.

az login

Installare quindi l'estensione App Azure Container per l'interfaccia della riga di comando.

az extension add --name containerapp --upgrade

Ora che l'estensione o il modulo corrente è installato, registrare lo Microsoft.App spazio dei nomi.

Nota

Le risorse di App Azure Container sono state migrate dallo Microsoft.Web spazio dei nomi allo Microsoft.App spazio dei nomi . Per altri dettagli, vedere Migrazione dello spazio dei nomi da Microsoft.Web a Microsoft.App nel mese di marzo 2022.

az provider register --namespace Microsoft.App

Registrare il Microsoft.OperationalInsights provider per l'area di lavoro Log Analytics di Monitoraggio di Azure, se non è stato usato in precedenza.

az provider register --namespace Microsoft.OperationalInsights

Impostare quindi le variabili di ambiente seguenti:

RESOURCE_GROUP="my-container-apps"
LOCATION="canadacentral"
CONTAINERAPPS_ENVIRONMENT="my-environment"

Con queste variabili definite, è possibile creare un gruppo di risorse per organizzare i servizi correlati alla nuova app contenitore.

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

Con l'interfaccia della riga di comando aggiornata e un nuovo gruppo di risorse disponibile, è possibile creare e distribuire un ambiente di App contenitore.

Crea un ambiente

Un ambiente di App contenitore di Azure crea un limite sicuro intorno a un gruppo di app contenitore. Le app contenitore nello stesso ambiente vengono distribuite nella stessa rete virtuale e scrivono log nella stessa area di lavoro Log Analytics.

Registrare il Microsoft.ContainerService provider.

az provider register --namespace Microsoft.ContainerService

Dichiarare una variabile per contenere il nome della rete virtuale.

VNET_NAME="my-custom-vnet"

Creare ora una rete virtuale di Azure da associare all'ambiente App contenitore. La rete virtuale deve avere una subnet disponibile per la distribuzione dell'ambiente.

Nota

Il prefisso dell'indirizzo della subnet di rete richiede un intervallo CIDR minimo per /23 l'uso con app contenitore quando si usa l'architettura solo a consumo. Quando si usa l'architettura dei profili di carico di lavoro, è necessario un /27 valore o superiore. Per altre informazioni sul dimensionamento delle subnet, vedere panoramica dell'architettura di rete.

az network vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --location $LOCATION \
  --address-prefix 10.0.0.0/16
az network vnet subnet create \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --address-prefixes 10.0.0.0/21

Dopo aver creato la rete virtuale, è possibile recuperare l'ID per la subnet dell'infrastruttura.

INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group ${RESOURCE_GROUP} --vnet-name $VNET_NAME --name infrastructure-subnet --query "id" -o tsv | tr -d '[:space:]'`

Creare infine l'ambiente app contenitore usando la rete virtuale personalizzata distribuita nei passaggi precedenti.

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION" \
  --infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET

Nella tabella seguente vengono descritti i parametri usati in containerapp env create.

Parametro Descrizione
name Nome dell'ambiente App contenitore.
resource-group Nome del gruppo di risorse.
location Posizione di Azure in cui deve essere distribuito l'ambiente.
infrastructure-subnet-resource-id ID risorsa di una subnet per i componenti dell'infrastruttura e i contenitori di applicazioni utente.

Dopo aver creato l'ambiente usando una rete virtuale personalizzata, è ora possibile distribuire le app contenitore nell'ambiente.

Configurazione facoltativa

È possibile distribuire un DNS privato e definire intervalli IP di rete personalizzati per l'ambiente app contenitore.

Eseguire la distribuzione con un DNS privato

Se si vuole distribuire l'app contenitore con un DNS privato, eseguire i comandi seguenti.

Prima di tutto, estrarre informazioni identificabili dall'ambiente.

ENVIRONMENT_DEFAULT_DOMAIN=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.defaultDomain --out json | tr -d '"'`
ENVIRONMENT_STATIC_IP=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.staticIp --out json | tr -d '"'`
VNET_ID=`az network vnet show --resource-group ${RESOURCE_GROUP} --name ${VNET_NAME} --query id --out json | tr -d '"'`

Configurare quindi il DNS privato.

az network private-dns zone create \
  --resource-group $RESOURCE_GROUP \
  --name $ENVIRONMENT_DEFAULT_DOMAIN
az network private-dns link vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --virtual-network $VNET_ID \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN -e true
az network private-dns record-set a add-record \
  --resource-group $RESOURCE_GROUP \
  --record-set-name "*" \
  --ipv4-address $ENVIRONMENT_STATIC_IP \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN

Parametri di rete

Esistono tre parametri di rete facoltativi che è possibile scegliere di definire quando si chiama containerapp env create. Usare queste opzioni quando si dispone di una rete virtuale con peering con intervalli di indirizzi separati. La configurazione esplicita di questi intervalli garantisce che gli indirizzi usati dall'ambiente App contenitore non siano in conflitto con altri intervalli nell'infrastruttura di rete.

È necessario specificare i valori per tutte e tre queste proprietà o nessuna di esse. Se non vengono forniti, i valori vengono generati automaticamente.

Parametro Descrizione
platform-reserved-cidr Intervallo di indirizzi usato internamente per i servizi dell'infrastruttura dell'ambiente. Deve avere una dimensione compresa tra /23 e /12 quando si usa l'architettura Solo consumo
platform-reserved-dns-ip Indirizzo IP dall'intervallo platform-reserved-cidr usato per il server DNS interno. L'indirizzo non può essere il primo indirizzo nell'intervallo o l'indirizzo di rete. Ad esempio, se platform-reserved-cidr è impostato su 10.2.0.0/16, platform-reserved-dns-ip non può essere 10.2.0.0 (l'indirizzo di rete) o 10.2.0.1 (l'infrastruttura riserva l'uso di questo IP). In questo caso, il primo indirizzo IP utilizzabile per il DNS sarebbe 10.2.0.2.
docker-bridge-cidr Intervallo di indirizzi assegnato alla rete bridge Docker. Questo intervallo deve avere una dimensione compresa tra /28 e /12.
  • Gli platform-reserved-cidr intervalli di indirizzi e docker-bridge-cidr non possono entrare in conflitto tra loro o con gli intervalli di una subnet specificata. Assicurarsi inoltre che questi intervalli non siano in conflitto con altri intervalli di indirizzi nella rete virtuale.

  • Se queste proprietà non vengono specificate, l'interfaccia della riga di comando genera automaticamente i valori di intervallo in base all'intervallo di indirizzi della rete virtuale per evitare conflitti di intervallo.

Pulire le risorse

Se non si intende continuare a usare questa applicazione, è possibile rimuovere il gruppo di risorse my-container-apps . In questo modo viene eliminata l'istanza di App Azure Container e tutti i servizi associati. Elimina anche il gruppo di risorse creato automaticamente dal servizio App contenitore che contiene i componenti di rete personalizzati.

Attenzione

Il comando seguente elimina il gruppo di risorse specificato e tutte le risorse contenute al suo interno. Se le risorse esterne all'ambito di questa guida esistono nel gruppo di risorse specificato, verranno eliminate anche.

az group delete --name $RESOURCE_GROUP

Passaggi successivi