Руководство по публикации статических веб-приложений Azure с помощью шаблона ARM

В этой статье показано, как развернуть статические веб-приложения Azure с помощью шаблона Azure Resource Manager (шаблона ARM).

Из этого руководства вы узнаете, как:

  • Создание шаблона ARM для статических веб-приложений Azure
  • Развертывание шаблона ARM для создания экземпляра статического веб-приложения Azure

Предпосылки

Создание личного маркера доступа GitHub

Одним из параметров шаблона ARM является repositoryTokenто, что позволяет процессу развертывания ARM взаимодействовать с репозиторием GitHub, в котором хранится статический исходный код сайта.

  1. В профиле учетной записи GitHub (в правом верхнем углу) выберите "Параметры".

  2. Выберите параметры разработчика.

  3. Выберите личные маркеры доступа.

  4. Выберите "Создать новый маркер".

  5. Укажите имя этого маркера в поле "Имя ", например myfirstswadeployment.

  6. Выберите срок действия маркера, значение по умолчанию — 30 дней.

  7. Укажите следующие области: репозиторий, рабочий процесс, запись:пакеты

  8. Щелкните Создать маркер.

  9. Скопируйте значение маркера и вставьте его в текстовый редактор для последующего использования.

Это важно

Скопируйте этот маркер и сохраните его в безопасном месте. Попробуйте сохранить этот токен в Azure Key Vault и получить доступ к нему в шаблоне ARM.

Создание репозитория GitHub

В этой статье для простоты используются шаблон из репозитория GitHub. Шаблон содержит начальное приложение, используемое для развертывания с помощью статических веб-приложений Azure.

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

    1. https://github.com/staticwebdev/vanilla-basic/generate
  2. Присвойте репозиторию имя myfirstswadeployment

    Замечание

    Статические веб-приложения Azure требуют по крайней мере одного HTML-файла для создания веб-приложения. Репозиторий, создаваемый на этом шаге, включает один index.html файл.

  3. Щелкните Create repository (Создать репозиторий).

    Снимок экрана: кнопка

Создание шаблона ARM

При соблюдении необходимых условий, следующим шагом является определение файла шаблона развертывания ARM.

  1. Создайте новую папку для хранения шаблонов ARM.

  2. Создайте файл и назовите его azuredeploy.json.

  3. Вставьте следующий фрагмент шаблона ARM в azuredeploy.json.

        {
            "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
            "contentVersion": "1.0.0.0",
            "parameters": {
                "name": {
                    "type": "string"
                },
                "location": {
                    "type": "string"
                },
                "sku": {
                    "type": "string"
                },
                "skucode": {
                    "type": "string"
                },
                "repositoryUrl": {
                    "type": "string"
                },
                "branch": {
                    "type": "string"
                },
                "repositoryToken": {
                    "type": "securestring"
                },
                "appLocation": {
                    "type": "string"
                },
                "apiLocation": {
                    "type": "string"
                },
                "appArtifactLocation": {
                    "type": "string"
                },
                "resourceTags": {
                    "type": "object"
                },
                "appSettings": {
                    "type": "object"
                }
            },
            "resources": [
                {
                    "apiVersion": "2021-01-15",
                    "name": "[parameters('name')]",
                    "type": "Microsoft.Web/staticSites",
                    "location": "[parameters('location')]",
                    "tags": "[parameters('resourceTags')]",
                    "properties": {
                        "repositoryUrl": "[parameters('repositoryUrl')]",
                        "branch": "[parameters('branch')]",
                        "repositoryToken": "[parameters('repositoryToken')]",
                        "buildProperties": {
                            "appLocation": "[parameters('appLocation')]",
                            "apiLocation": "[parameters('apiLocation')]",
                            "appArtifactLocation": "[parameters('appArtifactLocation')]"
                        }
                    },
                    "sku": {
                        "Tier": "[parameters('sku')]",
                        "Name": "[parameters('skuCode')]"
                    },
                    "resources":[
                        {
                            "apiVersion": "2021-01-15",
                            "name": "appsettings",
                            "type": "config",
                            "location": "[parameters('location')]",
                            "properties": "[parameters('appSettings')]",
                            "dependsOn": [
                                "[resourceId('Microsoft.Web/staticSites', parameters('name'))]"
                            ]
                        }
                    ]
                }
            ]
        }
    
    
  4. Создайте файл и назовите его azuredeploy.parameters.json.

  5. Вставьте следующий фрагмент шаблона ARM в azuredeploy.parameters.json.

        {
            "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
            "contentVersion": "1.0.0.0",
            "parameters": {
                "name": {
                    "value": "myfirstswadeployment"
                },
                "location": { 
                    "value": "Central US"
                },   
                "sku": {
                    "value": "Free"
                },
                "skucode": {
                    "value": "Free"
                },
                "repositoryUrl": {
                    "value": "https://github.com/<YOUR-GITHUB-USER-NAME>/<YOUR-GITHUB-REPOSITORY-NAME>"
                },
                "branch": {
                    "value": "main"
                },
                "repositoryToken": {
                    "value": "<YOUR-GITHUB-PAT>" 
                },
                "appLocation": {
                    "value": "/"
                },
                "apiLocation": {
                    "value": ""
                },
                "appArtifactLocation": {
                    "value": "src"
                },
                "resourceTags": {
                    "value": {
                        "Environment": "Development",
                        "Project": "Testing SWA with ARM",
                        "ApplicationName": "myfirstswadeployment"
                    }
                },
                "appSettings": {
                    "value": {
                        "MY_APP_SETTING1": "value 1",
                        "MY_APP_SETTING2": "value 2"
                    }
                }
            }
        }
    
  6. Обновите следующие параметры.

    Параметр Ожидаемое значение
    repositoryUrl Укажите URL-адрес репозитория GitHub статических веб-приложений.
    repositoryToken Укажите токен GitHub PAT.
  7. Сохраните обновления перед запуском развертывания на следующем шаге.

