Краткое руководство. Создание и развертывание приложений в Azure Spring Apps с помощью плана Enterprise

Примечание.

Azure Spring Apps — это новое название службы Azure Spring Cloud. Старое название будет еще некоторое время встречаться в наших материалах, пока мы не обновим ресурсы, такие как снимки экрана, видео и схемы.

Эта статья относится к:❌ Basic/Standard ✔️ Enterprise

В этом кратком руководстве показано, как создавать и развертывать приложения в Azure Spring Apps с помощью плана Enterprise.

Необходимые компоненты

загрузка примера приложения;

Чтобы скачать пример, используйте следующие команды:

git clone https://github.com/Azure-Samples/acme-fitness-store
cd acme-fitness-store

подготовка экземпляра службы к работе;

Чтобы подготовить экземпляр службы "Приложения Azure Spring", выполните следующие действия:

  1. Войдите в Azure CLI и выберите активную подписку, выполнив следующую команду:

    az login
    az account list --output table
    az account set --subscription <subscription-ID>
    
  2. Используйте следующую команду, чтобы принять юридические условия и заявления о конфиденциальности для плана Enterprise. Этот шаг необходим, только если подписка никогда не использовалась для создания экземпляра плана Enterprise в Azure Spring Apps.

    az provider register --namespace Microsoft.SaaS
    az term accept \
        --publisher vmware-inc \
        --product azure-spring-cloud-vmware-tanzu-2 \
        --plan asa-ent-hr-mtr
    
  3. Выберите расположение. Это расположение должно быть расположением, поддерживающим план Azure Spring Apps Enterprise. Дополнительные сведения см. в статье Часто задаваемые вопросы о Приложениях Azure Spring.

  4. Создайте переменные для хранения имен ресурсов с помощью следующих команд. Обязательно замените заполнители своими значениями. Имя экземпляра службы Azure Spring Apps должно быть от 4 до 32 символов и может содержать только строчные буквы, цифры и дефисы. Первым символом в имени службы должна быть буква, а последним — буква или цифра.

    export LOCATION="<location>"
    export RESOURCE_GROUP="<resource-group-name>"
    export SERVICE_NAME="<Azure-Spring-Apps-service-instance-name>"
    export WORKSPACE_NAME="<workspace-name>"
    
  5. Выполните следующую команду, чтобы создать группу ресурсов.

    az group create \
        --name ${RESOURCE_GROUP} \
        --location ${LOCATION}
    

    Дополнительные сведения о группах ресурсов см. в статье Общие сведения об Azure Resource Manager.

  6. Чтобы создать экземпляр службы "Приложения Azure Spring", используйте следующую команду:

    az spring create \
        --resource-group ${RESOURCE_GROUP} \
        --name ${SERVICE_NAME} \
        --sku enterprise \
        --enable-application-configuration-service \
        --enable-service-registry \
        --enable-gateway \
        --enable-api-portal
    
  7. Чтобы создать рабочую область Log Analytics, которая будет использоваться для службы "Приложения Azure Spring", используйте следующую команду:

    az monitor log-analytics workspace create \
        --resource-group ${RESOURCE_GROUP} \
        --workspace-name ${WORKSPACE_NAME} \
        --location ${LOCATION}
    
  8. Чтобы получить идентификатор ресурса для рабочей области Log Analytics и экземпляра службы "Приложения Azure Spring", используйте следующие команды:

    export LOG_ANALYTICS_RESOURCE_ID=$(az monitor log-analytics workspace show \
        --resource-group ${RESOURCE_GROUP} \
        --workspace-name ${WORKSPACE_NAME} \
        --query id \
        --output tsv)
    
    export AZURE_SPRING_APPS_RESOURCE_ID=$(az spring show \
        --resource-group ${RESOURCE_GROUP} \
        --name ${SERVICE_NAME} \
        --query id \
        --output tsv)
    
  9. Чтобы настроить параметры диагностики для службы "Приложения Azure Spring", используйте следующую команду:

    az monitor diagnostic-settings create \
        --name "send-logs-and-metrics-to-log-analytics" \
        --resource ${AZURE_SPRING_APPS_RESOURCE_ID} \
        --workspace ${LOG_ANALYTICS_RESOURCE_ID} \
        --logs '[
             {
               "category": "ApplicationConsole",
               "enabled": true,
               "retentionPolicy": {
                 "enabled": false,
                 "days": 0
               }
             },
             {
                "category": "SystemLogs",
                "enabled": true,
                "retentionPolicy": {
                  "enabled": false,
                  "days": 0
                }
              },
             {
                "category": "IngressLogs",
                "enabled": true,
                "retentionPolicy": {
                  "enabled": false,
                  "days": 0
                 }
               }
           ]' \
           --metrics '[
             {
               "category": "AllMetrics",
               "enabled": true,
               "retentionPolicy": {
                 "enabled": false,
                 "days": 0
               }
             }
           ]'
    
  10. Чтобы создать приложения для cart-service, order-service, payment-service, catalog-service и frontend, используйте следующие команды:

    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name payment-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name frontend \
        --service ${SERVICE_NAME}
    

Внешняя конфигурация с использованием Службы конфигурации приложений

