Быстрый старт: Развертывание экземпляра контейнера в Azure с помощью шаблона ARM

Используйте экземпляры контейнеров Azure для запуска бессерверных контейнеров Docker в Azure с простотой и скоростью. Развертывайте приложение в экземпляре контейнера по требованию, когда вам не нужна полнофункциональная платформа оркестрации контейнеров, такая как Azure Kubernetes Service. В этом кратком руководстве вы используете шаблон Azure Resource Manager (шаблон ARM) для развертывания изолированного контейнера Docker и сделать его веб-приложение доступным с общедоступным IP-адресом.

Шаблон Azure Resource Manager — это файл нотации объектов JavaScript (JSON), который определяет инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. Вы описываете предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.

Если среда соответствует предварительным требованиям и вы знакомы с использованием шаблонов ARM, нажмите кнопку Развертывание в Azure. На портале Azure откроется шаблон.

Кнопка для развертывания шаблона Resource Manager в Azure.

Предпосылки

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Проверьте шаблон

Шаблон, используемый в этом кратком руководстве, взят из шаблонов быстрого запуска Azure.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.37.4.10188",
      "templateHash": "7099805986652764357"
    }
  },
  "parameters": {
    "name": {
      "type": "string",
      "defaultValue": "acilinuxpublicipcontainergroup",
      "metadata": {
        "description": "Name for the container group"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "image": {
      "type": "string",
      "defaultValue": "mcr.microsoft.com/azuredocs/aci-helloworld",
      "metadata": {
        "description": "Container image to deploy. Should be of the form repoName/imagename:tag for images stored in public Docker Hub, or a fully qualified URI for other registries. Images from private registries require additional registry credentials."
      }
    },
    "port": {
      "type": "int",
      "defaultValue": 80,
      "metadata": {
        "description": "Port to open on the container and the public IP address."
      }
    },
    "cpuCores": {
      "type": "int",
      "defaultValue": 1,
      "metadata": {
        "description": "The number of CPU cores to allocate to the container."
      }
    },
    "memoryInGb": {
      "type": "int",
      "defaultValue": 2,
      "metadata": {
        "description": "The amount of memory to allocate to the container in gigabytes."
      }
    },
    "restartPolicy": {
      "type": "string",
      "defaultValue": "Always",
      "allowedValues": [
        "Always",
        "Never",
        "OnFailure"
      ],
      "metadata": {
        "description": "The behavior of Azure runtime if container has stopped."
      }
    },
    "zone": {
      "type": "string",
      "nullable": true,
      "metadata": {
        "description": "The availability zone to deploy the container group into. If not specified, the container group is nonzonal and might be deployed into any zone."
      }
    }
  },
  "resources": {
    "containerGroup": {
      "type": "Microsoft.ContainerInstance/containerGroups",
      "apiVersion": "2023-05-01",
      "name": "[parameters('name')]",
      "location": "[parameters('location')]",
      "properties": {
        "containers": [
          {
            "name": "[parameters('name')]",
            "properties": {
              "image": "[parameters('image')]",
              "ports": [
                {
                  "port": "[parameters('port')]",
                  "protocol": "TCP"
                }
              ],
              "resources": {
                "requests": {
                  "cpu": "[parameters('cpuCores')]",
                  "memoryInGB": "[parameters('memoryInGb')]"
                }
              }
            }
          }
        ],
        "osType": "Linux",
        "restartPolicy": "[parameters('restartPolicy')]",
        "ipAddress": {
          "type": "Public",
          "ports": [
            {
              "port": "[parameters('port')]",
              "protocol": "TCP"
            }
          ]
        }
      },
      "zones": "[if(not(equals(parameters('zone'), null())), createArray(parameters('zone')), null())]"
    }
  },
  "outputs": {
    "name": {
      "type": "string",
      "value": "[parameters('name')]"
    },
    "resourceGroupName": {
      "type": "string",
      "value": "[resourceGroup().name]"
    },
    "resourceId": {
      "type": "string",
      "value": "[resourceId('Microsoft.ContainerInstance/containerGroups', parameters('name'))]"
    },
    "containerIPv4Address": {
      "type": "string",
      "value": "[reference('containerGroup').ipAddress.ip]"
    },
    "location": {
      "type": "string",
      "value": "[parameters('location')]"
    }
  }
}

Следующий ресурс определен в шаблоне:

  • Microsoft.ContainerInstance/containerGroups: создайте группу контейнеров Azure. Этот шаблон определяет группу, состоящую из одного экземпляра контейнера.

Дополнительные примеры шаблонов экземпляров контейнеров Azure можно найти в коллекции шаблонов быстрого запуска.

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

Это важно

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

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

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

    Кнопка для развертывания шаблона Resource Manager в Azure.

  2. Введите или выберите следующие значения.

    • Подписка. Выберите нужную подписку Azure.
    • Группа ресурсов. Щелкните Создать, введите уникальное имя новой группы ресурсов и щелкните ОК.
    • Расположение: выберите расположение для группы ресурсов. Пример: центральная часть США.
    • Имя: примите созданное имя для экземпляра или введите имя.
    • Изображение: примите имя образа по умолчанию. Этот пример образа Linux содержит небольшое веб-приложение Node.js, которое обслуживает статические HTML-страницы.

    Примите значения по умолчанию для оставшихся свойств.

    Ознакомьтесь с условиями. Если вы согласны, выберите я согласен с условиями, указанными выше.

    Свойства шаблона

  3. После создания экземпляра, которое прошло успешно, вы получите уведомление.

    Уведомление на портале

Для развертывания шаблона используется портал Azure. Кроме портала Azure, вы можете использовать Azure PowerShell, Azure CLI и REST API. Дополнительные сведения о других методах развертывания см. в статье о развертывании с использованием шаблонов.

Проверка развернутых ресурсов

Используйте портал Azure или средство, например Azure CLI , для просмотра свойств экземпляра контейнера.

  1. На портале найдите Экземпляры контейнера и выберите экземпляр контейнера, который вы создали.

  2. На странице обзора обратите внимание на состояние экземпляра и его IP-адрес.

    Общие сведения об экземпляре

  3. После того как его статус станет Запущено, перейдите к IP-адресу в браузере.

    Приложение, развернутое с помощью экземпляров контейнеров Azure, просматриваемое в браузере

Просмотр журналов контейнеров

Просмотр журналов для экземпляра контейнера помогает устранять неполадки с этим контейнером или запущенными в нем приложениями.

Чтобы просмотреть журналы контейнера, в разделе Параметры щелкните Контейнеры>Журналы. Вы увидите запрос HTTP GET, созданный при просмотре приложения в браузере.

Журналы контейнеров на портале Azure

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

После завершения работы с контейнером на странице "Обзор " для экземпляра контейнера нажмите кнопку "Удалить". При появлении запроса подтвердите удаление.

Дальнейшие действия

В этом кратком руководстве вы создали контейнер Azure из общедоступного образа Microsoft. Если вы хотите создать образ контейнера и развернуть его из частного реестра контейнеров Azure, ознакомьтесь с руководством по Azure Container Instances.

Пошаговые инструкции по созданию шаблона см. в следующей статье: