Guia de início rápido para 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. A inclusão de REGION_ID.r em URLs do App Engine é opcional para aplicativos atuais. Em breve, será necessária para todos os aplicativos novos.

Para garantir uma transição tranquila, estamos atualizando o App Engine gradativamente para usar IDs de região. Se ainda não tivermos atualizado seu projeto do Google Cloud, você não verá um ID da região para o app. Como o ID é opcional para os apps atuais, não é necessário atualizar os URLs ou fazer outras alterações quando o ID da região está disponível para eles.

Saiba mais sobre IDs de região.

Neste guia de início rápido, você aprenderá a criar um pequeno app do App Engine que exibe uma mensagem curta.


Para orientações passo a passo sobre esta tarefa diretamente no editor do Cloud Shell, clique em Orientações:

Orientações


As seções a seguir guiam você pelas mesmas etapas que você encontra clicando em Orientações.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. Ative a Cloud Build API.

    Ative a API

  5. Instale e inicialize o SDK do Cloud..
  6. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  7. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  8. Ative a Cloud Build API.

    Ative a API

  9. Instale e inicialize o SDK do Cloud..

Pré-requisitos adicionais

  1. 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.

  2. 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
      

  3. 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 app. 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 ver a região dele com um dos seguintes procedimentos:

Neste guia de início rápido, você verá a demonstração de um app simples em Python, gravado com o framework da Web Flask que pode ser implantado no App Engine. O Flask é usado nesta amostra, mas é possível usar qualquer framework da Web que atenda aos requisitos mencionados acima. Outros exemplos de framework são Django, Pyramid, Bottle e web.py (links em inglês).

Fazer o download do app Hello World

Criamos um app Hello World simples para Python. Assim, é possível ter uma ideia de como implantar um app no Google Cloud.

  1. 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.

  2. 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

  1. Crie um ambiente Python isolado:
    python3 -m venv env
    source env/bin/activate
  2. 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
  3. Execute o aplicativo:
    python main.py
  4. No navegador da Web, digite este endereço:
    http://localhost:8080

Windows

Use o PowerShell para executar os pacotes Python.

  1. Localize a instalação do PowerShell.
  2. Clique com o botão direito do mouse no atalho do PowerShell e inicie-o como administrador.
  3. Crie um ambiente Python isolado.
    python -m venv env
    .\env\Scripts\activate
  4. 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
  5. Execute o aplicativo:
    python main.py
  6. 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.

Implantar e executar o Hello World no App Engine

Para implantar o app Hello World no ambiente flexível do App Engine:

  1. Implemente o aplicativo Hello World executando o comando a seguir 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 Cloud para o que você inicializou como padrão na ferramenta gcloud. 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.

  2. Inicie o navegador para visualizar o aplicativo em https://PROJECT_ID.REGION_ID.r.appspot.com

    gcloud app browse
    em que PROJECT_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 app com Python no ambiente flexível do App Engine.

Se você encontrar erros na implantação do app, verifique as dicas de solução de problemas.

Veja as seções a seguir para informações sobre limpeza e links das próximas etapas.

Limpar

Exclua o projeto do Google Cloud para não ser cobrado pelos recursos usados nele.

  1. No Console do Cloud, acesse a página Gerenciar recursos:

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

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 o SDK do Cloud instalado, que oferece as ferramentas para interagir com produtos como Cloud SQL, Cloud Storage, Firestore e muito mais.

Para ver um passo a passo sobre como criar um aplicativo que usa toda a plataforma, em vez de somente o App Engine, confira nosso guia de início rápido sobre a criação do app Bookshelf.

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.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    """Return a friendly HTTP greeting."""
    return 'Hello World!'

if __name__ == '__main__':
    # This is used when running locally only. When deploying to Google App
    # Engine, a webserver process such as Gunicorn will serve the app.
    app.run(host='127.0.0.1', port=8080, debug=True)

app.yaml

O arquivo app.yaml descreve a configuração de implantação do app:

# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app

runtime_config:
  python_version: 3

# This sample incurs costs to run on the App Engine flexible environment.
# The settings below are to reduce costs during testing and are not appropriate
# for production use. For more information, see:
# https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml
manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

Neste caso, app.yaml especifica o ambiente de execução usado pelo app e configura o env: flex, que determina o uso do ambiente flexível.

O entrypoint informa ao App Engine como iniciar o app. Este app usa gunicorn 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 sobre entrypoint, consulte Inicialização do app.

Além disso, na seção opcional runtime_config, a python_version é definida como Python 3. Se python_version não for especificado, o Python 2 será usado por padrão. Também é possível especificar python_version: 2 explicitamente.

requirements.txt

requirements.txt e o gerenciador de pacotes Python pip são usados para declarar e instalar dependências de aplicativos. No caso do Hello World, são necessários o framework da Web Flask e o servidor WSGI Gunicorn (link em inglês).

Flask==2.0.1
gunicorn==20.1.0

O requirements.txt define as bibliotecas que serão instaladas localmente e durante a implantação no App Engine.