Compartilhar via


Início Rápido: Implantar uma instância de contêiner no Azure usando um modelo do ARM

Use as Instâncias de Contêiner do Azure para executar contêineres do Docker sem servidor no Azure com simplicidade e velocidade. Implante um aplicativo em uma instância de contêiner sob demanda quando você não precisar de uma plataforma de orquestração de contêiner completa, como o Serviço de Kubernetes do Azure. Neste início rápido, você usará um modelo do ARM (Azure Resource Manager) para implantar um contêiner isolado do Docker e disponibilizar seu aplicativo Web com um endereço IP público.

Um Modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo usa a sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Se seu ambiente atender aos pré-requisitos e você estiver familiarizado com o uso de modelos ARM, selecione o botão Implantar no Azure. O modelo é aberto no portal do Azure.

Botão para implantar o modelo do Resource Manager no Azure.

Pré-requisitos

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Examinar o modelo

O modelo usado neste início rápido é proveniente dos Modelos de Início Rápido do 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')]"
    }
  }
}

O recurso a seguir é definido no modelo:

Mais exemplos de modelo de Instâncias de Contêiner do Azure podem ser encontrados na galeria de modelos de início rápido.

Para implantar o grupo de contêineres em uma zona de disponibilidade específica, defina o valor do zone parâmetro para a zona de disponibilidade lógica na qual você deseja implantar.

Importante

As implantações zonais só estão disponíveis em regiões que dão suporte a zonas de disponibilidade. Para ver se sua região dá suporte a zonas de disponibilidade, consulte a Lista de Regiões do Azure.

Implantar o modelo

  1. Selecione a imagem a seguir para entrar no Azure e abrir um modelo. O modelo cria um registro e uma réplica em outro local.

    Botão para implantar o modelo do Resource Manager no Azure.

  2. Selecione ou insira os seguintes valores.

    • Assinatura: selecione uma assinatura do Azure.
    • Grupo de recursos: selecione Criar novo, insira um nome exclusivo para o grupo de recursos e selecione OK.
    • Local: selecione um local para o grupo de recursos. Exemplo: EUA Central.
    • Nome: aceite o nome gerado para a instância ou insira um nome.
    • Imagem: aceite o nome da imagem padrão. Esta imagem do Linux de exemplo empacota um pequeno aplicativo Web escrito em Node.js que serve a uma página HTML estática.

    Aceite valores padrão para as propriedades restantes.

    Examine os termos e condições. Se você concordar, selecione Concordo com os termos e condições indicados acima.

    Propriedades do modelo

  3. Depois que a instância for criada com êxito, você receberá uma notificação:

    Notificação do portal

O portal do Azure é usado para implantar o modelo. Além do portal do Azure, você pode usar o Azure PowerShell, a CLI do Azure e a API REST. Para saber mais sobre outros métodos de implantação, confira Implantar modelos.

Examinar os recursos implantados

Use o portal do Azure ou uma ferramenta como a CLI do Azure para examinar as propriedades da instância de contêiner.

  1. No portal, pesquise instâncias de contêiner e selecione a instância de contêiner que você criou.

  2. Na página Visão geral , observe o Status da instância e seu endereço IP.

    Visão geral da instância

  3. Quando seu status for Em execução, navegue até o endereço IP em seu navegador.

    Aplicativo implantado usando Instâncias de Contêiner do Azure exibido no navegador

Exibir logs de contêiner

Exibir os logs de uma instância de contêiner é útil ao solucionar problemas com seu contêiner ou com o aplicativo executado.

Para exibir os logs do contêiner, em Configurações, selecioneLogs> de Contêineres. Você deverá ver a solicitação HTTP GET gerada quando visualizar o aplicativo no navegador.

Logs de contêiner no portal do Azure

Limpar os recursos

Quando terminar de usar o contêiner, na página Visão geral da instância do contêiner, selecione Excluir. Quando receber a solicitação, confirme a exclusão.

Próximas etapas

Neste início rápido, você criou uma instância de contêiner do Azure a partir de uma imagem pública da Microsoft. Se você quiser criar uma imagem de contêiner e implantá-la a partir de um registro de contêiner privado do Azure, continue para o tutorial de Instâncias de Contêiner do Azure.

Para obter um tutorial passo a passo que orienta você pelo processo de criação de um modelo, consulte: