Delen via


Quickstart: Uw eerste Java-microservicetoepassing starten met beheerde Java-onderdelen in Azure Container Apps

In deze quickstart leert u hoe u een toepassing implementeert in Azure Container Apps die gebruikmaakt van Java-onderdelen voor het afhandelen van configuratiebeheer, servicedetectie en status en metrische gegevens. De voorbeeldtoepassing die in dit voorbeeld wordt gebruikt, is de Java PetClinic, die gebruikmaakt van het microservicearchitectuurpatroon. In het volgende diagram ziet u de architectuur van de PetClinic-toepassing in Azure Container Apps:

Diagram van de relatie tussen de Java-onderdelen en de microservicetoepassingen.

De PetClinic-toepassing bevat de volgende functies:

  • De front-end is een zelfstandige Node.js web-app die wordt gehost in de API-gateway-app.
  • De API-gateway stuurt aanvragen naar back-endservice-apps.
  • Back-end-apps zijn gebouwd met Spring Boot.
  • Elke back-end-app maakt gebruik van een HyperSQL-database als permanente opslag.
  • De apps maken gebruik van beheerde Java-onderdelen in Azure Container Apps, waaronder een serviceregister, een configuratieserver en een beheerserver.
  • De configuratieserver leest gegevens uit een Git-opslagplaats.
  • Een Log Analytics-werkruimte registreert servergegevens.

In deze handleiding zult u:

  • Een configuratieserver, Eureka-server, beheerserver en beheeronderdelen maken
  • Een reeks microservice-apps maken
  • De serveronderdelen verbinden met uw microservices-apps
  • De verzameling apps implementeren
  • De geïmplementeerde apps controleren

Aan het einde van dit artikel implementeert u één webtoepassing en drie back-endtoepassingen die zijn geconfigureerd voor gebruik met drie verschillende Java-onderdelen. Vervolgens kunt u elk onderdeel beheren via Azure Portal.

Vereisten

  • Azure-account: Als u geen Azure-account hebt, maakt u er gratis een. U hebt de machtiging Inzender of Eigenaar voor het Azure-abonnement nodig om deze quickstart te kunnen gebruiken. Zie Azure-rollen toewijzen met behulp van Azure Portal voor meer informatie.
  • Azure CLI: Installeer de Azure CLI.
  • Azure Container Apps CLI-extensie. Gebruik versie 0.3.47 of hoger. Gebruik de az extension add --name containerapp --upgrade --allow-preview opdracht om de nieuwste versie te installeren.

Instellingen

Gebruik de volgende stappen om omgevingsvariabelen, een resourcegroep en een Azure Container Apps-omgeving te maken:

  1. De omgevingsvariabelen bevatten uw aangepaste waarden, dus vervang de tijdelijke aanduidingen die door <> uw eigen waarden worden omgeven voordat u de volgende opdrachten uitvoert:

    export RESOURCE_GROUP=<RESOURCE_GROUP>
    export LOCATION=<LOCATION>
    export CONTAINER_APP_ENVIRONMENT=<CONTAINER_APPS_ENVIRONMENT>
    
  2. Nu maakt u meer omgevingsvariabelen die de instellingen voor uw microservices-app bevatten. Deze waarden worden gebruikt voor het definiëren van de namen en configuraties van de Java-onderdelen en de Azure Container Apps die u gebruikt om de microservices te implementeren. Maak deze omgevingsvariabelen met behulp van de volgende opdrachten:

    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. Meld u aan bij de Azure CLI en kies uw actieve abonnement met behulp van de volgende opdracht:

    az login
    
  4. Maak een resourcegroep om uw Azure-services te organiseren met behulp van de volgende opdracht:

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  5. Maak uw Azure Container Apps-omgeving, die als host fungeert voor zowel de Java-onderdelen als uw container-apps, met behulp van de volgende opdracht:

    az containerapp env create \
        --resource-group $RESOURCE_GROUP \
        --name $CONTAINER_APP_ENVIRONMENT \
        --location $LOCATION
    

Java-onderdelen maken

Nu maakt u de volgende Java-onderdelen die ondersteuning bieden voor uw app:

  • Configuratieserver. Wordt gebruikt voor het beheren van configuratie-instellingen voor uw microservices-apps.
  • Eureka-server. Wordt gebruikt om het serviceregister en de detectie te beheren.
  • Beheerserver. Wordt gebruikt voor het bewaken en beheren van de status en metrische gegevens van uw microservices-apps.

