Guia de início rápido: crie e implemente uma app Web Python (FastAPI) no Cloud Run
Saiba como usar um único comando para criar e implementar uma aplicação Web "Hello World" a partir de um exemplo de código para Google Cloud usar o Cloud Run.
Seguindo os passos neste início rápido, o Cloud Run cria automaticamente um Dockerfile para si quando implementa a partir do código-fonte. Para mais informações sobre como o buildpack do Python determina o ponto de entrada predefinido para implementações de origem do Cloud Run, consulte o artigo Crie uma aplicação Python.
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.
-
Verify that billing is enabled for your Google Cloud project.
-
Make sure that you have the following role or roles on the project: Cloud Run Admin, Cloud Run Source Developer, Logs Viewer
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Aceder ao IAM - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.
- Na lista Selecionar uma função, selecione uma função.
- Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
- Clique em Guardar.
Install the Google Cloud CLI.
-
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
-
Make sure that you have the following role or roles on the project: Cloud Run Admin, Cloud Run Source Developer, Logs Viewer
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Aceder ao IAM - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.
- Na lista Selecionar uma função, selecione uma função.
- Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
- Clique em Guardar.
Install the Google Cloud CLI.
-
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Para definir o projeto predefinido para o seu serviço do Cloud Run, execute o seguinte comando:
Substitua PROJECT_ID pelo seu Google Cloud ID do projeto.gcloud config set project PROJECT_ID
Se estiver ao abrigo de uma política da organização de restrição de domínio que restringe as invocações não autenticadas para o seu projeto, tem de aceder ao serviço implementado conforme descrito em Testar serviços privados.
Ative a API Cloud Run Admin e a API Cloud Build:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com
Depois de ativar a API Cloud Run Admin, a conta de serviço predefinida do Compute Engine é criada automaticamente.
-
Certifique-se de que tem a função Utilizador da conta de serviço concedida na identidade de serviço. Por predefinição, a identidade do serviço é a conta de serviço predefinida do Compute Engine.
Conceda as funções
Para conceder acesso ao recurso de identidade do serviço, use o comando
gcloud iam service-accounts add-iam-policy-binding
, substituindo as variáveis realçadas pelos valores adequados:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --member="PRINCIPAL" \ --role="roles/iam.serviceAccountUser"
Substitua o seguinte:
- SERVICE_ACCOUNT_EMAIL: o endereço de email da conta de serviço
que está a usar como identidade de serviço, como:
- A conta de serviço predefinida do Compute Engine:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
- Uma conta de serviço que criou:
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
- A conta de serviço predefinida do Compute Engine:
- PRINCIPAL: o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.
- SERVICE_ACCOUNT_EMAIL: o endereço de email da conta de serviço
que está a usar como identidade de serviço, como:
- Conceda à conta de serviço do Cloud Build a seguinte função do IAM.
Clique para ver as funções necessárias para a conta de serviço do Cloud Build
O Cloud Build usa automaticamente a conta de serviço predefinida do Compute Engine como a conta de serviço predefinida do Cloud Build para compilar o seu código-fonte e o recurso do Cloud Run, a menos que substitua este comportamento. Para que o Cloud Build compile as suas origens, peça ao administrador para conceder a função Cloud Run Builder (
roles/run.builder
) à conta de serviço predefinida do Compute Engine no seu projeto:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Substitua
PROJECT_NUMBER
pelo seu Google Cloud número do projeto ePROJECT_ID
pelo seu Google Cloud ID do projeto. Para ver instruções detalhadas sobre como encontrar o ID e o número do projeto, consulte o artigo Criar e gerir projetos.A concessão da função de criador do Cloud Run à conta de serviço predefinida do Compute Engine demora alguns minutos a propagar.
Escreva a aplicação de amostra
Para escrever uma aplicação em Python:
Crie um novo diretório com o nome
helloworld
e altere o diretório para este:mkdir helloworld cd helloworld
Crie um ficheiro com o nome
main.py
e cole o seguinte código no mesmo:from fastapi import FastAPI app = FastAPI() @app.get("/") def hello(name: str = "World"): """Return a friendly HTTP greeting.""" return { "message": f"Hello {name}!" }
Este código cria um serviço Web que responde a pedidos HTTP GET. O processamento HTTP é feito por uma framework Web FastAPI no contentor.
Crie um ficheiro com o nome
requirements.txt
e cole o seguinte código no mesmo:fastapi[standard]==0.116.1
Este código adiciona os pacotes necessários para o exemplo.
A sua app está concluída e pronta para ser implementada.
Implemente no Cloud Run a partir da origem
Importante: este início rápido pressupõe que tem funções de proprietário ou editor no projeto que está a usar para o início rápido. Caso contrário, consulte a função de programador de origem do Cloud Run para ver as autorizações necessárias para implementar um recurso do Cloud Run a partir da origem.
A implementação a partir da origem cria automaticamente uma imagem de contentor a partir do código-fonte e implementa-a.
Para implementar a partir da origem:
No diretório do código-fonte, implemente a pasta atual através do seguinte comando:
gcloud run deploy --source .
Quando lhe for pedido o nome do serviço, prima Enter para aceitar o nome predefinido, por exemplo,
helloworld
.Se lhe for pedido que ative APIs adicionais no projeto, por exemplo, a API Artifact Registry, responda premindo
y
.Quando lhe for pedido para indicar a região: selecione a região da sua escolha, por exemplo,
europe-west1
.Se lhe for pedido que crie um repositório na região especificada, responda premindo
y
.Se lhe for pedido que permita o acesso público: responda
y
. Pode não ver este pedido se existir uma política organizacional de restrição de domínio que o impeça. Para mais detalhes, consulte a secção Antes de começar.
Em seguida, aguarde alguns momentos até que a implementação esteja concluída. Se tiver êxito, a linha de comandos apresenta o URL do serviço.
Visite o serviço implementado abrindo o URL do serviço num navegador de Internet.
Localizações do Cloud Run
O Cloud Run é regional, o que significa que a infraestrutura que executa os seus serviços do Cloud Run está localizada numa região específica e é gerida pela Google para estar disponível de forma redundante em todas as zonas dessa região.
O cumprimento dos requisitos de latência, disponibilidade ou durabilidade são fatores
principais para selecionar a região onde os seus serviços do Cloud Run são executados.
Geralmente, pode selecionar a região mais próxima dos seus utilizadores, mas deve considerar a localização dos outros Google Cloudprodutos usados pelo seu serviço do Cloud Run.
A utilização Google Cloud de produtos em conjunto em várias localizações pode afetar
a latência do seu serviço, bem como o custo.
O Cloud Run está disponível nas seguintes regiões:
Sujeito aos preços de Nível 1
asia-east1
(Taiwan)asia-northeast1
(Tóquio)asia-northeast2
(Osaca)asia-south1
(Mumbai, Índia)europe-north1
(Finlândia)Baixo CO2
europe-north2
(Estocolmo)Baixo CO2
europe-southwest1
(Madrid)Baixo CO2
europe-west1
(Bélgica)Baixo CO2
europe-west4
(Países Baixos)Baixo CO2
europe-west8
(Milão)europe-west9
(Paris)Baixo CO2
me-west1
(Telavive)northamerica-south1
(México)us-central1
(Iowa)Baixo CO2
us-east1
(Carolina do Sul)us-east4
(Virgínia do Norte)us-east5
(Columbus)us-south1
(Dallas)Baixo CO2
us-west1
(Oregão)Baixo CO2
Sujeito aos preços de Nível 2
africa-south1
(Joanesburgo)asia-east2
(Hong Kong)asia-northeast3
(Seul, Coreia do Sul)asia-southeast1
(Singapura)asia-southeast2
(Jacarta)asia-south2
(Deli, Índia)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Varsóvia, Polónia)europe-west10
(Berlim)Baixo CO2
europe-west12
(Turim)europe-west2
(Londres, Reino Unido)Baixo CO2
europe-west3
(Frankfurt, Alemanha)europe-west6
(Zurique, Suíça)Baixo CO2
me-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montreal)Baixo CO2
northamerica-northeast2
(Toronto)Baixo CO2
southamerica-east1
(São Paulo, Brasil)Baixo CO2
southamerica-west1
(Santiago, Chile)Baixo CO2
us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Se já criou um serviço do Cloud Run, pode ver a região no painel de controlo do Cloud Run na Google Cloud consola.
Limpar
Remova o projeto de teste
Embora o Cloud Run não cobre quando o serviço não está em utilização, ainda pode ser-lhe cobrado o armazenamento da imagem do contentor no Artifact Registry. Pode eliminar a imagem do contentor ou eliminar o Google Cloud projeto para evitar incorrer em custos. A eliminação do seu Google Cloud projeto interrompe a faturação de todos os recursos usados nesse 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.
O que se segue?
Para mais informações sobre a criação de um contentor a partir do código-fonte e o envio para um repositório, consulte: