Dela via


Snabbstart: Starta ditt första Java-mikrotjänstprogram med hanterade Java-komponenter i Azure Container Apps

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:

Diagram över relationen mellan Java-komponenterna och mikrotjänstprogrammen.

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-preview Anvä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ö:

  1. 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>
    
  2. 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-gateway
    
  3. Logga in på Azure CLI och välj din aktiva prenumeration med hjälp av följande kommando:

    az login
    
  4. Skapa en resursgrupp för att organisera dina Azure-tjänster med hjälp av följande kommando:

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  5. Skapa 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:

  1. 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_URI
    
  2. Skapa 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 \
    
  3. 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.

  1. 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_IMAGE
    
  2. Skapa 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_IMAGE
    
  3. Skapa 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_IMAGE
    
  4. Skapa 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:

  1. 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_COMPONENT
    
  2. Lä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_COMPONENT
    
  3. Lä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_COMPONENT
    
  4. Lä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:

  1. Visa frontend-applikationen i webbläsaren med hjälp av URL:en som returneras från API-gatewayens az containerapp update kommando. Programmet bör likna följande skärmbild:

    Skärmbild av startsidan för programmet för djurkliniken.

  2. 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/write tilldelad till ditt konto till resursen för den hanterade miljön. Du kan uttryckligen tilldela resursen Owner eller Contributor rollen. Du kan också följa stegen för att skapa en anpassad rolldefinition och tilldela den till ditt konto.

    1. 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
      
    2. Öppna URL:en i webbläsaren. Du bör se ett program som liknar följande skärmbild:

      Skärmbild av djurklinikprogrammet Eureka Server.

  3. Visa instrumentpanelen Admin för Spring med hjälp av följande steg:

    1. 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
      
    2. Öppna URL:en i webbläsaren. Du bör se ett program som liknar följande skärmbild:

      Skärmbild av administratörsinstrumentpanelen för husdjurskliniken som visar fem tjänster, tillsammans med versionsinformation för fyra av tjänsterna.

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.

Skärmbild av avsnittet Konfigurationer med textrutorna Egenskapsnamn och Värde och möjligheten att ta bort en egenskap.

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