Início rápido: crie e implemente uma app Web Python (Flask) 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.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para inicializar a CLI gcloud, execute o seguinte comando:
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.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para inicializar a CLI gcloud, execute o seguinte comando:
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.
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:Este código responde a pedidos com a nossa saudação "Hello World". O processamento HTTP é feito por um servidor Web Gunicorn no contentor. Quando invocado diretamente para utilização local, este código cria um servidor Web básico que escuta na porta definida pela variável de ambiente
PORT
.Crie um ficheiro com o nome
requirements.txt
e cole o seguinte código no mesmo:Este código adiciona os pacotes necessários para o exemplo.
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.
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
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)- 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.
Escreva a aplicação de amostra
Para escrever uma aplicação em Python:
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:
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
Sujeito aos preços de Nível 2
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.
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: