Развертывание статического веб-приложения с помощью интерфейса командной строки Статические веб-приложения Azure

Внимание

Чтобы повысить безопасность развертываний из Static Web Apps CLI, было введено критическое изменение, требующее обновления до последней версии (2.0.2) Static Web Apps CLI к 15 января 2025 года.

CLI для статических веб-приложений Azure (SWA CLI) предоставляет команду deploy для развертывания текущего проекта в Статические веб-приложения Azure.

Ниже приведены распространенные сценарии развертывания.

  • Интерфейсное приложение без API
  • Интерфейсное приложение с API
  • Приложения Blazor

Токен развертывания

Интерфейс командной строки SWA поддерживает развертывание с помощью токена развертывания, что позволяет настраивать в средах CI/CD.

Вы можете получить маркер развертывания из:

  • Портал Azure: Главная → Статическое веб-приложение → Ваш экземпляр → Обзор → Управление маркером развертывания

  • Azure CLI: с помощью secrets list команды:

    az staticwebapp secrets list --name <APPLICATION_NAME> --query "properties.apiKey"
    
  • Статические веб-приложения Azure CLI: с помощью deploy команды:

    swa deploy --print-token
    

Затем вы можете использовать значение токена вместе с --deployment-token <TOKEN>, или вы можете создать переменную среды под названием SWA_CLI_DEPLOYMENT_TOKEN и установить ее на токен развертывания.

Внимание

Не сохраняйте токены развертывания в общедоступном репозитории.

Развертывание интерфейсного приложения без API

Вы можете развернуть фронтенд-приложение без API на Azure Static Web Apps. Если для внешнего приложения требуется шаг сборки, выполните swa build или обратитесь к инструкциям по сборке приложения.

Выберите вариант, подходящий для настройки развертывания.

  • Вариант 1. Из папки сборки, которую вы хотите использовать для развертывания, выполните команду развертывания:

    cd build/
    swa deploy
    

    Примечание.

    Папка сборки должна содержать статическое содержимое вашего приложения для развертывания.

  • Вариант 2. Вы также можете развернуть определенную папку:

    1. Если для внешнего приложения требуется шаг сборки, выполните swa build или обратитесь к инструкциям по сборке приложения.

    2. Развертывание приложения:

    swa deploy ./my-dist
    

Развертывание интерфейсного приложения с помощью API

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

  1. Если для внешнего приложения требуется шаг сборки, выполните swa build или обратитесь к инструкциям по сборке приложения.

  2. Убедитесь, что версия среды выполнения языка API в файле staticwebapp.config.json задана правильно, например:

    {
      "platform": {
        "apiRuntime": "node:16"
      }
    }
    

    Примечание.

    Если у проекта нет файла staticwebapp.config.json , добавьте его в outputLocation папку.

  3. Развертывание приложения:

    swa deploy ./my-dist --api-location ./api
    

Развертывание приложения Blazor

Вы можете развернуть приложение Blazor, выполнив следующие действия.

  1. Создайте приложение Blazor в режиме выпуска :

    dotnet publish -c Release -o bin/publish
    
  2. В корневом каталоге проекта выполните команду развертывания:

    swa deploy ./bin/publish/wwwroot --api-location ./Api
    

Развертывание с помощью файла конфигурации

Примечание.

Путь для outputLocation должен быть относительно appLocation.

Если вы используете swa-cli.config.json файл конфигурации в проекте с одной записью конфигурации, вы можете развернуть приложение, выполнив следующие действия.

Пример одной записи конфигурации представлен следующим фрагментом кода.

{
  "configurations": {
    "my-app": {
      "appLocation": "./",
      "apiLocation": "api",
      "outputLocation": "frontend",
      "start": {
        "outputLocation": "frontend"
      },
      "deploy": {
        "outputLocation": "frontend"
      }
    }
  }
}
  1. Если для внешнего приложения требуется шаг сборки, выполните swa build или обратитесь к инструкциям по сборке приложения.

  2. Развертывание приложения.

swa deploy

Если у вас несколько записей конфигурации, можно указать идентификатор записи, чтобы указать, какой из них следует использовать:

swa deploy my-otherapp

Параметры

Возможные варианты использования с swa deploy включают:

  • -a, --app-location <path>: папка, содержащая исходный код интерфейсного приложения (по умолчанию: ".")
  • -i, --api-location <path>: папка, содержащая исходный код приложения API
  • -O, --output-location <path>: папка, содержащая встроенный источник интерфейсного приложения. Путь относительно --app-location (по умолчанию: ".")
  • -w, --swa-config-location <swaConfigLocation>: каталог, в котором находится файл staticwebapp.config.json
  • -d, --deployment-token <secret>: секретный маркер, используемый для проверки подлинности с помощью статических веб-приложений
  • -dr, --dry-run: имитируйте процесс развертывания без фактического выполнения (по умолчанию: false)
  • -pt, --print-token: печать маркера развертывания (по умолчанию: false)
  • --env [environment]: тип среды развертывания, в которой развертывается проект (по умолчанию: "preview")
  • -S, --subscription-id <subscriptionId>: идентификатор подписки Azure, используемый этим проектом (по умолчанию: process.env.AZURE_SUBSCRIPTION_ID)
  • -R, --resource-group <resourceGroupName>: группа ресурсов Azure, используемая этим проектом
  • -T, --tenant-id <tenantId>: идентификатор клиента Azure (по умолчанию: process.env.AZURE_TENANT_ID)
  • -C, --client-id <clientId>: идентификатор клиента Azure
  • -CS, --client-secret <clientSecret>: секрет клиента Azure
  • -n, --app-name <appName>: имя приложения статического веб-приложения Azure
  • -cc, --clear-credentials: очистить сохраненные учетные данные перед входом (по умолчанию: false)
  • -u, --use-keychain: включите использование собственной цепочки ключей операционной системы для постоянных учетных данных (по умолчанию: true)
  • -nu, --no-use-keychain: отключение использования собственной цепочки ключей операционной системы
  • -h, --help: отображение справки по команде

Использование

Разверните с помощью токена развертывания.

swa deploy ./dist/ --api-location ./api/ --deployment-token <TOKEN>

Разверните с помощью токена развертывания из переменных среды.

SWA_CLI_DEPLOYMENT_TOKEN=123 swa deploy ./dist/ --api-location ./api/

Развертывание с помощью swa-cli.config.json файла

swa deploy
swa deploy myconfig

Напечатайте маркер развертывания.

swa deploy --print-token

Развертывание в определенной среде.

swa deploy --env production

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