Чтобы настроить Службу конфигурации приложений, выполните следующие действия:

  1. Чтобы создать репозиторий конфигурации для Службы конфигурации приложений, используйте следующую команду:

    az spring application-configuration-service git repo add \
        --resource-group ${RESOURCE_GROUP} \
        --name acme-fitness-store-config \
        --service ${SERVICE_NAME} \
        --label main \
        --patterns "catalog/default,catalog/key-vault,identity/default,identity/key-vault,payment/default" \
        --uri "https://github.com/Azure-Samples/acme-fitness-store-config"
    
  2. Для привязки приложений к Службе конфигурации приложений используйте следующие команды:

    az spring application-configuration-service bind \
        --resource-group ${RESOURCE_GROUP} \
        --app payment-service \
        --service ${SERVICE_NAME}
    
    az spring application-configuration-service bind \
        --resource-group ${RESOURCE_GROUP} \
        --app catalog-service \
        --service ${SERVICE_NAME}
    

Активация регистрации и обнаружения служб

Чтобы активировать регистрацию и обнаружение служб, используйте следующие команды для привязки приложений к Реестру служб:

az spring service-registry bind \
    --resource-group ${RESOURCE_GROUP} \
    --app payment-service \
    --service ${SERVICE_NAME}

az spring service-registry bind \
    --resource-group ${RESOURCE_GROUP} \
    --app catalog-service \
    --service ${SERVICE_NAME}

Развертывание приложений polyglot с помощью Службы сборки Tanzu

Для развертывания и сборки приложения выполните приведенные ниже действия. Для выполнения этих шагов убедитесь, что терминал находится в папке проекта, прежде чем выполнять какие-либо команды:

  1. Чтобы создать пользовательский построитель в Службе сборки Tanzu, используйте следующую команду:

    az spring build-service builder create \
        --resource-group ${RESOURCE_GROUP} \
        --name quickstart-builder \
        --service ${SERVICE_NAME} \
        --builder-file azure-spring-apps-enterprise/resources/json/tbs/builder.json
    
  2. Для сборки и развертывания службы платежей используйте следующую команду:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name payment-service \
        --service ${SERVICE_NAME} \
        --config-file-pattern payment/default \
        --source-path apps/acme-payment \
        --build-env BP_JVM_VERSION=17
    
  3. Для сборки и развертывания службы каталогов используйте следующую команду:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${SERVICE_NAME} \
        --config-file-pattern catalog/default \
        --source-path apps/acme-catalog \
        --build-env BP_JVM_VERSION=17
    
  4. Для сборки и развертывания службы управления заказами используйте следующую команду:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --source-path apps/acme-order
    
  5. Для сборки и развертывания службы управления корзиной используйте следующую команду:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --env "CART_PORT=8080" \
        --source-path apps/acme-cart
    
  6. Для сборки и развертывания интерфейсного приложения используйте следующую команду:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name frontend \
        --service ${SERVICE_NAME} \
        --source-path apps/acme-shopping
    

Совет

Чтобы устранить неполадки с развертываниями, можно использовать следующую команду для получения журналов потоковой передачи в реальном времени при выполнении приложения: az spring app logs --name <app name> --follow.

Маршрутизация запросов к приложениям с помощью Шлюза Spring Cloud

Выполните следующие действия, чтобы настроить Шлюз Spring Cloud и маршруты для приложений.

  1. Чтобы назначить конечную точку Шлюзу Spring Cloud, используйте следующую команду:

    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Чтобы указать сведения об API Шлюза Spring Cloud, используйте следующие команды:

    export GATEWAY_URL=$(az spring gateway show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --api-description "Fitness Store API" \
        --api-title "Fitness Store" \
        --api-version "v1.0" \
        --server-url "https://${GATEWAY_URL}" \
        --allowed-origins "*"
    
  3. Чтобы создать маршруты для службы управления корзиной, используйте следующую команду:

    az spring gateway route-config create \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-routes \
        --service ${SERVICE_NAME} \
        --app-name cart-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/cart-service.json
    
  4. Чтобы создать маршруты для службы управления заказами, используйте следующую команду:

    az spring gateway route-config create \
        --resource-group ${RESOURCE_GROUP} \
        --name order-routes \
        --service ${SERVICE_NAME} \
        --app-name order-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/order-service.json
    
  5. Чтобы создать маршруты для службы каталогов, используйте следующую команду:

    az spring gateway route-config create \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-routes \
        --service ${SERVICE_NAME} \
        --app-name catalog-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/catalog-service.json
    
  6. Чтобы создать маршруты для внешнего интерфейса, используйте следующую команду:

    az spring gateway route-config create \
        --resource-group ${RESOURCE_GROUP} \
        --name frontend-routes \
        --service ${SERVICE_NAME} \
        --app-name frontend \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/frontend.json
    
  7. Чтобы получить URL-адрес Шлюза Spring Cloud, используйте следующие команды:

    export GATEWAY_URL=$(az spring gateway show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    echo "https://${GATEWAY_URL}"
    

    Вы можете перейти по выходному URL-адресу в браузере, чтобы просмотреть развернутое приложение.

Просмотр и пробное использование интерфейсов API с помощью Портала API

Для настройки портала API выполните следующие действия.

  1. Чтобы назначить конечную точку порталу API, используйте следующую команду:

    az spring api-portal update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Чтобы получить URL-адрес портала API, используйте следующие команды:

    export PORTAL_URL=$(az spring api-portal show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    echo "https://${PORTAL_URL}"
    

    Вы можете перейти по выходному URL-адресу в браузере, чтобы просмотреть интерфейсы API приложения.


Очистка ресурсов

Если вы планируете продолжить работу с последующими краткими руководствами и статьями, эти ресурсы можно не удалять. Удалите ненужную группу ресурсов. Ресурсы в ней будут также удалены. Чтобы удалить группу ресурсов с помощью Azure CLI, используйте следующие команды:

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

Следующие шаги

Теперь, когда вы успешно создали и развернули приложение, перейдите к любому из следующих дополнительных кратких руководств: