Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten får du lära dig hur du distribuerar ett program i Azure Container Apps som använder Java-komponenter för att hantera konfigurationshantering, tjänstidentifiering och hälsa och mått. Exempelprogrammet som används i det här exemplet är Java PetClinic, som använder arkitekturmönstret för mikrotjänster. Följande diagram visar arkitekturen för PetClinic-programmet i Azure Container Apps:
PetClinic-programmet innehåller följande funktioner:
- Klientdelen är en fristående Node.js webbapp som finns i API Gateway-appen.
- API-gatewayen dirigerar begäranden till serverdelstjänstappar.
- Back-end-appar byggs med Spring Boot.
- Varje serverdelsapp använder en HyperSQL-databas som beständig lagringsplats.
- Apparna använder hanterade Java-komponenter i Azure Container Apps, inklusive ett tjänstregister, en konfigurationsserver och en administratörsserver.
- Konfigurationsservern läser data från en Git-lagringsplats.
- En Log Analytics-arbetsyta loggar serverdata.
I den här kursen får du:
- Skapa en konfigurationsserver, Eureka-server, administratörsserver och administratörskomponenter
- Skapa en serie mikrotjänstappar
- Binda serverkomponenterna till dina mikrotjänstappar
- Distribuera samlingen med appar
- Granska de distribuerade apparna
I slutet av den här artikeln distribuerar du ett webbprogram och tre serverdelsprogram som är konfigurerade för att fungera med tre olika Java-komponenter. Du kan sedan hantera varje komponent via Azure Portal.
Förutsättningar
- Azure-konto: Om du inte har något Azure-konto skapar du ett kostnadsfritt. Du behöver behörigheten Deltagare eller Ägare för Azure-prenumerationen för att kunna använda den här snabbstarten. Mer information finns i Tilldela Azure-roller med Azure-portalen.
- Azure CLI: Installera Azure CLI.
- Azure Container Apps CLI-tillägg. Använd version 0.3.47 eller senare.
az extension add --name containerapp --upgrade --allow-previewAnvänd kommandot för att installera den senaste versionen.
Inställningar
Använd följande steg för att skapa miljövariabler, en resursgrupp och en Azure Container Apps-miljö:
Miljövariablerna innehåller dina anpassade värden, så ersätt platshållarvärdena som omges av
<>med dina egna värden innan du kör följande kommandon:export RESOURCE_GROUP=<RESOURCE_GROUP> export LOCATION=<LOCATION> export CONTAINER_APP_ENVIRONMENT=<CONTAINER_APPS_ENVIRONMENT>Nu skapar du fler miljövariabler som innehåller inställningarna för din mikrotjänstapp. Dessa värden används för att definiera namn och konfigurationer för Java-komponenterna och De Azure Container Apps som du använder för att distribuera mikrotjänsterna. Skapa dessa miljövariabler med hjälp av följande kommandon:
export CONFIG_SERVER_COMPONENT=configserver export ADMIN_SERVER_COMPONENT=admin export EUREKA_SERVER_COMPONENT=eureka export CONFIG_SERVER_URI=https://github.com/spring-petclinic/spring-petclinic-microservices-config.git export CUSTOMERS_SERVICE=customers-service export VETS_SERVICE=vets-service export VISITS_SERVICE=visits-service export API_GATEWAY=api-gateway export CUSTOMERS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-customers-service export VETS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-vets-service export VISITS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-visits-service export API_GATEWAY_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-api-gatewayLogga in på Azure CLI och välj din aktiva prenumeration med hjälp av följande kommando:
az loginSkapa en resursgrupp för att organisera dina Azure-tjänster med hjälp av följande kommando:
az group create \ --name $RESOURCE_GROUP \ --location $LOCATIONSkapa din Azure Container Apps-miljö som är värd för både Java-komponenterna och dina containerappar med hjälp av följande kommando:
az containerapp env create \ --resource-group $RESOURCE_GROUP \ --name $CONTAINER_APP_ENVIRONMENT \ --location $LOCATION
Skapa Java-komponenter
Nu skapar du följande Java-komponenter som stöder din app:
- Konfigurationsserver. Används för att hantera konfigurationsinställningar för dina mikrotjänstappar.
- Eureka-server. Används för att hantera tjänsteregister och upptäckt.
- Administratörsserver. Används för att övervaka och hantera hälsotillståndet och måtten för dina mikrotjänstappar.
Använd följande steg för att skapa dessa serverkomponenter:
Skapa konfigurationsservern för dina Java-komponenter med hjälp av följande kommando:
az containerapp env java-component config-server-for-spring create \ --resource-group $RESOURCE_GROUP \ --name $CONFIG_SERVER_COMPONENT \ --environment $CONTAINER_APP_ENVIRONMENT \ --configuration spring.cloud.config.server.git.uri=$CONFIG_SERVER_URISkapa Eureka-servern för dina Java-komponenter med hjälp av följande kommando:
az containerapp env java-component eureka-server-for-spring create \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_SERVER_COMPONENT --environment $CONTAINER_APP_ENVIRONMENT \Skapa administratörsservern för dina Java-komponenter med hjälp av följande kommando:
az containerapp env java-component admin-for-spring create \ --resource-group $RESOURCE_GROUP \ --name $ADMIN_SERVER_COMPONENT --environment $CONTAINER_APP_ENVIRONMENT \
Distribuera mikrotjänstapparna
Använd följande steg för att distribuera Java-mikrotjänstappar till Azure Container Apps med hjälp av de fördefinierade containeravbildningarna:
Kommentar
I den här artikeln använder du en serie byggda bilder för Spring Petclinic-mikrotjänstappar. Du har också möjlighet att anpassa exempelkoden och använda dina egna bilder. Mer information finns i GitHub-lagringsplatsen azure-container-apps-java-samples.
Skapa kunddataappen med hjälp av följande kommando:
az containerapp create \ --resource-group $RESOURCE_GROUP \ --name $CUSTOMERS_SERVICE \ --environment $CONTAINER_APP_ENVIRONMENT \ --image $CUSTOMERS_SERVICE_IMAGESkapa veterinärappen med hjälp av följande kommando:
az containerapp create \ --resource-group $RESOURCE_GROUP \ --name $VETS_SERVICE \ --environment $CONTAINER_APP_ENVIRONMENT \ --image $VETS_SERVICE_IMAGESkapa besöksappen med hjälp av följande kommando:
az containerapp create \ --resource-group $RESOURCE_GROUP \ --name $VISITS_SERVICE \ --environment $CONTAINER_APP_ENVIRONMENT \ --image $VISITS_SERVICE_IMAGESkapa API Gateway-appen med hjälp av följande kommando:
az containerapp create \ --resource-group $RESOURCE_GROUP \ --name $API_GATEWAY \ --environment $CONTAINER_APP_ENVIRONMENT \ --image $API_GATEWAY_IMAGE \ --ingress external \ --target-port 8080 \ --query properties.configuration.ingress.fqdn
Binda containerappar till Java-komponenter
Sedan binder du Java-komponenterna till dina containerappar. Bindningarna som du skapar i det här avsnittet innehåller följande funktioner:
- Mata in konfigurationsdata i varje app från den hanterade konfigurationsservern vid start.
- Registrera appen med den hanterade Eureka-servern för tjänstidentifiering.
- Aktivera administratörsservern för att övervaka appen.
containerapp update Använd kommandot för att skapa bindningar för varje app med hjälp av följande steg:
Lägg till bindningar i kunddataappen med hjälp av följande kommando:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $CUSTOMERS_SERVICE \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENTLägg till nätverksbindningar till veterinärtjänsten med hjälp av följande kommando:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $VETS_SERVICE \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENTLägg till bindningar till besökstjänsten med hjälp av följande kommando:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $VISITS_SERVICE \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENTLägg till bindningar till API-gatewayen. Använd följande kommando för att returnera URL:en för klientdelsprogrammet och öppna sedan den här platsen i webbläsaren:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $API_GATEWAY \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT \ --query properties.configuration.ingress.fqdn
Verifiera appens status
Använd följande steg för att verifiera appens status:
Visa frontend-applikationen i webbläsaren med hjälp av URL:en som returneras från API-gatewayens
az containerapp updatekommando. Programmet bör likna följande skärmbild:Visa Instrumentpanelen för Eureka-servern med hjälp av följande steg:
Viktigt!
Om du vill visa instrumentpanelen för Eureka Server och administratörspanelen för Spring måste du ha minst rollen
Microsoft.App/managedEnvironments/writetilldelad till ditt konto till resursen för den hanterade miljön. Du kan uttryckligen tilldela resursenOwnerellerContributorrollen. Du kan också följa stegen för att skapa en anpassad rolldefinition och tilldela den till ditt konto.Kör följande kommando för att returnera instrumentpanelens URL:
az containerapp env java-component eureka-server-for-spring show \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_SERVER_COMPONENT \ --environment $CONTAINER_APP_ENVIRONMENT \ --query properties.ingress.fqdnÖppna URL:en i webbläsaren. Du bör se ett program som liknar följande skärmbild:
Visa instrumentpanelen Admin för Spring med hjälp av följande steg:
Använd följande kommando för att returnera instrumentpanelens URL:
az containerapp env java-component admin-for-spring show \ --resource-group $RESOURCE_GROUP \ --name $ADMIN_SERVER_COMPONENT \ --environment $CONTAINER_APP_ENVIRONMENT \ --query properties.ingress.fqdnÖppna URL:en i webbläsaren. Du bör se ett program som liknar följande skärmbild:
Valfritt: Konfigurera Java-komponenter
Du kan konfigurera De Java-komponenter som skapas i den här snabbstarten via Azure Portal med hjälp av avsnittet Konfigurationer.
Mer information om hur du konfigurerar de tre Java-komponenterna som du skapade i den här snabbstarten finns i följande länkar:
Rensa resurser
De resurser som skapas i den här snabbstarten påverkar din Azure-faktura. Om du inte ska använda dessa tjänster på lång sikt använder du följande kommando för att ta bort allt som skapats i den här snabbstarten:
az group delete --resource-group $RESOURCE_GROUP