Como especificar dependências

As dependências dos aplicativos Python são declaradas em um arquivo requirements.txt. Exemplo:

Flask==MAJOR.MINOR.PATCH
google-cloud-storage

Substitua MAJOR, MINOR e PATCH pelos números de versão do Flask desejados.

Ao fazer a implantação no App Engine, as dependências especificadas no arquivo requirements.txt são instaladas automaticamente com o aplicativo implantado. É possível usar qualquer pacote Python compatível com Linux, incluindo pacotes que exijam extensões nativas (C).

Por padrão, o App Engine armazena em cache as dependências buscadas para reduzir o tempo de criação. Para instalar uma versão sem cache da dependência, use o comando:

gcloud app deploy --no-cache

Dependências particulares com o Artifact Registry

Se você precisar hospedar dependências privadas para o aplicativo Python, use um repositório Python do Artifact Registry. Ao implantar o aplicativo, o processo de compilação gera automaticamente credenciais do Artifact Registry para a conta de serviço do Cloud Build. Portanto, não será necessário gerar outras credenciais. Para incluir dependências particulares, adicione o URL do Artifact Registry e os pacotes relevantes no arquivo requirements.txt.

Para especificar vários repositórios, use um repositório virtual do Artifact Registry para controlar com segurança a ordem de pesquisa do pip nos seus repositórios. Por exemplo:

--index-url REPOSITORY_URL
sampleproject
Flask==MAJOR.MINOR.PATCH
google-cloud-storage

Substitua REPOSITORY_URL pelo endereço do registro, como:

https://REGION_ID-python.pkg.dev/PROJECT_ID/REPOSITORY_NAME/simple

Dependências particulares com outros repositórios

As dependências são instaladas em um ambiente Cloud Build, que não fornece acesso a chaves SSH. Pacotes hospedados em repositórios que exigem autenticação baseada em SSH precisam ser copiados para o diretório do seu projeto e carregados junto com o código do seu projeto usando o gerenciador de pacotes pip.

Para usar dependências privadas:

  1. Execute pip install -t lib my_module para copiar as dependências para uma pasta local chamada lib.

  2. Adicione um arquivo __init__.py vazio ao diretório lib para transformá-lo em um módulo.

  3. Importe o módulo no seu app. Por exemplo:

    import lib.my_module
    

Como instalar dependências localmente

Durante o desenvolvimento e o teste local do aplicativo, recomendamos que você use o venv para isolar as dependências do aplicativo dos pacotes do sistema. Isso também garante que as dependências terão a mesma versão na máquina local e no aplicativo implantado.

Para usar o venv na instalação de dependências, conclua as etapas a seguir:

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

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

Isso garante que, ao executar o aplicativo localmente, apenas as dependências declaradas no arquivo requirements.txt estejam disponíveis. As dependências instaladas pelo App Engine durante a implantação são baseadas no conteúdo do arquivo requirements.txt, não no conteúdo do diretório env/.

Como instalar um framework da Web

Você precisará usar uma estrutura da Web para permitir que seu aplicativo disponibilize solicitações da Web. É possível usar qualquer biblioteca da Web do Python, inclusive estas:

Para usar um framework web específico, basta adicioná-lo a seu requirements.txt:

Flask==MAJOR.MINOR.PATCH

Como instalar um servidor WSGI

Algumas bibliotecas da Web têm servidores WSGI integrados. Porém, poucos deles são indicados para disponibilizar o tráfego de produção. A maioria dos aplicativos da Web usa um servidor WSGI independente, como Gunicorn, uWSGI ou Waitress. Para mais informações sobre como instalar, configurar e usar um servidor WSGI, consulte inicialização do aplicativo.

Como instalar as bibliotecas de cliente do Cloud

As bibliotecas de cliente do Cloud para Python dão acesso a serviços do Google Cloud que reduz significativamente o código boilerplate que você precisa escrever. A biblioteca fornece abstrações detalhadas de APIs para facilitar a compreensão. Ela usa as expressões do Python, funciona bem com a biblioteca padrão e se integra melhor à sua base de código.

Por exemplo, é possível instalar a biblioteca de cliente correspondente do Python no Datastore ou Cloud Storage para integrar esses serviços ao app.

Para instalar a biblioteca de cliente do Python para o Cloud Datastore, faça o seguinte:

  1. Instale a biblioteca de cliente localmente usando pip:

    pip install google-cloud-datastore

  2. Configure a autenticação. É possível configurar as bibliotecas de cliente do Cloud para Python para processar autenticações automaticamente. A biblioteca de cliente gerencia autenticações automaticamente de modo local e também usando a Google Cloud CLI.

    gcloud auth login
    
  3. Use a referência das bibliotecas de cliente do Datastore para implementar o suporte ao serviço do Cloud Datastore no seu app.

Consulte uma lista completa de todas as bibliotecas de cliente do Cloud para Python para os serviços suportados do Google Cloud em APIs e bibliotecas do Python.