Avvio rapido: creare e distribuire app in Azure Spring Apps usando il piano Enterprise
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
Questo articolo si applica a: ❎ Basic/Standard ✅ Enterprise
Questa guida introduttiva illustra come compilare e distribuire applicazioni in Azure Spring Apps usando il piano Enterprise.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Comprendere e soddisfare la sezione Requisiti del piano Enterprise in Azure Marketplace.
- Interfaccia della riga di comando di Azure versione 2.45.0 o successiva.
- Git.
- Estensione del piano Enterprise di Azure Spring Apps. Usare il comando seguente per rimuovere le versioni precedenti e installare l'estensione del piano Enterprise più recente. Se l'estensione
spring-cloud
è stata installata in precedenza, disinstallarla per evitare la mancata corrispondenza della configurazione e della versione.az extension add --upgrade --name spring az extension remove --name spring-cloud
Scaricare l'app di esempio
Usare i comandi seguenti per scaricare l'esempio:
git clone https://github.com/Azure-Samples/acme-fitness-store
cd acme-fitness-store
Effettuare il provisioning di un'istanza del servizio
Usare la procedura seguente per effettuare il provisioning di un'istanza del servizio Azure Spring Apps.
Usare il comando seguente per accedere all'interfaccia della riga di comando di Azure e scegliere la sottoscrizione attiva:
az login az account list --output table az account set --subscription <subscription-ID>
Usare il comando seguente per accettare le condizioni legali e le informative sulla privacy per il piano Enterprise. Questo passaggio è necessario solo se la sottoscrizione non è mai stata usata per creare un'istanza del piano Enterprise di Azure Spring Apps.
az provider register --namespace Microsoft.SaaS az term accept \ --publisher vmware-inc \ --product azure-spring-cloud-vmware-tanzu-2 \ --plan asa-ent-hr-mtr
Selezionare una località. Questo percorso deve essere una località che supporta il piano Enterprise di Azure Spring Apps. Per altre informazioni, vedere Domande frequenti su Azure Spring Apps.
Creare variabili per contenere i nomi delle risorse usando i comandi seguenti. Assicurarsi di sostituire i segnaposto con i propri valori. Il nome dell'istanza del servizio Azure Spring Apps deve avere una lunghezza compresa tra 4 e 32 caratteri e può contenere solo lettere minuscole, numeri e trattini. Il primo carattere del nome del servizio deve essere una lettera e l'ultimo deve essere una lettera o un numero.
export LOCATION="<location>" export RESOURCE_GROUP="<resource-group-name>" export SERVICE_NAME="<Azure-Spring-Apps-service-instance-name>" export WORKSPACE_NAME="<workspace-name>"
Usare il comando seguente per creare un gruppo di risorse:
az group create \ --name ${RESOURCE_GROUP} \ --location ${LOCATION}
Per maggiori informazioni sui gruppi di risorse, vedere Che cos'è Azure Resource Manager?.
Usare il comando seguente per creare un'istanza del servizio Azure Spring Apps:
az spring create \ --resource-group ${RESOURCE_GROUP} \ --name ${SERVICE_NAME} \ --sku enterprise \ --enable-application-configuration-service \ --enable-service-registry \ --enable-gateway \ --enable-api-portal
Usare il comando seguente per creare un'area di lavoro Log Analytics da usare per il servizio Azure Spring Apps:
az monitor log-analytics workspace create \ --resource-group ${RESOURCE_GROUP} \ --workspace-name ${WORKSPACE_NAME} \ --location ${LOCATION}
Usare i comandi seguenti per recuperare l'ID risorsa per l'area di lavoro Log Analytics e l'istanza del servizio Azure Spring Apps:
export LOG_ANALYTICS_RESOURCE_ID=$(az monitor log-analytics workspace show \ --resource-group ${RESOURCE_GROUP} \ --workspace-name ${WORKSPACE_NAME} \ --query id \ --output tsv) export AZURE_SPRING_APPS_RESOURCE_ID=$(az spring show \ --resource-group ${RESOURCE_GROUP} \ --name ${SERVICE_NAME} \ --query id \ --output tsv)
Usare il comando seguente per configurare le impostazioni di diagnostica per il servizio Azure Spring Apps:
az monitor diagnostic-settings create \ --name "send-logs-and-metrics-to-log-analytics" \ --resource ${AZURE_SPRING_APPS_RESOURCE_ID} \ --workspace ${LOG_ANALYTICS_RESOURCE_ID} \ --logs '[ { "category": "ApplicationConsole", "enabled": true, "retentionPolicy": { "enabled": false, "days": 0 } }, { "category": "SystemLogs", "enabled": true, "retentionPolicy": { "enabled": false, "days": 0 } }, { "category": "IngressLogs", "enabled": true, "retentionPolicy": { "enabled": false, "days": 0 } } ]' \ --metrics '[ { "category": "AllMetrics", "enabled": true, "retentionPolicy": { "enabled": false, "days": 0 } } ]'
Usare i comandi seguenti per creare applicazioni per
cart-service
,order-service
,payment-service
catalog-service
, efrontend
:az spring app create \ --resource-group ${RESOURCE_GROUP} \ --name cart-service \ --service ${SERVICE_NAME} az spring app create \ --resource-group ${RESOURCE_GROUP} \ --name order-service \ --service ${SERVICE_NAME} az spring app create \ --resource-group ${RESOURCE_GROUP} \ --name payment-service \ --service ${SERVICE_NAME} az spring app create \ --resource-group ${RESOURCE_GROUP} \ --name catalog-service \ --service ${SERVICE_NAME} az spring app create \ --resource-group ${RESOURCE_GROUP} \ --name frontend \ --service ${SERVICE_NAME}
Esternalizzare la configurazione con il servizio di configurazione dell'applicazione
Usare la procedura seguente per configurare il servizio di configurazione dell'applicazione.
Usare il comando seguente per creare un repository di configurazione per il servizio di configurazione dell'applicazione:
az spring application-configuration-service git repo add \ --resource-group ${RESOURCE_GROUP} \ --name acme-fitness-store-config \ --service ${SERVICE_NAME} \ --label main \ --patterns "catalog/default,catalog/key-vault,identity/default,identity/key-vault,payment/default" \ --uri "https://github.com/Azure-Samples/acme-fitness-store-config"
Usare i comandi seguenti per associare applicazioni al servizio di configurazione dell'applicazione:
az spring application-configuration-service bind \ --resource-group ${RESOURCE_GROUP} \ --app payment-service \ --service ${SERVICE_NAME} az spring application-configuration-service bind \ --resource-group ${RESOURCE_GROUP} \ --app catalog-service \ --service ${SERVICE_NAME}
Attivare la registrazione e l'individuazione del servizio
Per la registrazione e l'individuazione dei servizi attivi, usare i comandi seguenti per associare le applicazioni al Registro di sistema del servizio:
az spring service-registry bind \
--resource-group ${RESOURCE_GROUP} \
--app payment-service \
--service ${SERVICE_NAME}
az spring service-registry bind \
--resource-group ${RESOURCE_GROUP} \
--app catalog-service \
--service ${SERVICE_NAME}
Distribuire applicazioni polyglot con il servizio di compilazione Tanzu
Usare la procedura seguente per distribuire e compilare applicazioni. Per questi passaggi, assicurarsi che il terminale si trova nella cartella del progetto prima di eseguire qualsiasi comando.
Usare il comando seguente per creare un generatore personalizzato nel servizio di compilazione Tanzu:
az spring build-service builder create \ --resource-group ${RESOURCE_GROUP} \ --name quickstart-builder \ --service ${SERVICE_NAME} \ --builder-file azure-spring-apps-enterprise/resources/json/tbs/builder.json
Usare il comando seguente per compilare e distribuire il servizio di pagamento:
az spring app deploy \ --resource-group ${RESOURCE_GROUP} \ --name payment-service \ --service ${SERVICE_NAME} \ --config-file-pattern payment/default \ --source-path apps/acme-payment \ --build-env BP_JVM_VERSION=17
Usare il comando seguente per compilare e distribuire il servizio catalogo:
az spring app deploy \ --resource-group ${RESOURCE_GROUP} \ --name catalog-service \ --service ${SERVICE_NAME} \ --config-file-pattern catalog/default \ --source-path apps/acme-catalog \ --build-env BP_JVM_VERSION=17
Usare il comando seguente per compilare e distribuire il servizio ordini:
az spring app deploy \ --resource-group ${RESOURCE_GROUP} \ --name order-service \ --service ${SERVICE_NAME} \ --builder quickstart-builder \ --source-path apps/acme-order
Usare il comando seguente per compilare e distribuire il servizio carrello:
az spring app deploy \ --resource-group ${RESOURCE_GROUP} \ --name cart-service \ --service ${SERVICE_NAME} \ --builder quickstart-builder \ --env "CART_PORT=8080" \ --source-path apps/acme-cart
Usare il comando seguente per compilare e distribuire l'applicazione front-end:
az spring app deploy \ --resource-group ${RESOURCE_GROUP} \ --name frontend \ --service ${SERVICE_NAME} \ --source-path apps/acme-shopping
Suggerimento
Per risolvere i problemi relativi alle distribuzioni, è possibile usare il comando seguente per ottenere lo streaming dei log in tempo reale ogni volta che l'app è in esecuzione: az spring app logs --name <app name> --follow
.
Instradare le richieste alle app con Spring Cloud Gateway
Usare la procedura seguente per configurare Spring Cloud Gateway e configurare le route alle applicazioni.
Usare il comando seguente per assegnare un endpoint a Spring Cloud Gateway:
az spring gateway update \ --resource-group ${RESOURCE_GROUP} \ --service ${SERVICE_NAME} \ --assign-endpoint true
Usare i comandi seguenti per configurare le informazioni sull'API Spring Cloud Gateway:
export GATEWAY_URL=$(az spring gateway show \ --resource-group ${RESOURCE_GROUP} \ --service ${SERVICE_NAME} \ --query properties.url \ --output tsv) az spring gateway update \ --resource-group ${RESOURCE_GROUP} \ --service ${SERVICE_NAME} \ --api-description "Fitness Store API" \ --api-title "Fitness Store" \ --api-version "v1.0" \ --server-url "https://${GATEWAY_URL}" \ --allowed-origins "*"
Usare il comando seguente per creare route per il servizio carrello:
az spring gateway route-config create \ --resource-group ${RESOURCE_GROUP} \ --name cart-routes \ --service ${SERVICE_NAME} \ --app-name cart-service \ --routes-file azure-spring-apps-enterprise/resources/json/routes/cart-service.json
Usare il comando seguente per creare route per il servizio ordini:
az spring gateway route-config create \ --resource-group ${RESOURCE_GROUP} \ --name order-routes \ --service ${SERVICE_NAME} \ --app-name order-service \ --routes-file azure-spring-apps-enterprise/resources/json/routes/order-service.json
Usare il comando seguente per creare route per il servizio catalogo:
az spring gateway route-config create \ --resource-group ${RESOURCE_GROUP} \ --name catalog-routes \ --service ${SERVICE_NAME} \ --app-name catalog-service \ --routes-file azure-spring-apps-enterprise/resources/json/routes/catalog-service.json
Usare il comando seguente per creare route per il front-end:
az spring gateway route-config create \ --resource-group ${RESOURCE_GROUP} \ --name frontend-routes \ --service ${SERVICE_NAME} \ --app-name frontend \ --routes-file azure-spring-apps-enterprise/resources/json/routes/frontend.json
Usare i comandi seguenti per recuperare l'URL per Spring Cloud Gateway:
export GATEWAY_URL=$(az spring gateway show \ --resource-group ${RESOURCE_GROUP} \ --service ${SERVICE_NAME} \ --query properties.url \ --output tsv) echo "https://${GATEWAY_URL}"
È possibile aprire l'URL di output in un browser per esplorare l'applicazione distribuita.
Esplorare e provare le API con il portale per le API
Usare la procedura seguente per configurare il portale API.
Usare il comando seguente per assegnare un endpoint al portale API:
az spring api-portal update \ --resource-group ${RESOURCE_GROUP} \ --service ${SERVICE_NAME} \ --assign-endpoint true
Usare i comandi seguenti per recuperare l'URL per il portale API:
export PORTAL_URL=$(az spring api-portal show \ --resource-group ${RESOURCE_GROUP} \ --service ${SERVICE_NAME} \ --query properties.url \ --output tsv) echo "https://${PORTAL_URL}"
È possibile aprire l'URL di output in un browser per esplorare le API dell'applicazione.
Pulire le risorse
Se si prevede di usare le guide di avvio rapido e le esercitazioni successive, è consigliabile non cancellare le risorse create. Quando non è più necessario, eliminare il gruppo di risorse per eliminare tutte le risorse contenute al suo interno. Per eliminare il gruppo di risorse usando l'interfaccia della riga di comando di Azure, usare i comandi seguenti:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Passaggi successivi
Dopo aver compilato e distribuito correttamente l'app, continuare con una delle guide introduttive facoltative seguenti: