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.
Iniziare accedendo al portale di Azure.
Creare un'app contenitore
Per creare l'app contenitore, iniziare dalla home page del portale di Azure.
- Cercare App contenitore nella barra di ricerca superiore.
- Selezionare App contenitore nei risultati della ricerca.
- Selezionare il pulsante Crea.
Scheda Informazioni di base
Nella scheda Dati principali eseguire le azioni seguenti.
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. Origine distribuzione Selezionare Immagine del contenitore.
Crea un ambiente
Creare quindi un ambiente per l'app contenitore.
Selezionare l'area appropriata.
Impostazione Valore Paese Selezionare Stati Uniti centrali. Nel campo Crea ambiente app contenitore selezionare il collegamento Crea nuovo.
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 Profili del carico di lavoro. Ridondanza della zona selezionare Disabilitato Selezionare la scheda Monitoraggio per creare un'area di lavoro Log Analytics.
Selezionare Azure Log Analytics come Destinazione log.
Selezionare il collegamento Crea nuovo nel campo Area di lavoro Log Analytics e immettere i valori seguenti.
Impostazione valore Nome Immettere my-container-app-logs. Il campo Località viene precompilato con Stati Uniti centrali.
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ù grande. Per altre informazioni sul dimensionamento delle subnet, vedere la panoramica dell'ambiente di networking.
Selezionare la scheda Networking per creare una networking virtuale.
Selezionare Sì accanto a Usa la propria rete virtuale.
Accanto alla casella Rete virtuale selezionare il link Crea nuovo e immettere il valore seguente.
Impostazione valore Nome Immettere my-custom-vnet. Selezionare il pulsante OK.
Accanto alla casella Subnet infrastruttura selezionare il link Crea nuovo e immettere i valori seguenti:
Impostazione Valore Nome della subnet Immettere infrastruttura-subnet. Blocco di indirizzi della rete virtuale Mantenere il valore predefinito. Blocco di indirizzi della subnet Mantenere il valore predefinito. Selezionare il pulsante OK.
In IP virtuale selezionare Interno.
Seleziona Crea.
Distribuire l'app contenitore
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. Andare alla scheda appropriata. I campi contenenti un errore vengono evidenziati in rosso. Dopo aver corretto tutti gli errori, selezionare nuovamente Rivedi e crea.
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.
- Se non hai un account, puoi crearlo gratuitamente.
- 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
Assicurarsi di eseguire l'ultima versione dell'interfaccia della riga di comando eseguire il comando di aggiornamento.
az upgrade
Installare o aggiornare quindi l'estensione App contenitore di Azure per l'interfaccia della riga di comando.
Se si ricevono errori relativi ai parametri mancanti quando si eseguono comandi az containerapp
nell'interfaccia della riga di comando di Azure o nei cmdlet del modulo Az.App
in Azure PowerShell, assicurarsi di avere installato la versione più recente dell'estensione App contenitore di Azure.
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 spazi dei nomi Microsoft.App
e Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Impostare le variabili di ambiente
Impostare le variabili di ambiente seguenti. Sostituire i <SEGNAPOSTO> 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.
Registrazione del provider Microsoft.ContainerService
.
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 /23
per 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ù grande. Per altre informazioni sul dimensionamento delle subnet, vedere la panoramica dell'ambiente di networking.
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
Quando si usa l'ambiente dei profili del carico di lavoro, è necessario aggiornare la rete virtuale per delegare la subnet a Microsoft.App/environments
. Questa delega non è applicabile all'ambiente solo a consumo.
az network vnet subnet update \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_NAME \
--name infrastructure-subnet \
--delegations Microsoft.App/environments
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 comando az containerapp create
.
Configurazione facoltativa
È possibile distribuire un DNS privato e definire intervalli IP di networking personalizzati per l'ambiente app contenitore.
Eseguire la distribuzione con un DNS privato
Se si desidera 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 networking
Esistono tre parametri di networking 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 intervalli di indirizzi
platform-reserved-cidr
edocker-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
Nell'esempio seguente, il gruppo di risorse specificato e tutte le risorse al suo interno vengono eliminati. Se nel gruppo di risorse specificato sono presenti anche risorse diverse da quelle usate in questa guida, verranno eliminate.
az group delete --name $RESOURCE_GROUP
Risorse aggiuntive
- Per usare l'ingresso nell'ambito della rete virtuale, è necessario configurare DNS.