Quickstart: Apps bouwen en implementeren in Azure Spring Apps

Notitie

Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.

Dit artikel is van toepassing op: ✔️ Basic/Standard ❌ Enterprise

In deze quickstart wordt uitgelegd hoe u Spring-toepassingen bouwt en implementeert in Azure Spring Apps met behulp van de Azure CLI.

Vereisten

De voorbeeld-app downloaden

Gebruik de volgende stappen om de voorbeeld-app te downloaden. Als u De Azure Cloud Shell hebt gebruikt, schakelt u over naar een lokale opdrachtprompt.

  1. Maak een nieuwe map en kloon de opslagplaats van de voorbeeld-app.

    mkdir source-code
    
    cd source-code
    
    git clone https://github.com/Azure-Samples/azure-spring-apps-samples
    
  2. Navigeer naar de map van de opslagplaats.

    cd azure-spring-apps-samples
    

PlanetWeatherProvider implementeren

Gebruik de volgende stappen om het PlanetWeatherProvider-project te implementeren.

  1. Maak een app voor het PlanetWeatherProvider project in uw Azure Spring Apps-exemplaar.

    az spring app create --name planet-weather-provider --runtime-version NetCore_31
    

    Als u automatische serviceregistratie wilt inschakelen, hebt u de app dezelfde naam gegeven als de waarde in het appsettings.json-bestand van spring.application.name het project:

    "spring": {
      "application": {
        "name": "planet-weather-provider"
      }
    }
    

    Het uitvoeren van deze opdracht kan enkele minuten duren.

  2. Wijzig de map in de projectmap van PlanetWeatherProvider.

    cd steeltoe-sample/src/planet-weather-provider
    
  3. Maak de binaire bestanden en het ZIP-bestand dat moet worden geïmplementeerd.

    dotnet publish -c release -o ./publish
    

    Tip

    Het projectbestand bevat de volgende XML om de binaire bestanden in een ZIP-bestand te verpakken nadat ze naar de map ./publish zijn geschreven:

    <Target Name="Publish-Zip" AfterTargets="Publish">
      <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" />
    </Target>
    
  4. Implementeer het project in Azure.

    Zorg ervoor dat de opdrachtprompt zich in de projectmap bevindt voordat u de volgende opdracht uitvoert.

    az spring app deploy \
        --name planet-weather-provider \
        --runtime-version NetCore_31 \
        --main-entry Microsoft.Azure.SpringCloud.Sample.PlanetWeatherProvider.dll \
        --artifact-path ./publish-deploy-planet.zip
    

    Met de optie --main-entry geeft u het relatieve pad op vanaf de hoofdmap van het . ZIP-bestand naar het DLL-bestand met het beginpunt van de toepassing. Nadat de service het .zip-bestand heeft geüpload, worden alle bestanden en mappen geëxtraheerd en wordt vervolgens geprobeerd het invoerpunt uit te voeren in het opgegeven .dll-bestand .

    Het uitvoeren van deze opdracht kan enkele minuten duren.

SolarSystemWeather implementeren

Gebruik de volgende stappen om het SolarSystemWeather-project te implementeren.

  1. Maak een andere app in uw Azure Spring Apps-exemplaar voor het project.

    az spring app create --name solar-system-weather --runtime-version NetCore_31
    

    solar-system-weather is de naam die is opgegeven in het bestand appsettings.json van het project SolarSystemWeather.

    Het uitvoeren van deze opdracht kan enkele minuten duren.

  2. Wijzig de map in de map van het project SolarSystemWeather.

    cd ../solar-system-weather
    
  3. Maak de binaire bestanden en het ZIP-bestand dat u wilt implementeren.

    dotnet publish -c release -o ./publish
    
  4. Implementeer het project in Azure.

    az spring app deploy \
        --name solar-system-weather \
        --runtime-version NetCore_31 \
        --main-entry Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.dll \
        --artifact-path ./publish-deploy-solar.zip
    

    Het uitvoeren van deze opdracht kan enkele minuten duren.

Openbaar eindpunt toewijzen

Voordat u de toepassing test, moet u een openbaar eindpunt voor een HTTP GET-aanvraag voor de solar-system-weather toepassing ophalen.

  1. Voer de volgende opdracht uit om het eindpunt toe te wijzen.

    az spring app update --name solar-system-weather --assign-endpoint true
    
  2. Voer de volgende opdracht uit om de URL van het eindpunt op te halen.

    Windows:

    az spring app show --name solar-system-weather --output table
    

    Linux:

    az spring app show --name solar-system-weather | grep url
    

De toepassing testen

Als u de toepassing wilt testen, verzendt u een GET-aanvraag naar de solar-system-weather app. Navigeer in een browser naar de openbare URL waaraan /weatherforecast deze is toegevoegd. Bijvoorbeeld: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast

De uitvoer is JSON:

[{"Key":"Mercury","Value":"very warm"},{"Key":"Venus","Value":"quite unpleasant"},{"Key":"Mars","Value":"very cool"},{"Key":"Saturn","Value":"a little bit sandy"}]

