Den här artikeln beskriver hur du distribuerar mikrotjänstprogram till Azure Spring Apps med hjälp av den välkända exempelappen PetClinic.
Exemplet på husdjurskliniken visar arkitekturmönstret för mikrotjänster. Följande diagram visar arkitekturen för PetClinic-programmet i Azure Spring Apps Enterprise-planen.
Diagrammet visar följande arkitektoniska flöden och relationer för petklinikexemplet:
- Använder Azure Spring Apps för att hantera klientdels- och serverdelsappar. Serverdelsapparna skapas med Spring Boot och varje app använder HSQLDB som beständig butik. Den omformade frontend-appen bygger på Pet Clinic API Gateway-appen med Node.js som fungerar som en fristående frontend-webbapp.
- Använder de hanterade komponenterna i Azure Spring Apps, inklusive Service Registry, Application Configuration Service, Spring Cloud Gateway och Application Live View. Programkonfigurationstjänsten läser konfigurationen av Git-lagringsplatsen.
- Exponerar URL:en för Spring Cloud Gateway för att dirigera begäran till serverdelstjänstappar och exponerar URL:en för programmets livevy för att övervaka serverdelsapparna.
- Analyserar loggar med Log Analytics-arbetsytan.
- Övervakar prestanda med Application Insights.
Kommentar
Den här artikeln använder en förenklad version av PetClinic med hjälp av en minnesintern databas som inte är produktionsklar för att snabbt distribuera till Azure Spring Apps.
Tanzu Developer Tools exponerar offentlig åtkomst för Application Live View, vilket är en riskpunkt. Produktionsmiljön måste skydda åtkomsten. Mer information finns i avsnittet Konfigurera Dev Tools-portalen i Konfigurera Tanzu Dev Tools i Azure Spring Apps Enterprise-planen.
Exemplet på husdjurskliniken visar arkitekturmönstret för mikrotjänster. Följande diagram visar arkitekturen för PetClinic-programmet i Azure Spring Apps Standard-planen.
Diagrammet visar följande arkitektoniska flöden och relationer för petklinikexemplet:
- Använder Azure Spring Apps för att hantera Spring Boot-appar. Varje app använder HSQLDB som persistent lagring.
- Använder de hanterade komponenterna Spring Cloud Config Server och Eureka Service Registry i Azure Spring Apps. Konfigurationsservern läser konfigurationen av Git-lagringsplatsen.
- Exponerar URL:en för API Gateway för belastningsutjämning av begäranden till tjänstappar och exponerar URL:en för administratörsservern för att hantera programmen.
- Analyserar loggar med Log Analytics-arbetsytan.
- Övervakar prestanda med Application Insights.
Kommentar
Den här artikeln använder en förenklad version av PetClinic med hjälp av en minnesintern databas som inte är produktionsklar för att snabbt distribuera till Azure Spring Apps.
Den distribuerade appen admin-server
exponerar offentlig åtkomst, vilket är en riskpunkt. Produktionsmiljön måste skydda Spring Boot Admin-programmet.
Den här artikeln innehåller följande alternativ för att distribuera till Azure Spring Apps:
- Alternativet Azure Portal är det enklaste och snabbaste sättet att skapa resurser och distribuera program med ett enda klick. Det här alternativet är lämpligt för Spring-utvecklare som snabbt vill distribuera program till Azure-molntjänster.
- Plugin-alternativet Azure Portal + Maven är ett mer konventionellt sätt att skapa resurser och distribuera program steg för steg. Det här alternativet är lämpligt för Spring-utvecklare som använder Azure-molntjänster för första gången.
- Azure CLI-alternativet använder ett kraftfullt kommandoradsverktyg för att hantera Azure-resurser. Det här alternativet är lämpligt för Spring-utvecklare som är bekanta med Azure-molntjänster.
- Plugin-alternativet Azure Portal + Maven är ett mer konventionellt sätt att skapa resurser och distribuera program steg för steg. Det här alternativet är lämpligt för Spring-utvecklare som använder Azure-molntjänster för första gången.
-
Cli-alternativet Azure Developer är ett effektivare sätt att automatiskt skapa resurser och distribuera program via enkla kommandon. Azure Developer CLI använder en mall för att etablera de Azure-resurser som behövs och för att distribuera programkoden. Det här alternativet är lämpligt för Spring-utvecklare som är bekanta med Azure-molntjänster.
1. Förutsättningar
2. Förbereda Spring-projektet
Använd följande steg för att förbereda exemplet lokalt:
Klona exempelprojektet med hjälp av följande kommando:
git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
Gå till projektrotkatalogen och använd sedan följande kommando för att köra exempelprojektet lokalt:
bash ./scripts/run_all_without_infra.sh
När skriptet har slutförts går du till http://localhost:8080
i webbläsaren för att få åtkomst till PetClinic-programmet.
Använd följande steg för att initiera Pet Clinic-programmet med hjälp av Azure Developer CLI-mallar:
I Bash-fönstret skapar du en ny, tom mapp och navigerar sedan till den.
Använd följande kommando för att initiera projektet:
azd init --template Azure-Samples/spring-petclinic-microservices
I följande lista beskrivs kommandointeraktionen:
-
Ange ett nytt miljönamn: Ange ett miljönamn som används som suffix för resursgruppen som skapas för att lagra alla Azure-resurser. Det här namnet ska vara unikt i din Azure-prenumeration.
Konsolen matar ut meddelanden som liknar följande exempel:
Initializing a new project (azd init)
Downloading template code to: <your-local-path>
(✓) Done: Initialized git repository
Enter a new environment name: <your-env-name>
SUCCESS: New project initialized!
You can view the template code in your directory: <your-local-path>
Learn more about running 3rd party code on our DevHub: https://aka.ms/azd-third-party-code-notice
3. Förbereda molnmiljön
I det här avsnittet beskrivs hur du skapar en Azure Spring Apps-tjänstinstans och förbereder Azure-molnmiljön.
3.1. Logga in på Azure-portalen
Gå till Azure Portal, ange dina autentiseringsuppgifter och logga in på portalen. Standardvyn är din tjänsteinstrumentpanel.
3.2. Skapa en Azure Spring Apps-instans
Använd följande steg för att skapa tjänstinstansen:
Välj Skapa en resurs i hörnet av Azure Portal.
På fliken Azure Services väljer du Beräkna>Azure Spring Apps.
På sidan Skapa Azure Spring Apps fyller du i formuläret på fliken Grundläggande .
Använd följande tabell som en guide för att fylla i formuläret. Den rekommenderade planen är Standard.
Inställning |
Föreslaget värde |
beskrivning |
Abonnemang |
Namnet på din prenumeration. |
Den Azure-prenumeration som ska användas för servern. Om du har flera prenumerationer väljer du den prenumeration som du vill debiteras för för resursen. |
Resursgrupp |
myresourcegroup |
Ett nytt resursgruppnamn eller ett befintligt namn i prenumerationen. |
Namn |
myasa |
Ett unikt namn som identifierar din Azure Spring Apps-instans. Namnet måste vara mellan 4 och 32 tecken långt och får endast innehålla gemener, siffror och bindestreck. Det första tecknet i tjänstnamnet måste vara en bokstav och det sista tecknet måste vara antingen en bokstav eller ett tal. |
Plan |
Standard |
Prisplanen avgör vilka resurser och kostnader som är kopplade till din instans. |
Region |
Den region som är närmast dina användare. |
Den plats som är närmast dina användare. |
Zon redundant |
Inte valt |
Skapar din Azure Spring Apps-tjänst i en Azure-tillgänglighetszon. Stöds inte för närvarande i alla regioner. |
Gå till fliken Diagnostikinställningar på sidan Skapa Azure Spring Apps och välj sedan Skapa ny för att skapa en ny Log Analytics-arbetsyteinstans. På sidan Skapa ny Log Analytics-arbetsyta uppdaterar du namnet på Log Analytics-arbetsytan efter behov och väljer sedan OK för att bekräfta skapandet.
Gå till fliken Application Insights på sidan Skapa Azure Spring Apps och välj sedan Skapa ny för att skapa en ny Application Insights-instans. På sidan Skapa ny Application Insights-resurs uppdaterar du application insights-namnet efter behov, väljer Arbetsyta-baserad för resursläge och väljer sedan OK för att bekräfta skapandet.
Välj Granska och skapa för att granska dina val. Välj sedan Skapa för att etablera Azure Spring Apps-instansen.
Välj ikonen Meddelanden (en klocka) för att övervaka distributionsprocessen. När distributionen är klar kan du välja Fäst på instrumentpanelen för att skapa en genväg på din Azure Portal instrumentpanel till tjänstens översiktssida.
Välj Gå till resurs för att gå till översiktssidan för Azure Spring Apps .
Välj Konfigurationsserver i navigeringsfönstret.
På sidan Konfigurationsserver anger du för https://github.com/Azure-Samples/spring-petclinic-microservices-config.git och väljer sedan Verifiera.
Efter valideringen väljer du Använd för att slutföra konfigurationen av Config Server.
Använd följande steg för att skapa de resurser som krävs:
Använd följande kommando för att logga in på Azure med OAuth2. Ignorera det här steget om du redan har loggat in.
azd auth login
Konsolen matar ut meddelanden som liknar följande exempel:
Logged in to Azure.
Använd följande kommando för att paketera en distribuerad kopia av ditt program, etablera mallens infrastruktur till Azure och distribuera sedan programkoden till de nyligen etablerade resurserna:
azd provision
I följande lista beskrivs kommandointeraktionerna:
-
Välj en Azure-prenumeration som ska användas: Använd pilar för att flytta, skriv för att filtrera och tryck sedan på Retur.
-
Välj en Azure-plats att använda: Använd pilar för att flytta, skriv för att filtrera och tryck sedan på Retur.
Konsolen matar ut meddelanden som liknar följande exempel:
SUCCESS: Your application was provisioned in Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
Anteckning
Det här kommandot kan ta en stund att slutföra. En förloppsindikator visas när den skapar Azure-resurser.
4. Distribuera apparna till Azure Spring Apps
Nu kan du distribuera appen till Azure Spring Apps.
Använd följande steg för att distribuera mikrotjänstprogrammen med hjälp av Maven-plugin-programmet för Azure Spring Apps:
Gå till exempelprojektkatalogen och använd sedan följande kommando för att konfigurera apparna för Azure Spring Apps:
./mvnw -P spring-apps com.microsoft.azure:azure-spring-apps-maven-plugin:1.17.0:config
I följande lista beskrivs kommandointeraktionerna:
-
Välj underordnade moduler som ska konfigureras(indatanummer avgränsade med kommatecken, t.ex. [1–2,4,6], RETUR för att välja ALLA): Tryck på Retur för att markera alla.
-
OAuth2-inloggning: Auktorisera inloggningen till Azure baserat på OAuth2-protokollet.
-
Välj prenumeration: Välj prenumerationslistans nummer för den Azure Spring Apps-instans som du skapade, som standard är den första prenumerationen i listan. Om du använder standardnumret trycker du på Retur direkt.
-
Välj Azure Spring Apps för distribution: Välj listnumret för den Azure Spring Apps-instans som du skapade. Om du använder standardnumret trycker du på Retur direkt.
-
Välj appar som ska exponera offentlig åtkomst:(indatanummer avgränsade med kommatecken, t.ex. [1–2,4,6], RETUR för att välja NONE): Ange 1,5 för
admin-server
och api-gateway
.
-
Bekräfta för att spara alla ovanstående konfigurationer (Y/n): Tryck på y. Om du trycker på n sparas inte konfigurationen i POM-filerna.
Använd följande kommando för att skapa och distribuera varje program:
./mvnw azure-spring-apps:deploy
För OAuth2-inloggningsprompten auktoriserar du inloggningen till Azure baserat på OAuth2-protokollet.
Kommentar
Distributionen till Azure Spring Apps kan ta upp till 25 minuter.
När kommandot har körts visar en logg utdata som liknar följande exempel, vilket indikerar att alla distributioner lyckas:
[INFO] Deployment(default) is successfully updated.
[INFO] Deployment Status: Running
[INFO] InstanceName:admin-server-default-xx-xx-xxx Status:Running Reason:null DiscoverStatus:UP
[INFO] Getting public url of app(admin-server)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-admin-server.azuremicroservices.io
...
[INFO] Getting public url of app(api-gateway)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io
Använd följande steg för att paketera appen, etablera de Azure-resurser som krävs av webbappen och distribuera sedan till Azure Spring Apps:
Använd följande kommando för att paketera en distribuerad kopia av ditt program:
azd package
Konsolen matar ut meddelanden som liknar följande exempel:
SUCCESS: Your application was packaged for Azure in xx minutes xx seconds.
Använd följande kommando för att distribuera programkoden till de nyligen etablerade resurserna:
azd deploy
Konsolen matar ut meddelanden som liknar följande exempel:
Deploying services (azd deploy)
(✓) Done: Deploying service admin-server
- Endpoint: https://<your-Azure-Spring-Apps-instance-name>-admin-server.azuremicroservices.io
(✓) Done: Deploying service api-gateway
- Endpoint: https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io
(✓) Done: Deploying service customers-service
- No endpoints were found
(✓) Done: Deploying service vets-service
- No endpoints were found
(✓) Done: Deploying service visits-service
- No endpoints were found
SUCCESS: Your application was deployed to Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
Kommentar
Du kan också använda azd up
för att kombinera de föregående tre kommandona: azd package
(paket en distribuerad kopia av ditt program), azd provision
(etablerar Azure-resurser) och azd deploy
(distribuerar programkod). Mer information finns i Azure-Samples/spring-petclinic-microservices.
2. Förbereda Spring-projektet
Knappen Distribuera till Azure i nästa avsnitt startar en Azure Portal upplevelse som distribuerar källkod från Spring PetClinic-lagringsplatsen. Inga lokala förberedelsesteg krävs.
Använd följande steg på den lokala datorn när du vill verifiera programmet innan du distribuerar det till molnet:
Använd följande kommando för att klona Pet Clinic-programmet från GitHub:
git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
Gå till projektrotkatalogen och använd sedan följande kommando för att skapa projektet:
./mvnw clean package -DskipTests
Använd följande steg om du vill köra programmet lokalt. Annars kan du hoppa över de här stegen.
Öppna ett nytt Bash-fönster och använd sedan följande kommando för att starta Config Server:
./mvnw spring-boot:run -pl spring-petclinic-config-server
Öppna ett nytt Bash-fönster och använd sedan följande kommando för att starta Identifieringsserver:
./mvnw spring-boot:run -pl spring-petclinic-discovery-server
För tjänsterna Kunder, Veterinärer, Besök och Spring Cloud Gateway öppnar du ett nytt Bash-fönster och använder följande kommandon för att starta tjänsterna:
./mvnw spring-boot:run -pl spring-petclinic-customers-service
./mvnw spring-boot:run -pl spring-petclinic-vets-service
./mvnw spring-boot:run -pl spring-petclinic-visits-service
./mvnw spring-boot:run -Dspring-boot.run.profiles=default,development \
-pl spring-petclinic-api-gateway
Öppna ett nytt Bash-fönster och gå till projektkatalogen spring-petclinic-frontend
. Använd följande kommandon för att installera beroenden och köra klientdelsprogrammet:
npm install
npm run start
När skriptet har slutförts går du till http://localhost:8080
i webbläsaren för att få åtkomst till PetClinic-programmet.
Använd följande steg på den lokala datorn när du vill verifiera programmet innan du distribuerar det till molnet:
Använd följande kommando för att klona Pet Clinic-programmet från GitHub:
git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
Gå till projektrotkatalogen och använd sedan följande kommando för att skapa projektet:
./mvnw clean package -DskipTests
Använd följande steg om du vill köra programmet lokalt. Annars kan du hoppa över de här stegen.
Öppna ett nytt Bash-fönster och använd sedan följande kommando för att starta Config Server:
./mvnw spring-boot:run -pl spring-petclinic-config-server
Öppna ett nytt Bash-fönster och använd sedan följande kommando för att starta Identifieringsserver:
./mvnw spring-boot:run -pl spring-petclinic-discovery-server
För tjänsterna Kunder, Veterinärer, Besök och Spring Cloud Gateway öppnar du ett nytt Bash-fönster och använder följande kommandon för att starta tjänsterna:
./mvnw spring-boot:run -pl spring-petclinic-customers-service
./mvnw spring-boot:run -pl spring-petclinic-vets-service
./mvnw spring-boot:run -pl spring-petclinic-visits-service
./mvnw spring-boot:run -Dspring-boot.run.profiles=default,development \
-pl spring-petclinic-api-gateway
Öppna ett nytt Bash-fönster och gå till projektkatalogen spring-petclinic-frontend
. Använd följande kommandon för att installera beroenden och köra klientdelsprogrammet:
npm install
npm run start
När skriptet har slutförts går du till http://localhost:8080
i webbläsaren för att få åtkomst till PetClinic-programmet.
3. Förbereda molnmiljön
Den viktigaste resursen som du behöver för att köra det här exemplet är en Azure Spring Apps-instans. I det här avsnittet beskrivs hur du skapar den här resursen.
I det här avsnittet används knappen Distribuera till Azure för att starta en distributionsupplevelse i Azure Portal. Den här upplevelsen använder en ARM-mall för att skapa Azure-resurser.
3.1. Logga in på Azure-portalen
Gå till Azure Portal, ange dina autentiseringsuppgifter och logga in på portalen. Standardvyn är instrumentpanelen.
3.2. Skapa Azure-resurser
Använd följande steg för att skapa alla Azure-resurser som appen är beroende av:
Välj följande knappen Distribuera till Azure för att starta distributionsupplevelsen i Azure Portal:
Fyll i formuläret på fliken Grundläggande . Använd följande tabell som guide för att fylla i formuläret:
Inställning |
Föreslaget värde |
beskrivning |
Abonnemang |
Namnet på din prenumeration. |
Den Azure-prenumeration som ska användas för servern. Om du har flera prenumerationer väljer du den prenumeration där du vill debiteras för resursen. |
Resursgrupp |
myresourcegroup |
Ett nytt resursgruppnamn eller ett befintligt namn i prenumerationen. |
Region |
Den region som är närmast dina användare. |
Regionen används för att skapa resursgruppen. |
Välj Granska och skapa för att granska dina val. Välj sedan Skapa för att distribuera appen till Azure Spring Apps.
Välj ikonen Aviseringar (en bjällra) i verktygsfältet för att övervaka distributionsprocessen. När distributionen är klar kan du välja Fäst på instrumentpanelen, vilket skapar en panel för den här tjänsten på din Azure Portal instrumentpanel som en genväg till tjänstens översiktssida. Välj Gå till resurs för att öppna tjänstens översiktssida.
3.1. Logga in på Azure-portalen
Gå till Azure Portal och ange dina autentiseringsuppgifter för att logga in på portalen. Standardvyn är din tjänsteinstrumentpanel.
3.2. Skapa en Azure Spring Apps-instans
Använd följande steg för att skapa tjänstinstansen:
Välj Skapa en resurs i hörnet av Azure Portal.
Välj Beräkna>Azure Spring Apps.
Fyll i formuläret på fliken Grundläggande . Använd följande tabell som guide för att fylla i formuläret:
Inställning |
Föreslaget värde |
beskrivning |
Abonnemang |
Namnet på din prenumeration. |
Den Azure-prenumeration som ska användas för servern. Om du har flera prenumerationer väljer du den prenumeration där du vill debiteras för resursen. |
Resursgrupp |
myresourcegroup |
Ett nytt resursgruppnamn eller ett befintligt namn i prenumerationen. |
Namn |
myasa |
Ett unikt namn som identifierar din Azure Spring Apps-tjänst. Namnet måste vara mellan 4 och 32 tecken långt och får endast innehålla gemener, siffror och bindestreck. Det första tecknet i tjänstnamnet måste vara en bokstav och det sista tecknet måste vara antingen en bokstav eller ett tal. |
Region |
Den region som är närmast dina användare. |
Den plats som är närmast dina användare. |
Hostingalternativ och abonnemang |
Enterprise |
Prisplanen som avgör vilken resurs och kostnad som är associerad med din instans. |
Zone redundant |
Omarkerad |
Alternativet att skapa din Azure Spring Apps-tjänst i en Azure-tillgänglighetszon. Den här funktionen stöds för närvarande inte i alla regioner. |
Ip-plan för programvara |
Betala per användning |
Prisplanen som låter dig betala per användning med Azure Spring Apps. |
Distribuera exempelprojekt |
Inte markerat |
Alternativet att använda det inbyggda exempelprogrammet. |
Gå till fliken Diagnostikinställningar på sidan Skapa Azure Spring Apps och välj sedan Skapa ny för att skapa en ny Log Analytics-arbetsyteinstans. På sidan Skapa ny Log Analytics-arbetsyta uppdaterar du namnet på Log Analytics-arbetsytan efter behov och väljer sedan OK för att bekräfta skapandet.
Gå till fliken Application Insights på sidan Skapa Azure Spring Apps och välj sedan Skapa ny för att skapa en ny Application Insights-instans. På sidan Skapa ny Application Insights-resurs uppdaterar du application insights-namnet efter behov, väljer Arbetsyta-baserad för resursläge och väljer sedan OK för att bekräfta skapandet.
Välj Granska och skapa för att granska dina val. Välj sedan Skapa för att etablera Azure Spring Apps-instansen.
Välj ikonen Meddelanden (en klocka) för att övervaka distributionsprocessen. När distributionen är klar kan du välja Fäst på instrumentpanelen för att skapa en genväg på din Azure Portal instrumentpanel till tjänstens översiktssida.
Välj Gå till resurs för att gå till översiktssidan för Azure Spring Apps .
I följande avsnitt visas hur du konfigurerar tjänstinstansen.
Skapa apparna
Använd följande steg för att skapa apparna:
I navigeringsfönstret väljer du Appar och sedan Skapa app.
På sidan Skapa app för appnamnet använder du klientdelen och lämnar alla andra fält med sina standardvärden.
Upprepa föregående steg med var och en av följande programnamn:
customers-service
vets-service
visits-service
Välj Skapa för att slutföra skapandet av appen.
Använd följande steg för att konfigurera Service Registry:
I navigeringsfönstret väljer du Tjänstregister.
Välj Appbindning, välj Bind app, välj customers-service
i listan och välj sedan Använd.
Upprepa föregående steg för att binda följande program:
vets-service
visits-service
Använd följande steg för att konfigurera programkonfigurationstjänsten:
I navigeringsfönstret väljer du Programkonfigurationstjänst och sedan Inställningar.
Fyll i lagringsplatsen med följande information och välj sedan Verifiera:
Efter valideringen väljer du Använd för att slutföra konfigurationen av programkonfigurationstjänsten.
Välj Appbindning, välj Bind app, välj customers-service
i listan och välj sedan Använd.
Upprepa föregående steg för att binda följande program:
vets-service
visits-service
Ange konfigurationsfilmönstren för appar
Använd följande steg för att ange konfigurationsfilmönstren:
I navigeringsfönstret väljer du Appar och sedan appen customers-service
.
På sidan Appöversikt väljer du Konfiguration, väljer Konfigurationsfilmönster på fliken Allmänna inställningar och väljer sedan program och customers-service
. Välj Spara för att ange konfigurationsfilmönstren.
Upprepa föregående steg för att spara konfigurationsfilmönstren för följande program:
-
vets-service
: Välj program och vets-service
.
-
visits-service
: Välj program och visits-service
.
Det här avsnittet visar hur du konfigurerar Spring Cloud Gateway.
Använd först följande steg för att tilldela en slutpunkt för gatewayåtkomsten:
I navigeringsfönstret väljer du Spring Cloud Gateway.
På fliken Översikt väljer du Ja för att tilldela en slutpunkt. Spara slutpunkts-URL:en för senare användning.
Konfigurera sedan routningen för Spring Cloud Gateway. Eftersom Azure Portal för närvarande inte stöder routningskonfiguration för Spring Cloud Gateway öppnar du ett Bash-fönster och använder följande Azure CLI-steg för att konfigurera routningen:
Använd följande kommando för att logga in på Azure CLI:
az login
Använd följande kommandon för att installera Azure Spring Apps-tillägget för Azure CLI och registrera namnområdet Microsoft.SaaS
:
az extension add --name spring --upgrade
az provider register --namespace Microsoft.SaaS
Använd följande kommando för att godkänna de juridiska villkoren och sekretesspolicyerna:
Kommentar
Det här steget är bara nödvändigt om din prenumeration aldrig har använts för att skapa en Enterprise-planinstans av Azure Spring Apps.
az term accept \
--publisher vmware-inc \
--product azure-spring-cloud-vmware-tanzu-2 \
--plan asa-ent-hr-mtr
Skapa variabler för att lagra resursnamnen med hjälp av följande kommandon. Se till att ersätta platshållarna med dina egna värden.
export SUBSCRIPTION_ID=<subscription-ID>
export RESOURCE_GROUP=<resource-group-name>
export SPRING_APPS_NAME=<Azure-Spring-Apps-instance-name>
export APP_CUSTOMERS_SERVICE=customers-service
export APP_VETS_SERVICE=vets-service
export APP_VISITS_SERVICE=visits-service
export APP_FRONTEND=frontend
Använd följande kommando för att ange standardprenumerationen:
az account set --subscription ${SUBSCRIPTION_ID}
Använd följande kommando för att ange routning för customers-service
appen:
az spring gateway route-config create \
--resource-group ${RESOURCE_GROUP} \
--service ${SPRING_APPS_NAME} \
--name ${APP_CUSTOMERS_SERVICE} \
--app-name ${APP_CUSTOMERS_SERVICE} \
--routes-json \
'[
{
"predicates": [
"Path=/api/customer/**"
],
"filters": [
"StripPrefix=2"
]
}
]'
Använd följande kommando för att ange routning för vets-service
appen:
az spring gateway route-config create \
--resource-group ${RESOURCE_GROUP} \
--service ${SPRING_APPS_NAME} \
--name ${APP_VETS_SERVICE} \
--app-name ${APP_VETS_SERVICE} \
--routes-json \
'[
{
"predicates": [
"Path=/api/vet/**"
],
"filters": [
"StripPrefix=2"
]
}
]'
Använd följande kommando för att ange routning för visits-service
appen:
az spring gateway route-config create \
--resource-group ${RESOURCE_GROUP} \
--service ${SPRING_APPS_NAME} \
--name ${APP_VISITS_SERVICE} \
--app-name ${APP_VISITS_SERVICE} \
--routes-json \
'[
{
"predicates": [
"Path=/api/visit/**"
],
"filters": [
"StripPrefix=2"
]
}
]'
Använd följande kommando för att ange routning för klientdelsappen:
az spring gateway route-config create \
--resource-group ${RESOURCE_GROUP} \
--service ${SPRING_APPS_NAME} \
--name ${APP_FRONTEND} \
--app-name ${APP_FRONTEND} \
--routes-json \
'[
{
"predicates": [
"Path=/**"
],
"filters": [
"StripPrefix=0"
],
"order": 1000
}
]'
Använd följande steg för att konfigurera utvecklarverktygen.
I navigeringsfönstret väljer du Utvecklarverktyg.
Välj Tilldela slutpunkt för att tilldela en slutpunkt för utvecklarverktyg.
Spara slutpunkten för App Live View för senare användning.
3.1. Ange namn för varje resurs
Skapa variabler för att lagra resursnamnen med hjälp av följande kommandon. Se till att ersätta platshållarna med dina egna värden.
export LOCATION=<location>
export RESOURCE_GROUP=myresourcegroup
export SPRING_APPS=myasa
export APP_FRONTEND=frontend
export APP_CUSTOMERS_SERVICE=customers-service
export APP_VETS_SERVICE=vets-service
export APP_VISITS_SERVICE=visits-service
export GIT_CONFIG_REPO=default
3.2. Logga in på Azure CLI
Använd följande steg för att logga in:
Använd följande kommando för att logga in på Azure CLI:
az login
Använd följande kommando för att lista alla tillgängliga prenumerationer för att fastställa vilket prenumerations-ID som ska användas:
az account list --output table
Använd följande kommando för att ange standardprenumerationen:
az account set --subscription <subscription-ID>
3.3. Skapa en ny resursgrupp
Använd följande steg för att skapa en ny resursgrupp:
Använd följande kommando för att ange standardplatsen:
az configure --defaults location=${LOCATION}
Använd följande kommando för att skapa en resursgrupp:
az group create --resource-group ${RESOURCE_GROUP}
Använd följande kommando för att ange den nyligen skapade resursgruppen som standardresursgrupp:
az configure --defaults group=${RESOURCE_GROUP}
3.4. Installera tillägget och registrera namnområdet
Använd följande kommandon för att installera Azure Spring Apps-tillägget för Azure CLI och registrera Microsoft.SaaS
namnområdet:
az extension add --name spring --upgrade
az provider register --namespace Microsoft.SaaS
3.5. Skapa en Azure Spring Apps-instans
Använd följande steg för att skapa tjänstinstansen:
Använd följande kommando för att godkänna de juridiska villkoren och sekretesspolicyerna för Enterprise-planen:
Kommentar
Det här steget är bara nödvändigt om din prenumeration aldrig har använts för att skapa en Enterprise-planinstans av Azure Spring Apps.
az term accept \
--publisher vmware-inc \
--product azure-spring-cloud-vmware-tanzu-2 \
--plan asa-ent-hr-mtr
Använd följande kommando för att skapa en Azure Spring Apps-tjänstinstans med nödvändiga Tanzu-komponenter:
az spring create \
--name ${SPRING_APPS} \
--sku Enterprise \
--enable-application-configuration-service \
--enable-service-registry \
--enable-gateway \
--enable-application-live-view
Använd följande steg för att konfigurera tjänstinstansen:
Använd följande kommando för att konfigurera diagnostikinställningar för Azure Spring Apps-instansen:
export SPRING_APPS_RESOURCE_ID=$(az spring show \
--name ${SPRING_APPS} \
--query id \
--output tsv)
az monitor diagnostic-settings create \
--resource ${SPRING_APPS_RESOURCE_ID} \
--name logs-and-metrics \
--workspace ${SPRING_APPS} \
--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
}
}
]'
Använd följande kommandon för att skapa program för Azure Spring Apps-instansen:
az spring app create --service ${SPRING_APPS} --name ${APP_FRONTEND}
az spring app create --service ${SPRING_APPS} --name ${APP_CUSTOMERS_SERVICE}
az spring app create --service ${SPRING_APPS} --name ${APP_VETS_SERVICE}
az spring app create --service ${SPRING_APPS} --name ${APP_VISITS_SERVICE}
Använd följande kommandon för att binda program för tjänstregistret:
az spring service-registry bind --service ${SPRING_APPS} --app ${APP_CUSTOMERS_SERVICE}
az spring service-registry bind --service ${SPRING_APPS} --app ${APP_VETS_SERVICE}
az spring service-registry bind --service ${SPRING_APPS} --app ${APP_VISITS_SERVICE}
Använd följande kommando för att skapa en konfigurationslagringsplats för programkonfigurationstjänsten:
az spring application-configuration-service git repo add \
--service ${SPRING_APPS} \
--name ${GIT_CONFIG_REPO} \
--patterns application,api-gateway,customers-service,vets-service,visits-service \
--uri https://github.com/Azure-Samples/spring-petclinic-microservices-config.git \
--label master
Använd följande kommandon för att binda program till programkonfigurationstjänsten:
az spring application-configuration-service bind \
--service ${SPRING_APPS} \
--app ${APP_CUSTOMERS_SERVICE}
az spring application-configuration-service bind \
--service ${SPRING_APPS} \
--app ${APP_VETS_SERVICE}
az spring application-configuration-service bind \
--service ${SPRING_APPS} \
--app ${APP_VISITS_SERVICE}
Använd följande kommando för att tilldela en slutpunkt till Spring Cloud Gateway:
az spring gateway update --service ${SPRING_APPS} --assign-endpoint
Använd följande kommando för att ange routning för customers-service
programmet:
az spring gateway route-config create \
--service ${SPRING_APPS} \
--name ${APP_CUSTOMERS_SERVICE} \
--app-name ${APP_CUSTOMERS_SERVICE} \
--routes-json '[
{
"predicates": [
"Path=/api/customer/**"
],
"filters": [
"StripPrefix=2"
]
}
]'
Använd följande kommando för att ange routning för vets-service
programmet:
az spring gateway route-config create \
--service ${SPRING_APPS} \
--name ${APP_VETS_SERVICE} \
--app-name ${APP_VETS_SERVICE} \
--routes-json '[
{
"predicates": [
"Path=/api/vet/**"
],
"filters": [
"StripPrefix=2"
]
}
]'
Använd följande kommando för att ange routning för visits-service
programmet:
az spring gateway route-config create \
--service ${SPRING_APPS} \
--name ${APP_VISITS_SERVICE} \
--app-name ${APP_VISITS_SERVICE} \
--routes-json '[
{
"predicates": [
"Path=/api/visit/**"
],
"filters": [
"StripPrefix=2"
]
}
]'
Använd följande kommando för att ange routning för frontend
programmet:
az spring gateway route-config create \
--service ${SPRING_APPS} \
--name ${APP_FRONTEND} \
--app-name ${APP_FRONTEND} \
--routes-json '[
{
"predicates": [
"Path=/**"
],
"filters": [
"StripPrefix=0"
],
"order": 1000
}
]'
Använd följande kommando för att tilldela en slutpunkt till programmets livevy:
az spring dev-tool update --service ${SPRING_APPS} --assign-endpoint
4. Distribuera apparna till Azure Spring Apps
Knappen Distribuera till Azure i föregående avsnitt startar en Azure Portal upplevelse som innehåller programdistribution, så inget annat behövs.
Använd följande steg för att distribuera med Maven-plugin-programmet för Azure Spring Apps:
Gå till projektrotkatalogen och kör sedan följande kommando för att konfigurera apparna i Azure Spring Apps:
./mvnw -P spring-apps-enterprise com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
I följande lista beskrivs kommandointeraktionerna:
-
Välj underordnade moduler som ska konfigureras: Tryck på Retur för att markera alla.
-
Välj prenumeration: Välj prenumerationslistans nummer för den Azure Spring Apps-instans som du skapade, som standard är den första prenumerationen i listan. Om du använder standardnumret trycker du på Retur direkt.
-
Använd befintliga Azure Spring Apps i Azure: Tryck på y för att använda den befintliga Azure Spring Apps-instansen.
-
Välj appar för att exponera offentlig åtkomst: Tryck på Retur för att välja ingen.
-
Bekräfta för att spara alla ovanstående konfigurationer: Tryck på y. Om du trycker på n sparas inte konfigurationen i POM-filerna.
Använd följande kommando för att driftsätta backend-applikationer:
./mvnw azure-spring-apps:deploy
När kommandot har körts kan du se från följande loggmeddelanden att distributionen lyckades:
[INFO] Start deploying artifact(customers-service-3.0.1.jar) to deployment(default) of app(customers-service)...
[INFO] Artifact(customers-service-3.0.1.jar) is successfully deployed to deployment(default) of app(customers-service).
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
...
[INFO] Start deploying artifact(vets-service-3.0.1.jar) to deployment(default) of app(vets-service)...
[INFO] Artifact(vets-service-3.0.1.jar) is successfully deployed to deployment(default) of app(vets-service).
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
...
[INFO] Start deploying artifact(visits-service-3.0.1.jar) to deployment(default) of app(visits-service)...
[INFO] Artifact(visits-service-3.0.1.jar) is successfully deployed to deployment(default) of app(visits-service).
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
Azure Portal stöder inte distribution av klientdelsprogram, så använd följande Azure CLI-kommando för att distribuera klientdelsprogrammet:
az spring app deploy \
--resource-group ${RESOURCE_GROUP} \
--service ${SPRING_APPS_NAME} \
--name ${APP_FRONTEND} \
--source-path spring-petclinic-frontend \
--build-env BP_WEB_SERVER=nginx
När kommandot har körts kan du se från följande loggmeddelanden att distributionen lyckades:
[5/5] Updating deployment in app "frontend" (this operation can take a while to complete)
Azure Spring Apps will use rolling upgrade to update your deployment, you have 1 instance, Azure Spring Apps will update the deployment in 1 round.
The deployment is in round 1, 1 old instance is deleted/deleting and 1 new instance is started/starting
Your application is successfully deployed.
Använd följande steg för att distribuera apparna:
Ange projektrotkatalogen och använd följande kommando för att skapa och distribuera klientdelsprogrammet:
az spring app deploy \
--service ${SPRING_APPS} \
--name ${APP_FRONTEND} \
--build-env BP_WEB_SERVER=nginx \
--source-path ./spring-petclinic-frontend
Använd följande kommando för att skapa och distribuera customers-service
programmet:
az spring app deploy \
--service ${SPRING_APPS} \
--name ${APP_CUSTOMERS_SERVICE} \
--source-path \
--config-file-pattern application,customers-service \
--build-env \
BP_MAVEN_BUILT_MODULE=spring-petclinic-customers-service \
BP_JVM_VERSION=17
Använd följande kommando för att skapa och distribuera vets-service
programmet:
az spring app deploy \
--service ${SPRING_APPS} \
--name ${APP_VETS_SERVICE} \
--source-path \
--config-file-pattern application,vets-service \
--build-env \
BP_MAVEN_BUILT_MODULE=spring-petclinic-vets-service \
BP_JVM_VERSION=17
Använd följande kommando för att skapa och distribuera visits-service
programmet:
az spring app deploy \
--service ${SPRING_APPS} \
--name ${APP_VISITS_SERVICE} \
--source-path \
--config-file-pattern application,visits-service \
--build-env \
BP_MAVEN_BUILT_MODULE=spring-petclinic-visits-service \
BP_JVM_VERSION=17
5. Verifiera apparna
I följande avsnitt beskrivs hur du verifierar distributionen.
5.1. Få åtkomst till programmen
När distributionen är klar kan du hitta Spring Cloud Gateway-URL:en från distributionsutdata, som du ser i följande skärmbild:
Öppna gateway-URL:en. Programmet bör se ut ungefär så här:
5.2. Sök i applikationsloggarna
När du har bläddrat i varje funktion i husdjurskliniken samlar Log Analytics-arbetsytan in loggar för varje program. Du kan kontrollera loggarna med hjälp av anpassade frågor, enligt följande skärmbild:
5.3. Övervaka programmen
Application Insights övervakar programberoendena enligt följande programspårningskarta:
Du hittar URL:en för programmets livevy från distributionsutdata. Öppna url:en för programmets livevy för att övervaka programkörningar, enligt följande skärmbild:
5.1. Få åtkomst till programmen
Använd slutpunkten som tilldelats från Spring Cloud Gateway – till exempel https://<your-Azure-Spring-Apps-instance-name>-gateway-xxxxx.svc.azuremicroservices.io
. Programmet bör se ut ungefär så här:
5.2. Kontrollera applikationsloggarna
När du har bläddrat i varje funktion i husdjurskliniken samlar Log Analytics-arbetsytan in loggar för varje program. Du kan kontrollera loggarna med hjälp av anpassade frågor, enligt följande skärmbild:
5.3. Övervaka programmen
Application Insights övervakar programberoendena enligt följande programspårningskarta:
Öppna url:en för programmets livevy som exponeras av utvecklarverktygen för att övervaka programkörningar, enligt följande skärmbild:
5.1. Få åtkomst till programmen
Använd följande kommandon för att hämta URL:en för Spring Cloud Gateway:
export GATEWAY_URL=$(az spring gateway show \
--service ${SPRING_APPS} \
--query properties.url \
--output tsv)
echo "https://${GATEWAY_URL}"
Programmet bör se ut ungefär så här:
5.2. Sök i applikationsloggarna
När du har bläddrat i varje funktion i husdjurskliniken samlar Log Analytics-arbetsytan in loggar för varje program. Du kan kontrollera loggarna med hjälp av anpassade frågor, enligt följande skärmbild:
5.3. Övervaka programmen
Application Insights övervakar programberoendena enligt följande programspårningskarta:
Använd följande kommandon för att hämta URL:en för programmets livevy:
export DEV_TOOL_URL=$(az spring dev-tool show \
--service ${SPRING_APPS} \
--query properties.url \
--output tsv)
echo "https://${DEV_TOOL_URL}/app-live-view"
Öppna url:en för programmets livevy för att övervaka programkörningar, enligt följande skärmbild:
5.1. Få åtkomst till programmen
Med hjälp av URL-informationen i distributionsloggens utdata öppnar du url:en som exponeras av appen med namnet api-gateway
, till exempel https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io
. Programmet bör se ut ungefär så här:
5.2. Sök i programloggarna
När du har bläddrat i varje funktion i husdjurskliniken samlar Log Analytics-arbetsytan in loggar för varje program. Du kan kontrollera loggarna med hjälp av anpassade frågor, enligt följande skärmbild:
5.3. Övervaka programmen
Application Insights övervakar programberoendena enligt följande programspårningskarta:
Öppna url:en som exponeras av appen admin-server
för att hantera programmen via Spring Boot Admin Server, enligt följande skärmbild:
6. Rensa resurser
Om du planerar att fortsätta arbeta med efterföljande snabbstarter och självstudier kanske du vill lämna dessa resurser på plats. När du inte längre behöver resurserna kan du rensa onödiga resurser för att undvika Azure-avgifter.
Använd följande steg för att ta bort hela resursgruppen, inklusive den nyligen skapade tjänstinstansen:
Leta reda på resursgruppen på Azure Portal. På navigeringsmenyn väljer du Resursgrupper och sedan namnet på resursgruppen.
På sidan Resursgrupp väljer du Ta bort. Ange namnet på resursgruppen i textrutan för att bekräfta borttagningen och välj sedan Ta bort.
Använd följande kommando för att ta bort alla Azure-resurser som används i det här exempelprogrammet:
azd down
I följande lista beskrivs kommandointeraktionen:
-
Totalt antal resurser att ta bort: <resurssumma>, är du säker på att du vill fortsätta?: Tryck på y.
Konsolen matar ut meddelanden som liknar följande exempel:
SUCCESS: Your application was removed from Azure in xx minutes xx seconds.
Se till att ta bort de resurser som du skapade i den här artikeln när du inte längre behöver dem. Du kan ta bort den Azure-resursgrupp som innehåller alla resurser i resursgruppen.
Använd följande steg för att ta bort hela resursgruppen:
Leta reda på resursgruppen på Azure Portal. På navigeringsmenyn väljer du Resursgrupper och sedan namnet på resursgruppen.
På sidan Resursgrupp väljer du Ta bort. Ange namnet på resursgruppen i textrutan för att bekräfta borttagningen och välj sedan Ta bort.
Använd följande steg för att ta bort hela resursgruppen:
Leta reda på resursgruppen på Azure Portal. På navigeringsmenyn väljer du Resursgrupper och sedan namnet på resursgruppen.
På sidan Resursgrupp väljer du Ta bort. Ange namnet på resursgruppen i textrutan för att bekräfta borttagningen och välj sedan Ta bort.
Använd följande kommando för att ta bort resursgruppen:
az group delete --name ${RESOURCE_GROUP}
7. Nästa steg
Mer information finns i följande artiklar: