Os buildpacks permitem a configuração idiomática de linguagem por meio de variáveis de ambiente.
Como especificar a versão do Python
Por padrão, o buildpack do ambiente de execução Python usa a versão estável mais recente do interpretador de Python. Se seu aplicativo exigir uma versão específica, inclua um arquivo .python-version
no diretório raiz do aplicativo especificando essa versão.
3.9.9
Como usar o GOOGLE_PYTHON_VERSION
Também é possível especificar a versão do Python usando a variável de ambiente GOOGLE_PYTHON_VERSION
.
Se as duas configurações forem definidas, o valor GOOGLE_PYTHON_VERSION
terá prioridade sobre o arquivo .python-version
. Por padrão, quando o arquivo .python-version
e a variável de ambiente GOOGLE_PYTHON_VERSION
não são especificados, a versão LTS mais recente do Python é usada.
Para configurar o buildpack para usar o Python 3.10 ao implantar o app:
pack build sample-python --builder=gcr.io/buildpacks/builder \
--env GOOGLE_PYTHON_VERSION="3.10.x"
Também é possível usar um descritor de projeto project.toml
para codificar a variável de ambiente com os arquivos do projeto. Veja instruções sobre como criar o aplicativo com variáveis de ambiente.
Como especificar dependências com pip
O buildpack do Python permite o gerenciamento de dependências de aplicativos usando o pip. As dependências do aplicativo precisam ser declaradas em um arquivo requirements.txt
no diretório raiz.
O arquivo requirements.txt
contém uma linha por pacote. Cada linha contém o nome do pacote e, como opção, a versão solicitada. Para mais detalhes, consulte a referência do requirements.txt
.
A seguir, um exemplo de arquivo requirements.txt
:
requests==2.20.0 numpy
Como configurar o pip
É possível configurar o comportamento do pip usando variáveis de ambiente:
pack build sample-python --builder=gcr.io/buildpacks/builder \
--env PIP_DEFAULT_TIMEOUT='60'
Dependências particulares do Artifact Registry
Um repositório Python do Artifact Registry
pode hospedar dependências particulares para sua função Python. Ao criar um aplicativo no Cloud Build, o buildpack do Python gera automaticamente as credenciais do Artifact Registry para a conta de serviço do Cloud Build.
Só é preciso incluir o URL do Artifact Registry no requirements.txt
sem gerar outras credenciais. Exemplo:
--extra-index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage
Ponto de entrada do aplicativo
O buildpack do Python usa o Gunicorn (em inglês) como o servidor HTTP WSGI padrão para sua carga de trabalho. Os apps criados com o buildpack do Python
iniciam o processo gunicorn
com configurações padrão,
semelhante à execução:
gunicorn --bind :8080 main:app
Como personalizar o ponto de entrada do aplicativo
É possível substituir os padrões do Gunicorn e os padrões do
ponto de entrada e personalizar o comando de inicialização do aplicativo
usando Procfile
ou uma variável de ambiente.
Você pode criar um Procfile
com suas configurações personalizadas no diretório raiz.
Exemplo:
web: gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app
Como alternativa, é possível usar a variável de ambiente GOOGLE_ENTRYPOINT
com o comando pack
. Exemplo:
pack build sample-python \
--builder gcr.io/buildpacks/builder
--env "GOOGLE_ENTRYPOINT='gunicorn --bind :$PORT main:app'"
Variáveis de ambiente
O buildpack do Python é compatível com as variáveis de ambiente a seguir para personalizar o contêiner.
PIP_<key>
Consulte a documentação do pip.
Exemplo: PIP_DEFAULT_TIMEOUT=60
define --default-timeout=60
para comandos pip
.