Condividi tramite


Fornire una rete virtuale a un ambiente interno 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 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 di /23 o superiore per l'uso con App contenitore quando si usa l'ambiente solo a consumo. Quando si usa l'ambiente dei profili di carico di lavoro, è necessario un /27 o più grandi. Per altre informazioni sul dimensionamento delle subnet, vedere la panoramica dell'ambiente 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 Interno.

  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 accedere ad Azure dall'interfaccia della riga di comando, eseguire il comando seguente e seguire le istruzioni per completare il processo di autenticazione.

az login

Per assicurarsi di eseguire la versione più recente dell'interfaccia della riga di comando, eseguire il comando di aggiornamento.

az upgrade

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

Se si ricevono errori relativi ai parametri mancanti quando si eseguono az containerapp comandi nell'interfaccia della riga di comando di Azure o nei cmdlet del Az.App modulo in Azure PowerShell, assicurarsi di avere installato la versione più recente dell'estensione App Azure Container.

az extension add --name containerapp --upgrade

Nota

A partire da maggio 2024, le estensioni dell'interfaccia della riga di comando di Azure non abilitano più le funzionalità di anteprima per impostazione predefinita. Per accedere alle funzionalità di anteprima di App contenitore, installare l'estensione App contenitore con --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

Ora che l'estensione o il modulo corrente è installato, registrare gli Microsoft.App spazi dei nomi e Microsoft.OperationalInsights .

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
az provider register --namespace Microsoft.OperationalInsights

Impostare le variabili di ambiente

Impostare le variabili di ambiente seguenti. Sostituire <PLACEHOLDERS> con i valori:

RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"

Creare un gruppo di risorse di Azure

Creare un gruppo di risorse per organizzare i servizi correlati alla distribuzione dell'app contenitore.

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

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 un'istanza della rete virtuale da associare all'ambiente App contenitore. La rete virtuale deve avere due subnet disponibili per l'istanza dell'app contenitore.

Nota

Il prefisso dell'indirizzo della subnet di rete richiede un intervallo CIDR minimo per /23 l'uso con le app contenitore quando si usa l'ambiente solo a consumo. Quando si usa l'ambiente Profili di carico di lavoro, è necessario un /27 o più grandi. Per altre informazioni sul dimensionamento delle subnet, vedere la panoramica dell'ambiente 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/23

Dopo aver stabilito la rete virtuale, è ora possibile eseguire una query per l'ID 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 con la rete virtuale e la subnet.

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

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

Parametro Descrizione
name Nome dell'ambiente App contenitore.
resource-group Nome del gruppo di risorse.
logs-workspace-id (Facoltativo) ID di un'area di lavoro Log Analytics esistente. Se omesso, viene creata automaticamente un'area di lavoro.
logs-workspace-key Segreto client di Log Analytics. Obbligatorio se si usa un'area di lavoro esistente.
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.
internal-only (Facoltativo) L'ambiente non usa un indirizzo IP statico pubblico, ma solo gli indirizzi IP interni disponibili nella rete virtuale personalizzata. Richiede un ID risorsa subnet dell'infrastruttura.

Con l'ambiente creato usando la rete virtuale personalizzata, è possibile distribuire le app contenitore nell'ambiente usando il az containerapp create comando .

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'ambiente 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 eliminare l'istanza di App Contenitore di Azure e tutti i servizi associati rimuovendo il gruppo di risorse my-container-apps . L'eliminazione di questo gruppo di risorse rimuove automaticamente il gruppo di risorse creato dal servizio App contenitore contenente 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

Risorse aggiuntive

  • Per usare l'ingresso nell'ambito della rete virtuale, è necessario configurare DNS.

Passaggi successivi