In dit antwoord ziet u dat beide Spring-apps werken. De app SolarSystemWeather retourneert gegevens die zijn opgehaald uit de app PlanetWeatherProvider.

In dit artikel wordt uitgelegd hoe u Spring-toepassingen bouwt en implementeert in Azure Spring Apps. U kunt Azure CLI, de Maven-invoegtoepassing of Intellij gebruiken. In dit artikel wordt elk alternatief beschreven.

Vereisten

Spring-toepassingen lokaal bouwen

Gebruik de volgende opdrachten om de voorbeeldopslagplaats te klonen, naar de voorbeeldmap te gaan en vervolgens het project te bouwen.

git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud

Het compileren van het project duurt 5-10 minuten. Wanneer het project is gecompileerd, moet u afzonderlijke JAR-bestanden voor elke service in hun respectieve mappen hebben.

Apps maken en implementeren in Azure Spring Apps

Gebruik de volgende stappen om apps te maken en te implementeren in Azure Spring Apps met behulp van de CLI.

  1. Als u de volgende opdrachten in de vorige quickstarts niet hebt uitgevoerd, voert u deze nu uit om de CLI-standaardwaarden in te stellen.

    az configure --defaults group=<resource-group-name> spring=<service-name>
    
  2. Maak de twee kern spring-toepassingen voor PetClinic: api-gateway en customers-service.

    az spring app create \
        --name api-gateway \
        --runtime-version Java_17 \
        --instance-count 1 \
        --memory 2Gi \
        --assign-endpoint
    az spring app create \
        --name customers-service \
        --runtime-version Java_17 \
        --instance-count 1 \
        --memory 2Gi
    
  3. Implementeer de JAR-bestanden die in de vorige stap zijn gebouwd.

    az spring app deploy \
        --name api-gateway \
        --artifact-path spring-petclinic-api-gateway/target/api-gateway-3.0.1.jar \
        --jvm-options="-Xms2048m -Xmx2048m"
    az spring app deploy \
        --name customers-service \
        --artifact-path spring-petclinic-customers-service/target/customers-service-3.0.1.jar \
        --jvm-options="-Xms2048m -Xmx2048m"
    
  4. Voer een query uit voor de app-status na implementaties met de volgende opdracht.

    az spring app list --output table
    

    Met deze opdracht wordt uitvoer geproduceerd die vergelijkbaar is met het volgende voorbeeld:

    Name               Location    ResourceGroup    Production Deployment    Public Url                                           Provisioning Status    CPU    Memory    Running Instance    Registered Instance    Persistent Storage
    -----------------  ----------  ---------------  -----------------------  ---------------------------------------------------  ---------------------  -----  --------  ------------------  ---------------------  --------------------
    api-gateway        eastus      xxxxxx-sp         default                  https://<service name>-api-gateway.azuremicroservices.io   Succeeded              1      2         1/1                 1/1                    -
    customers-service  eastus      <service name>         default                                                                       Succeeded              1      2         1/1                 1/1                    -
    

De services controleren

Open api-gateway en customers-service vanuit een browser met de openbare URL die eerder werd weergegeven, in de indeling van https://<service name>-api-gateway.azuremicroservices.io.

Schermopname van de PetClinic-voorbeeld-app waarop de pagina Eigenaren wordt weergegeven.

Tip

Als u problemen met implementaties wilt oplossen, kunt u de volgende opdracht gebruiken om logboeken in realtime te streamen wanneer de app wordt uitgevoerd az spring app logs --name <app name> --follow.

Extra apps implementeren

Als u wilt dat de PetClinic-app werkt met alle functies zoals Beheer Server, Bezoeken en Dierenartsen, implementeert u de andere apps met de volgende opdrachten:

az spring app create \
    --name admin-server \
    --runtime-version Java_17 \
    --instance-count 1 \
    --memory 2Gi \
    --assign-endpoint
az spring app create \
    --name vets-service \
    --runtime-version Java_17 \
    --instance-count 1 \
    --memory 2Gi
az spring app create \
    --name visits-service \
    --runtime-version Java_17 \
    --instance-count 1 \
    --memory 2Gi
az spring app deploy \
    --name admin-server \
    --runtime-version Java_17 \
    --artifact-path spring-petclinic-admin-server/target/admin-server-3.0.1.jar \
    --jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
    --name vets-service \
    --runtime-version Java_17 \
    --artifact-path spring-petclinic-vets-service/target/vets-service-3.0.1.jar \
    --jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
    --name visits-service \
    --runtime-version Java_17 \
    --artifact-path spring-petclinic-visits-service/target/visits-service-3.0.1.jar \
    --jvm-options="-Xms1536m -Xmx1536m"

Resources opschonen

Als u van plan bent om verder te gaan met volgende snelstarts en zelfstudies, kunt u deze resources het beste intact laten. Als u de resourcegroep niet meer nodig hebt, verwijdert u deze. Hierdoor worden ook de resources in de resourcegroep verwijderd. Als u de resourcegroep wilt verwijderen met behulp van Azure CLI, gebruikt u de volgende opdrachten:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Volgende stappen