Criar um aplicativo em Python no ambiente flexível do App Engine
ID da região
O REGION_ID
é um código abreviado que o Google atribui
com base na região que você selecionou ao criar o aplicativo. O código não
corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes
aos códigos de país e estado geralmente usados. Para apps criados após
fevereiro de 2020, o REGION_ID.r
está incluído nos
URLs do App Engine. Para apps existentes criados antes dessa data, o
ID da região é opcional no URL.
Saiba mais sobre IDs de região.
Neste guia de início rápido, você verá como criar e implantar um app que exibe uma
mensagem curta. Você pode
use o aplicativo de exemplo neste guia de início rápido para qualquer versão compatível do Python. Basta especificar a versão do ambiente de execução e o sistema operacional no seu arquivo
app.yaml
.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Pré-requisitos adicionais
Inicialize seu aplicativo do App Engine com o projeto e escolha a região:
gcloud app create --project=[YOUR_PROJECT_ID]
Quando solicitado, selecione a região em que você quer localizar o aplicativo do App Engine.
Instale os pré-requisitos a seguir:
Execute o seguinte comando para instalar o componente do gcloud que inclui a extensão do App Engine para Python:
gcloud components install app-engine-python
Prepare o ambiente para o desenvolvimento do Python. É recomendável ter a versão mais recente do Python,
pip
e outras ferramentas relacionadas instaladas em seu sistema. Para mais instruções, consulte o Guia de configuração do ambiente de desenvolvimento do Python.
Locais do App Engine
O App Engine é regional. Isso significa que a infraestrutura que executa os aplicativos está em uma determinada região que é gerenciada pelo Google para estar disponível de modo redundante em todas as zonas dessa região.
Atender aos requisitos de latência, disponibilidade ou durabilidade são os principais fatores para selecionar a região de execução dos aplicativos. Geralmente, é possível selecionar a região mais próxima dos usuários do aplicativo, mas considere os locais em que o App Engine está disponível, bem como os locais dos outros produtos e serviços do Google Cloud usados pelo aplicativo. O uso de serviços em vários locais pode afetar a latência e o preço do aplicativo.
Não é possível alterar a região de um aplicativo depois de defini-la.
Se você já criou um aplicativo do App Engine, será possível consultar a região dele com um dos seguintes procedimentos:
Execute o comando
gcloud app describe
.Abra o Painel do App Engine no console do Google Cloud. A região aparece perto do topo da página.
Baixar o app Hello World
Criamos um app Hello World para App Engine. Assim, é possível ter uma ideia de como implantar um app no Google Cloud.
Clone o repositório do app de amostra Hello World na máquina local.
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
Outra opção é fazer o download da amostra (em inglês) como um arquivo ZIP e extraí-lo.
Acesse o diretório que contém o código de amostra.
cd python-docs-samples/appengine/flexible/hello_world
Como executar o Hello World na máquina local
Para executar o app Hello World no seu computador:
Mac OS/Linux
- Crie um
ambiente Python isolado:
python3 -m venv env
source env/bin/activate
- Se você não estiver no diretório que contém o código de amostra, navegue
até o diretório que contém o código de amostra
hello_world
. Em seguida, instale as dependências:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
- Execute o aplicativo:
python main.py
- No navegador da Web, digite este endereço:
http://localhost:8080
Se você estiver usando o Cloud Shell, clique em Visualização da Web na barra de ferramentas e selecione Visualizar na porta 8080.
Windows
Use o PowerShell para executar os pacotes Python.
- Localize a instalação do PowerShell.
- Clique com o botão direito do mouse no atalho do PowerShell e inicie-o como administrador.
- Crie um
ambiente Python isolado.
python -m venv env
.\env\Scripts\activate
- Acesse o diretório do projeto e instale as dependências: Se você não estiver no diretório
que contém o código de amostra, navegue até o diretório que contém o
código de amostra
hello_world
. Em seguida, instale as dependências:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
- Execute o aplicativo:
python main.py
- No navegador da Web, digite este endereço:
http://localhost:8080
A mensagem Hello World do app de amostra é exibida na página. Na janela do terminal, pressione Ctrl+C para sair do servidor da Web.
Implante e execute o Hello World no App Engine
Para implantar o aplicativo no ambiente flexível do App Engine:-
Implemente o aplicativo Hello World executando o seguinte comando no diretório
hello_world
:gcloud app deploy
Saiba mais sobre sinalizações opcionais.
Sinalizações comuns do comando
gcloud
- Inclua a sinalização
--version
para especificar um ID exclusivo da versão do seu aplicativo. Quando a sinalização não é incluída, o ID é gerado automaticamente. Exemplo:--version [YOUR_VERSION_ID]
-
Inclua a sinalização
--project
para especificar um ID de projeto alternativo do Google Cloud para o que você inicializou como padrão na ferramentagcloud
. Exemplo:--project [YOUR_PROJECT_ID]
Exemplo:
gcloud app deploy --version pre-prod-5 --project my-sample-app
Para aprender a implantar o app pela linha de comando, consulte Como testar e implantar o app. Para uma lista de todas as sinalizações de comando, consulte a referência do
gcloud app deploy
. - Inclua a sinalização
-
Inicie o navegador para visualizar o aplicativo em
https://PROJECT_ID.REGION_ID.r.appspot.com
gcloud app browse
em quePROJECT_ID
representa o ID do projeto do Google Cloud.
Nesse momento, a página que exibe a mensagem "Hello World" é enviada por um servidor da Web executado em uma instância do App Engine.
Parabéns! Você implantou seu primeiro aplicativo do App Engine no ambiente flexível do App Engine.
Se você encontrar erros na implantação do app, verifique as dicas de solução de problemas.Confira as seções a seguir para informações sobre limpeza e links das próximas etapas.
Limpar
Para evitar cobranças, você pode excluir seu projeto do Google Cloud para interromper o faturamento de todos os recursos usados naquele projeto.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
A seguir
Conheça a plataforma inteira
Agora que você sabe como é desenvolver e implantar aplicativos do App Engine, explore o restante do Google Cloud. Você já tem a Google Cloud CLI instalada, o que oferece as ferramentas para interagir com produtos como Cloud SQL, Cloud Storage, Firestore e muitos outros.
Saiba mais sobre o ambiente flexível do App Engine
Listamos alguns tópicos para você continuar aprendendo sobre o App Engine:
Revisão do código do Hello World
O Hello World é o app mais simples possível do App Engine. Nele, há apenas um serviço e uma versão, e todo o código é armazenado no diretório raiz. Nesta seção, cada arquivo do app é descrito em detalhes.
main.py
O app Hello World é um app básico Flask de um arquivo.
app.yaml
O arquivo app.yaml
descreve a seguinte configuração para seu app:
- Define
env: flex
, indicando que o aplicativo usa o ambiente flexível do App Engine. Especifica o ambiente de execução usado pelo app. Se você excluir a configuração
runtime_version
, o App Engine usará a versão mais recente do Python como a versão padrão do seu aplicativo.O
entrypoint
informa ao App Engine como iniciar o app. Este app usagunicorn
para disponibilizar o app Python como uma alternativa ao servidor de desenvolvimento do Flask (usado na execução local). A variável$PORT
é definida pelo App Engine quando inicia o app. Para mais informações sobreentrypoint
, consulte Inicialização do app.
Para mais informações sobre como o ambiente de execução do Python funciona, consulte Ambiente de execução do Python.
Para aprender a projetar seu app para aproveitar mais as versões e os serviços, consulte Visão geral do App Engine.
Para mais detalhes sobre as configurações do App Engine, consulte Como configurar um app com o arquivo app.yaml.
requirements.txt
requirements.txt
e o gerenciador de pacotes Python
pip
declaram e instalam as dependências do aplicativo. No caso do Hello World,
são necessários o framework da Web Flask e
o servidor WSGI Gunicorn (link em inglês).
O requirements.txt
define as bibliotecas que serão instaladas localmente e durante a implantação no App Engine.