Запуск развертывания

Для развертывания шаблона вам потребуется Azure CLI или Azure PowerShell.

Вход в Azure

Чтобы развернуть шаблон, войдите в Azure CLI или Azure PowerShell.

az login

Если у вас несколько подписок Azure, выберите ту, которую хотите использовать. Замените <SUBSCRIPTION-ID> на информацию о вашей подписке.

az account set --subscription <SUBSCRIPTION-ID>

Создайте группу ресурсов

При развертывании шаблона укажите группу ресурсов, содержащую связанные ресурсы. Перед выполнением команды развертывания создайте группу ресурсов с помощью Azure CLI или Azure PowerShell.

Замечание

Примеры интерфейса командной строки в этой статье написаны для оболочки Bash.

resourceGroupName="myfirstswadeployRG"

az group create \
  --name $resourceGroupName \
  --location "Central US"

Развертывание шаблона

Используйте один из этих вариантов развертывания для развертывания шаблона.


az deployment group create \
  --name DeployLocalTemplate \
  --resource-group $resourceGroupName \
  --template-file <PATH-TO-AZUREDEPLOY.JSON> \
  --parameters <PATH-TO-AZUREDEPLOY.PARAMETERS.JSON> \
  --verbose

Дополнительные сведения о развертывании шаблонов с помощью Azure CLI см. в статье "Развертывание ресурсов с помощью шаблонов ARM и Azure CLI".

Просмотр веб-сайта

Существует два аспекта развертывания статического приложения. Первый подготавливает базовые ресурсы Azure, составляющие приложение. Второй — это рабочий процесс GitHub Actions, который выполняет сборку и публикацию приложения.

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

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

Окно обзора

  1. Щелкнув баннер с надписью щелкните здесь, чтобы проверить статус выполнения ваших GitHub Actions, вы перейдете к GitHub Actions, запущенным в вашем репозитории. После завершения задания развертывания можно перейти на веб-сайт с помощью созданного URL-адреса.

  2. После завершения рабочего процесса GitHub Actions можно щелкнуть ссылку URL-адреса, чтобы открыть веб-сайт на новой вкладке.

Очистите ресурсы

Очистите развернутые ресурсы, удалив группу ресурсов.

  1. На портале Azure выберите группу ресурсов в меню слева.
  2. Введите имя группы ресурсов в поле "Фильтр по имени ".
  3. Выберите имя группы ресурсов.
  4. Выберите "Удалить группу ресурсов " в верхнем меню.

Дальнейшие шаги