Voer de volgende stappen uit om deze serveronderdelen te maken:

  1. Maak de configuratieserver voor uw Java-onderdelen met behulp van de volgende opdracht:

    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. Maak de Eureka-server voor uw Java-onderdelen met behulp van de volgende opdracht:

    az containerapp env java-component eureka-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    
  3. Maak de beheerserver voor uw Java-onderdelen met behulp van de volgende opdracht:

    az containerapp env java-component admin-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $ADMIN_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    

De microservice-apps implementeren

Als u de Java-microservice-apps wilt implementeren in Azure Container Apps met behulp van de vooraf gemaakte containerinstallatiekopieën, gebruikt u de volgende stappen:

Notitie

In dit artikel gebruikt u een reeks opgebouwde afbeeldingen voor de Spring Petclinic microservice-apps. U hebt ook de mogelijkheid om de voorbeeldcode aan te passen en uw eigen afbeeldingen te gebruiken. Zie de GitHub-opslagplaats azure-container-apps-java-samples voor meer informatie.

  1. Maak de klantgegevens-app met behulp van de volgende opdracht:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $CUSTOMERS_SERVICE_IMAGE
    
  2. Maak de vet-app met behulp van de volgende opdracht:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VETS_SERVICE_IMAGE
    
  3. Maak de app bezoeken met behulp van de volgende opdracht:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VISITS_SERVICE_IMAGE
    
  4. Maak de API-gateway-app met behulp van de volgende opdracht:

    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 
    

Container-apps binden aan Java-onderdelen

Koppel vervolgens de Java-onderdelen aan uw container-apps. De bindingen die u in deze sectie maakt, bieden de volgende functionaliteit:

  • Injecteer configuratiegegevens in elke app vanaf de beheerde configuratieserver bij het opstarten.
  • Registreer de app bij de beheerde Eureka-server voor servicedetectie.
  • Schakel de beheerserver in om de app te controleren.

Gebruik de containerapp update opdracht om bindingen voor elke app te maken met behulp van de volgende stappen:

  1. Voeg bindingen toe aan de klantgegevens-app met behulp van de volgende opdracht:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  2. Voeg bindingen toe aan de veterinaire dienst met behulp van het volgende commando:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  3. Voeg bindingen toe aan de bezoeken-service met behulp van de volgende opdracht:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  4. Bindingen toevoegen aan de API-gateway. Gebruik de volgende opdracht om de URL van de front-endtoepassing te retourneren en open deze locatie vervolgens in uw browser:

    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 
    

App-status controleren

Gebruik de volgende stappen om de app-status te controleren:

  1. Met behulp van de URL die wordt geretourneerd vanuit de opdracht van az containerapp update de API-gateway, bekijkt u de front-endtoepassing in uw browser. De toepassing moet er ongeveer uitzien als in de volgende schermopname:

    Schermopname van de startpagina van de toepassing dierenkliniek.

  2. Bekijk het Eureka-serverdashboard met behulp van de volgende stappen:

    Belangrijk

    Als u het Eureka Server-dashboard en -beheerder voor Spring-dashboard wilt weergeven, moet u ten minste de Microsoft.App/managedEnvironments/write rol hebben toegewezen aan uw account in de beheerde omgevingsresource. U kunt de Owner of Contributor rol expliciet toewijzen aan de resource. U kunt ook de stappen volgen om een aangepaste roldefinitie te maken en deze toe te wijzen aan uw account.

    1. Voer de volgende opdracht uit om de URL van het dashboard te retourneren:

      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. Open de URL in uw browser. U ziet nu een toepassing die lijkt op de volgende schermopname:

      Schermopname van huisdierkliniekapplicatie Eureka Server.

  3. Bekijk het dashboard Beheerder voor Spring met behulp van de volgende stappen:

    1. Gebruik de volgende opdracht om de URL van het dashboard te retourneren:

      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. Open de URL in uw browser. U ziet nu een toepassing die lijkt op de volgende schermopname:

      Schermopname van het dashboard voor de beheerder van de huisdierkliniek met vijf services, samen met versiegegevens voor vier van de services.

Optioneel: Java-onderdelen configureren

U kunt de Java-onderdelen configureren die in deze quickstart zijn gemaakt via Azure Portal met behulp van de sectie Configuraties .

Schermopname van de sectie Configuraties, met de tekstvakken Eigenschapsnaam en Waarde en de mogelijkheid om een eigenschap te verwijderen.

Zie de volgende koppelingen voor meer informatie over het configureren van de drie Java-onderdelen die u in deze quickstart hebt gemaakt:

Resources opschonen

De resources die in deze quickstart zijn gemaakt, hebben een effect op uw Azure-factuur. Als u deze services niet op de lange termijn gaat gebruiken, gebruikt u de volgende opdracht om alles te verwijderen dat in deze quickstart is gemaakt:

az group delete --resource-group $RESOURCE_GROUP