Visão geral
Este tutorial mostra como containerizar um aplicação Frasco que usa o MongoDB Atlas e implantá-lo nos Aplicativos de Container do Azure. O Azure Container Apps é uma plataforma sem servidor que simplifica a implantação e o gerenciamento de aplicativos em contêiner sem a necessidade de gerenciar a infraestrutura.
Tutorial
Este tutorial mostra como concluir as seguintes tarefas:
Verifique os pré-requisitos
Configurar o aplicação Frasco
Criar um Dockerfile
Criar um Registro de Contêiner do Azure
Construa e envie a imagem do Docker
Criar e distribuir a aplicação Azure Container
Verifique os pré-requisitos
Antes de começar, cumpra os seguintes pré-requisitos:
Criar um aplicação Spark e MongoDB a partir do repositório do GitHub
Instalar o Docker Desktop
Instale o Microsoft Azure
Instale o Python 3.9 ou posterior
Instale o Postman Desktop ou outra ferramenta de teste de API
Este tutorial também requer uma conta do MongoDB Atlas com um cluster ativo e uma assinatura do Microsoft Azure.
Configurar o aplicação Frasco
Clone o repositório de aplicação Flusk executando o seguinte comando:
git clone https://github.com/mongodb-developer/atlas-flask-azure-demo
Utilizando a interface do usuário do Atlas , crie uma coleção books em um banco de dados denominado bookshelf. Crie alguns documentos na coleção, usando os seguintes documentos de amostra como guia:
{ "book": "The Great Gatsby", "pages": 180, }, { "book": "Slaughterhouse-Five", "pages": 215, }, { "book": "If Beale Street Could Talk", "pages": 197, }
Para iniciar o aplicação, navegue até seu diretório de trabalho e execute o seguinte comando:
flask run
Use seu navegador ou ferramenta de teste de API para acessar o endpoint /books e recuperar os documentos criados.
Criar um Dockerfile
Um Dockerfile contém comandos para construir uma imagem Docker. Crie um arquivo denominado Dockerfile em seu diretório de trabalho e adicione o seguinte conteúdo a ele:
FROM python:3.9-slim-buster WORKDIR /azurecontainerappsdemo COPY ./config/requirements.txt /azurecontainerappsdemo/ RUN pip install -r requirements.txt COPY . /azurecontainerappsdemo/ ENV FLASK_APP=app.py EXPOSE 5000 CMD ["flask", "run", "--host=0.0.0.0"]
Mova seu arquivo requirements.txt para uma nova pasta chamada config para garantir que o Docker possa localizá-lo e copiá-lo durante o processo de construção.
Este Dockerfile executa as seguintes tarefas:
Utiliza
python:3.9-slim-bustercomo a imagem baseDefine o diretório de trabalho
Copia e instala dependências do Python
Copia arquivos do aplicação
Expõe a porta 5000
Configura o Frasco para aceitar conexões de qualquer interface de rede
Adicione o seguinte código na parte inferior do seu arquivo app.py para garantir que o Spark seja executado em todas as interfaces de rede:
if __name__ == '__main__': app.run(host='0.0.0.0', debug=True)
Você pode verificar se sua imagem do Docker funciona localmente antes de implantar no Azure. Construa a imagem executando o seguinte comando:
docker build --tag azurecontainerappsdemo .
Em seguida, execute o container com sua string de conexão do MongoDB executando o seguinte comando:
docker run -d -p 5000:5000 -e "CONNECTION_STRING=<MONGODB_ATLAS_URI_STRING_HERE>" azurecontainerappsdemo
Após o container estar em execução, acesse o aplicação em http://localhost:5000 no seu navegador.
Criar um Registro de Contêiner do Azure
Inicie sessão no portal do Azure e navegue até ao serviço de Registo de Container. Clique em Create e especifique as seguintes configurações para seu registro:
Grupo de Recursos: O nome do seu grupo de recursos
Nome do registro: serve como sua URL de login
Localização: o local do seu registro
Observação
Você deve usar os mesmos valores de Grupo de recursos e Localização ao criar seu aplicativo de container.
Clique em Review and Create.
Após a conclusão da implantação, abra o código do Visual Studio. Certifique-se de instalar a extensão Docker.
Navegue até Registries, entre na sua conta do Azure e conecte seu registro.
Entre no seu Registro de Contêiner do Azure executando o seguinte comando:
docker login <azure registry url>
Dica
Você pode encontrar seu nome de usuário e senha na seção Access Keys do seu Registro de Contêiner. Habilite Admin Access para visualizar as credenciais.
Importante
Se você usa Windows, clique com o botão direito do mouse para colar as credenciais no terminal e evitar erros.
Construa e envie a imagem do Docker
Conclua as etapas a seguir para criar sua imagem do Docker e enviá-la por push para o Registro de Contêineres do Azure. Selecione a aba que corresponde ao seu sistema operacional e arquitetura:
Instale o Buildx executando o seguinte comando:
docker buildx install
Habilite o Buildx executando o seguinte comando:
docker buildx create --use
Construa a imagem para a plataforma linux/amd64 executando o seguinte comando:
docker buildx build --platform linux/amd64 --t <azure registry url>/<image name>:<image tag> --output type=docker .
Envie a imagem para seu Registro de Contêiner do Azure executando o seguinte comando:
docker push <azure registry url>/<image name>:<image tag>
Construa a imagem executando o seguinte comando:
docker build --t <azure registry url>/<image name>:<image tag> --output type=docker .
Envie a imagem executando o seguinte comando:
docker push <azure registry url>/<image name>:<image tag>
Construa a imagem executando o seguinte comando:
docker build --t <azure registry url>/<image name>:<image tag> .
Envie a imagem executando o seguinte comando:
docker push <image name>:<image tag>
Para verificar se o push foi bem-sucedido, navegue até o Registro de Contêineres no portal do Azure e clique em Repositories para visualizar sua imagem.
Criar e distribuir a aplicação Azure Container
Navegue até o serviço de aplicativos de contêiner no portal do Azure e clique em Create.
Na seção Basics, defina as seguintes configurações para seu aplicativo de container:
Assinatura: Sua assinatura do Azure
Grupo de recursos: o mesmo grupo de recursos que você usou para o Registro de Contêiner
Nome do aplicativo no container
Região: a mesma região usada para o Registro de Contêiner
Importante
Se este é seu primeiro aplicativo de contêiner, crie um ambiente ao criar o aplicativo. Um ambiente de aplicação em container cria um limite seguro para aplicações em container na mesma rede virtual.
Defina as seguintes configurações na seção App Settings :
Desmarcar Use quickstart image
Selecione Azure Container Registry como fonte de imagem
Insira suas informações de registro, imagem e tag
Adicione sua string de conexão do MongoDB Atlas como uma variável de ambiente CONNECTION_STRING chamada.
Habilite a entrada e defina as seguintes configurações de entrada:
Tráfego de entrada: aceitando tráfego de qualquer lugar
Tipo de entrada: HTTP
Transporte: Auto
Conexões inseguras: permitidas
Porta de destino: 5000
Clique em Review and Create. Após a conclusão da implantação, clique em Go to Resource e, em seguida, clique em Application URL para acessar seu aplicação implantado.
Anexe /books à URL para visualizar os livros que você adicionou anteriormente do seu banco de dados MongoDB Atlas .
Recursos adicionais
Para visualizar o código completo deste tutorial, consulte o repositório azurecontainerappdemo no GitHub.
Para saber mais sobre os aplicativos de container do Azure, consulte a documentação dos aplicativos de container do Azure no site da Microsoft.