Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo argomento di avvio rapido illustra come distribuire un'app Web Go in contenitori in App Azure Container.
Azure Container Apps consente di eseguire il codice dell'applicazione in un qualsiasi contenitore senza gestire complesse infrastrutture cloud o orchestratori complessi di contenitori. Elimina anche la necessità di preoccuparsi del runtime o del modello di programmazione. Gli usi comuni delle app contenitore di Azure includono: distribuzione di endpoint API, hosting di applicazioni di elaborazione in background, gestione dell'elaborazione guidata dagli eventi ed esecuzione di microservizi.
Seguire questa esercitazione per completare la creazione di un'immagine Docker, la distribuzione di tale immagine in Registro Azure Container e la distribuzione di un'app Web Go in App Contenitore di Azure.
Prerequisiti
- Sottoscrizione di Azure: se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
- Go installato: versione 1.18 o successiva
- Docker Desktop
Attrezzaggio
Per accedere ad Azure dall'interfaccia della riga di comando, eseguire il comando az login 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 az upgrade .
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 az containerapp comandi nell'interfaccia della riga di comando di Azure, 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, Microsoft.ContainerRegistry e Microsoft.OperationalInsights spazi dei nomi.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.ContainerRegistry
az provider register --namespace Microsoft.OperationalInsights
Nota
Risorse di App Azure Container migrate dallo spazio dei nomi Microsoft.Web allo spazio dei nomi Microsoft.App. Per altre informazioni, vedere Migrazione dello spazio dei nomi da Microsoft.Web a Microsoft.App nel mese di marzo 2022.
Scaricare l'app di esempio
Per seguire questa esercitazione, è necessaria un'applicazione di esempio per la containerizzazione. Il repository GitHub msdocs-go-webapp-quickstart fornisce un'app Web Go di esempio. Scaricare o clonare l'applicazione di esempio nella propria workstation locale.
git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git
cd msdocs-go-webapp-quickstart
Creare un Registro Azure Container
Registro Azure Container consente di compilare, archiviare e gestire immagini del contenitore. Usarlo per archiviare l'immagine Docker che contiene l'app Web Go di esempio fornita nel repository di esempio indicato in precedenza.
Eseguire i comandi seguenti per creare un Registro Azure Container:
Impostare le variabili di ambiente per le risorse che verranno create. Sostituire il testo segnaposto tra parentesi quadre con i valori appropriati. Il nome Registro Azure Container deve essere univoco a livello globale.
RESOURCE_GROUP_NAME="<resourceGroupName>" # Name of the Azure resource group to create LOCATION="<location>" # Azure region (For example, "eastus", "westus2") ACR_NAME="<azureContainerRegistryName>" # Globally unique name for Azure Container RegistryI comandi di esempio per l'impostazione delle variabili di ambiente sono relativi alla shell Bash. Se si usa una shell diversa, modificare i comandi di conseguenza.
Creare un gruppo di risorse di Azure con il comando az group create.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATIONCreare un Registro Azure Container con il comando az acr create.
az acr create \ --resource-group $RESOURCE_GROUP_NAME \ --name $ACR_NAME \ --sku basicAccedere all'istanza di Contenitore di Azure con il comando az acr login .
az acr login --name $ACR_NAMENota
Se viene visualizzato un errore simile all'errore seguente quando si esegue il
az acr logincomando, assicurarsi che il daemon Docker sia in esecuzione nel sistema:You may want to use 'az acr login -n $ACR_NAME --expose-token' to get an access token, which doesn't require Docker to be installed. An error occurred: DOCKER_COMMAND_ERROR
Compilare ed eseguire il push dell'immagine Docker
Dopo aver creato un Registro Azure Container, compilare ed eseguire il push dell'immagine Docker dell'app Web Go di esempio.
Eseguire i comandi seguenti per compilare ed eseguire il push dell'immagine nel Registro di sistema.
Impostare la variabile di ambiente per l'immagine Docker che verrà creata. Sostituire il testo segnaposto tra parentesi quadre con i valori appropriati.
IMAGE_NAME="go-webapp" # Name for the Docker imageI comandi di esempio per l'impostazione delle variabili di ambiente sono relativi alla shell Bash. Se si usa una shell diversa, modificare i comandi di conseguenza.
Ottenere le informazioni sul server di accesso con il comando az acr show e archiviarlo in una variabile di ambiente.
LOGIN_SERVER=$(az acr show \ --name $ACR_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query loginServer \ --output tsv) echo "Login server: $LOGIN_SERVER"Compilare l'immagine Docker in locale.
docker build -t $LOGIN_SERVER/$IMAGE_NAME:latest .Eseguire il push dell'immagine Docker nel Registro Azure Container.
docker push $LOGIN_SERVER/$IMAGE_NAME:latestVerificare che l'immagine sia stata inserita correttamente in Registro Azure Container con il comando az acr repository list.
az acr repository list \ --name $ACR_NAME \ --output table
Ora che è disponibile un'immagine in Registro Azure Container, è possibile distribuire l'app Azure Container e il relativo ambiente.
Creare un ambiente di App contenitore di Azure
App Azure Container non ha la complessità di un agente di orchestrazione dei contenitori, ma ha comunque bisogno di un modo per stabilire limiti sicuri. Gli ambienti di App Azure Container offrono questa funzionalità. App contenitore distribuite nello stesso ambiente condividono la stessa rete virtuale e scrivono i log nella stessa area di lavoro Log Analytics. Prima di poter distribuire un'app Contenitore di Azure, è necessario un ambiente in cui eseguire la distribuzione.
Impostare le variabili di ambiente per le risorse che verranno create. Sostituire il testo segnaposto tra parentesi quadre con i valori appropriati.
CONTAINER_APP_ENV="mygoappenv" # Name for the Container Apps environment CONTAINER_APP_NAME="mygoapp" # Name for your container appI comandi di esempio per l'impostazione delle variabili di ambiente sono relativi alla shell Bash. Se si usa una shell diversa, modificare i comandi di conseguenza.
Eseguire il comando az containerapp env create per creare un ambiente app contenitore di Azure.
az containerapp env create \ --name $CONTAINER_APP_ENV \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION
Eseguire la distribuzione in App contenitore di Azure
A questo punto, sono stati completati i passaggi seguenti:
- Creazione di un Registro Azure Container.
- Creare ed eseguire il push di un'immagine Docker nel Registro di sistema.
- Configurare un ambiente di App Azure Container.
L'ultimo passaggio consiste nel distribuire l'applicazione.
Eseguire il comando az containerapp create per distribuire l'app Web Go in App Contenitore di Azure.
az containerapp create \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--environment $CONTAINER_APP_ENV \
--image "$LOGIN_SERVER/$IMAGE_NAME:latest" \
--registry-server "$LOGIN_SERVER" \
--registry-identity system \
--target-port 8080 \
--ingress external
Il --registry-identity system parametro configura l'identità gestita assegnata dal sistema nell'app contenitore. L'app contenitore usa questa identità anziché nome utente e password, che sono meno sicuri, per eseguire l'autenticazione con il registro dei container. Il comando crea anche automaticamente un'assegnazione di ruolo AcrPull per l'identità, autorizzandola a scaricare le immagini dal registro. Per usare le identità gestite per l'autenticazione e l'autorizzazione, il Registro di sistema deve essere un Registro Azure Container.
Verificare l'URL dell'app Web
Eseguire il comando az containerapp show per ottenere il nome di dominio completo (nome di dominio completo) dell'ingresso dell'applicazione Web.
APP_FQDN=$(az containerapp show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query properties.configuration.ingress.fqdn \ --output tsv) echo "App URL: https://$APP_FQDN"Eseguire il comando curl sul nome di dominio completo e verificare che l'output rifletta il codice HTML del sito Web. È anche possibile aprire l'URL in un Web browser per interagire con l'app Web.
curl "https://$APP_FQDN"'Il comando restituisce il codice HTML per la home page dell'app Web simile al seguente:
<!DOCTYPE html> <html> <head> <title>Hello Azure - Go Quickstart</title> <link rel="stylesheet" href="/assets/main.css"> <link rel="icon" type="image/x-icon" href="/assets/favicon.ico"> </head> <header> <h1>Welcome to Azure</h1> </header> <section> <img src="/assets/images/azure-icon.svg"> <form method="post"> <label for="form-label">Could you please tell me your name?</label><br> <input type="text" id="name" name="name" style="max-width: 256px;"><br> <button type="submit">Say Hello</button> </form> </section> </html>
Pulire le risorse
Al termine dell'app di esempio, è possibile rimuovere da Azure tutte le risorse per l'app. In questo modo si evitano addebiti in corso e la sottoscrizione di Azure non è ordinata. La rimozione del gruppo di risorse rimuove anche tutte le risorse nel gruppo di risorse ed è il modo più rapido per rimuovere tutte le risorse di Azure per l'app.
Eseguire il comando az group delete per eliminare il gruppo di risorse e le relative risorse.
az group delete \
--name $RESOURCE_GROUP_NAME \
--no-wait