Rychlý start: Sestavování a nasazování aplikací do Azure Spring Apps

Poznámka:

Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.

Tento článek se vztahuje na: ✔️ Basic/Standard ❌ Enterprise

Tento rychlý start vysvětluje, jak sestavovat a nasazovat aplikace Spring do Azure Spring Apps pomocí Azure CLI.

Požadavky

Stažení ukázkové aplikace

Ukázkovou aplikaci si můžete stáhnout pomocí následujícího postupu. Pokud používáte Azure Cloud Shell, přepněte na místní příkazový řádek.

  1. Vytvořte novou složku a naklonujte úložiště ukázkové aplikace.

    mkdir source-code
    
    cd source-code
    
    git clone https://github.com/Azure-Samples/azure-spring-apps-samples
    
  2. Přejděte do adresáře úložiště.

    cd azure-spring-apps-samples
    

Nasazení PlanetWeatherProvider

Pomocí následujícího postupu nasaďte projekt PlanetWeatherProvider.

  1. Vytvořte aplikaci pro PlanetWeatherProvider projekt v instanci Azure Spring Apps.

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

    Pokud chcete povolit automatickou registraci služby, zadali jste aplikaci stejný název jako hodnota spring.application.name v souboru appsettings.json projektu:

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

    Spuštění tohoto příkazu může trvat několik minut.

  2. Změňte adresář na PlanetWeatherProvider složku projektu.

    cd steeltoe-sample/src/planet-weather-provider
    
  3. Vytvořte binární soubory a soubor .zip , který se má nasadit.

    dotnet publish -c release -o ./publish
    

    Tip

    Soubor projektu obsahuje následující kód XML pro zabalení binárních souborů do souboru .zip po zápisu do složky ./publish :

    <Target Name="Publish-Zip" AfterTargets="Publish">
      <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" />
    </Target>
    
  4. Nasaďte projekt do Azure.

    Před spuštěním následujícího příkazu se ujistěte, že je příkazový řádek ve složce projektu.

    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
    

    Možnost --main-entry určuje relativní cestu z kořenové složky .zip souboru do .dll souboru, který obsahuje vstupní bod aplikace. Jakmile služba nahraje .zip soubor, extrahuje všechny soubory a složky a pak se pokusí spustit vstupní bod v zadaném souboru .dll .

    Spuštění tohoto příkazu může trvat několik minut.

Nasazení systému SolarSystemWeather

Pomocí následujících kroků nasaďte projekt SolarSystemWeather.

  1. Vytvořte pro projekt jinou aplikaci v instanci Azure Spring Apps.

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

    solar-system-weatherje název zadaný v SolarSystemWeather souboru appsettings.json projektu.

    Spuštění tohoto příkazu může trvat několik minut.

  2. Změňte adresář na SolarSystemWeather projekt.

    cd ../solar-system-weather
    
  3. Vytvořte binární soubory a .zip soubor, který se má nasadit.

    dotnet publish -c release -o ./publish
    
  4. Nasaďte projekt do 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
    

    Spuštění tohoto příkazu může trvat několik minut.

Přiřazení veřejného koncového bodu

Před testováním aplikace získejte veřejný koncový bod pro požadavek HTTP GET do solar-system-weather aplikace.

  1. Spuštěním následujícího příkazu přiřaďte koncový bod.

    az spring app update --name solar-system-weather --assign-endpoint true
    
  2. Spuštěním následujícího příkazu získejte adresu URL koncového bodu.

    Windows:

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

    Linux:

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

Testování aplikace

Pokud chcete aplikaci otestovat, odešlete do solar-system-weather aplikace požadavek GET. V prohlížeči přejděte na veřejnou adresu URL s /weatherforecast připojenou adresou URL. Příklad: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast

Výstup je JSON:

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

Tato odpověď ukazuje, že obě aplikace Spring fungují. Aplikace SolarSystemWeather vrátí data, která načetla z PlanetWeatherProvider aplikace.

Tento článek vysvětluje, jak se vytvářejí a nasazují aplikace Spring do Azure Spring Apps. Můžete použít Azure CLI, modul plug-in Maven nebo Intellij. Tento článek popisuje každou alternativu.

Požadavky

Místní sestavování aplikací Spring

Pomocí následujících příkazů naklonujte ukázkové úložiště, přejděte do ukázkové složky a pak sestavte projekt.

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

Kompilace projektu trvá 5 až 10 minut. Při kompilaci projektu byste měli mít jednotlivé soubory JAR pro každou službu v příslušných složkách.

Vytváření a nasazování aplikací v Azure Spring Apps

Pomocí následujícího postupu vytvořte a nasadíte aplikace v Azure Spring Apps pomocí rozhraní příkazového řádku.

  1. Pokud jste v předchozích rychlých startech nespusili následující příkazy, spusťte je a nastavte výchozí hodnoty rozhraní příkazového řádku.

    az configure --defaults group=<resource-group-name> spring=<service-name>
    
  2. Vytvořte dvě základní aplikace Spring pro PetClinic: api-gateway a 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. Nasaďte soubory JAR vytvořené v předchozím kroku.

    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. Po nasazení zadejte dotaz na stav aplikace pomocí následujícího příkazu.

    az spring app list --output table
    

    Tento příkaz vytvoří výstup podobný následujícímu příkladu:

    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                    -
    

Ověření služeb

Přístup k api-gateway customers-service prohlížeči s veřejnou adresou URL zobrazenou dříve ve formátu https://<service name>-api-gateway.azuremicroservices.io.

Snímek obrazovky ukázkové aplikace PetClinic, která zobrazuje stránku Vlastníci

Tip

Při řešení potíží s nasazením můžete pomocí následujícího příkazu získat streamování protokolů v reálném čase při každém spuštění az spring app logs --name <app name> --followaplikace.

Nasazení dalších aplikací

Pokud chcete, aby aplikace PetClinic fungovala se všemi funkcemi, jako je admin server, návštěvy a veterinární lékaři, nasaďte ostatní aplikace pomocí následujících příkazů:

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"

Vyčištění prostředků

Pokud chcete pokračovat v práci s dalšími rychlými starty a kurzy, můžete tyto prostředky ponechat na místě. Pokud už ji nepotřebujete, odstraňte skupinu prostředků, která odstraní prostředky ve skupině prostředků. Pokud chcete odstranit skupinu prostředků pomocí Azure CLI, použijte následující příkazy:

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

Další kroky