As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configurar seu ambiente de desenvolvimento Python para o Elastic Beanstalk
Este tópico fornece instruções para configurar um ambiente de desenvolvimento Python para testar sua aplicação localmente antes de implantá-la no AWS Elastic Beanstalk. Também faz referência a sites com instruções de instalação para ferramentas úteis.
Para ver as etapas de configuração comuns e as ferramentas que se aplicam a todas as linguagens, consulte Configurar sua máquina de desenvolvimento para uso com o Elastic Beanstalk.
Para seguir os procedimentos neste manual, você precisa de um terminal de linha de comando ou de um shell para executar os comandos. Nas listagens, os comandos são mostrados precedidos por um símbolo de prompt ($) e pelo nome do diretório atual, quando apropriado.
~/eb-project$ this is a command
this is output
No Linux e no macOS, você pode usar seu gerenciador de pacotes e de shell preferido. No Windows, você pode instalar o subsistema Windows para Linux
Para ver as etapas de configuração comuns e as ferramentas que se aplicam a todas as linguagens, consulte Configurar sua máquina de desenvolvimento para uso com o Elastic Beanstalk.
Pré-requisitos
A lista a seguir fornece os pré-requisitos comuns para trabalhar com o Elastic Beanstalk e suas aplicações Python:
-
Linguagem Python: instale a versão da linguagem Python que está incluída na versão da plataforma Python do Elastic Beanstalk escolhida. Para obter uma lista de nossas versões de linguagem Python compatíveis, consulte Plataformas Python compatíveis, no guia de Plataformas do AWS Elastic Beanstalk. Se você ainda não tiver o Python configurado na máquina de desenvolvimento, consulte a página de downloads do Python
no site do Python. -
Utilitário
pip
: o utilitáriopip
é o instalador de pacotes do Python. Ele instala e lista as dependências do seu projeto, para que o Elastic Beanstalk saiba como configurar o ambiente da aplicação. Para obter mais informações sobrepip
, consulte a página do pipno site pip.pypa.io. -
(Opcional) A interface de linha de comando do Elastic Beanstalk (EB CLI): a EB CLI pode empacotar sua aplicação com os arquivos de implantação necessários. Ela também pode criar um ambiente Elastic Beanstalk e implantar sua aplicação nele. Você também pode fazer implantações por meio do console do Elastic Beanstalk e, portanto, a EB CLI não é estritamente necessária.
-
Uma instalação funcional do
SSH
: você pode se conectar a instâncias em execução com o protocolo SSH para examinar ou depurar uma implementação. -
Pacote
virtualenv
: essa ferramentavirtualenv
cria um ambiente de desenvolvimento e teste para sua aplicação. O Elastic Beanstalk pode replicar esse ambiente sem instalar pacotes extras que não são necessários para a aplicação. Para obter mais informações, consulte o site virtualenv. Depois de instalar o Python, você pode instalar o pacote virtualenv
com o seguinte comando:$
pip install virtualenv
Usar um ambiente virtual
Quando você tiver os pré-requisitos instalados, configure um ambiente virtual com virtualenv
para instalar as dependências de seu aplicativo. Usando um ambiente virtual, você pode distinguir exatamente quais pacotes são necessários ao seu aplicativo para que eles sejam instalados nas instâncias do EC2 que executam seu aplicativo.
Para configurar um ambiente virtual
-
Abra uma janela de linha de comando e digite:
$
virtualenv /tmp/
eb_python_app
Substitua
eb_python_app
por um nome que faça sentido para a aplicação (usar o nome da aplicação é uma boa ideia). O comandovirtualenv
cria um ambiente virtual para você no diretório especificado e imprime os resultados de suas ações:Running virtualenv with interpreter /usr/bin/python New python executable in /tmp/eb_python_app/bin/python3.7 Also creating executable in /tmp/eb_python_app/bin/python Installing setuptools, pip...done.
-
Quando seu ambiente virtual estiver pronto, inicie-o executando o script
activate
localizado no diretóriobin
do ambiente. Por exemplo, para iniciar o ambiente eb_python_app criado na etapa anterior, você digita:$
source /tmp/eb_python_app/bin/activate
O ambiente virtual imprime o nome dele (por exemplo:
(eb_python_app)
) no início de cada prompt de comando, lembrando que você está em um ambiente Python virtual. -
Para parar de usar seu ambiente virtual e voltar ao interpretador Python padrão do sistema com todas as bibliotecas instaladas, execute o comando
deactivate
.(eb_python_app) $
deactivate
nota
Após a criação, você poderá reiniciar o ambiente virtual a qualquer momento executando o script activate
novamente.
Configurar um projeto Python para o Elastic Beanstalk
É possível usar a CLI do Elastic Beanstalk para preparar as aplicações Python para implantação com o Elastic Beanstalk.
Como configurar uma aplicação Python para implantação com o Elastic Beanstalk
-
Em seu ambiente virtual, volte para a parte superior da árvore de diretórios do projeto (
python_eb_app
) e digite:pip freeze >requirements.txt
Este comando copia os nomes e versões dos pacotes que estão instalados em seu ambiente virtual para
requirements.txt
, Por exemplo, se o pacote PyYAML, versão 3.11 estiver instalado em seu ambiente virtual, o arquivo conterá a linha:PyYAML==3.11
Dessa forma, o Elastic Beanstalk pode replicar o ambiente Python da aplicação usando os mesmos pacotes e as mesmas versões que você usou para desenvolver e testar a aplicação.
-
Configure o repositório da EB CLI com o comando eb init. Siga os prompts para escolher a região, a plataforma e outras opções. Para obter instruções detalhadas, consulte Gerenciar ambientes do Elastic Beanstalk com a CLI do EB.
Por padrão, o Elastic Beanstalk procura um arquivo chamado application.py
para iniciar a aplicação. Se ele não existir no projeto Python que você criou, alguns ajustes no ambiente do seu aplicativo serão necessários. Você também precisará definir variáveis de ambiente para que os módulos do aplicativo possam ser carregados. Consulte Usar a plataforma Python do Elastic Beanstalk Para mais informações.