Implantar um aplicativo conteinerizado no Cloud Run usando o Cloud Build

Nesta página, mostramos como usar o Cloud Build para implantar um aplicativo em contêineres no Cloud Run.


Para seguir as instruções da tarefa diretamente no editor do Cloud Shell, clique em Orientação:

Orientações


Antes de começar

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

Conceder permissões

O Cloud Build requer as permissões Administrador do Cloud Run e Usuário da conta de serviço do IAM antes de implantar uma imagem no Cloud Run.

  1. Abra uma janela de terminal.

  2. Defina variáveis de ambiente para armazenar o ID e o número do projeto:

    PROJECT_ID=$(gcloud config list --format='value(core.project)')
    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
    
  3. Conceda o papel Administrador do Cloud Run à conta de serviço do Cloud Build:

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
        --role=roles/run.admin
    
  4. Conceda o papel de Usuário da conta de serviço do IAM à conta de serviço do Cloud Build para a conta de serviço do ambiente de execução do Cloud Run:

    gcloud iam service-accounts add-iam-policy-binding \
        $PROJECT_NUMBER-compute@developer.gserviceaccount.com \
        --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
        --role=roles/iam.serviceAccountUser
    

Implantar uma imagem pré-criada

É possível configurar o Cloud Build para implantar no Cloud Run uma imagem pré-criada armazenada no Artifact Registry.

Para implantar uma imagem pré-criada:

  1. Abra uma janela do terminal, se já não estiver aberta.

  2. Crie um novo diretório chamado helloworld e navegue até ele:

    mkdir helloworld
    cd helloworld
    
  3. Crie um arquivo chamado cloudbuild.yaml com o conteúdo a seguir. Esse é o arquivo de configuração do Cloud Build. Ele contém instruções para o Cloud Build implantar a imagem chamada us-docker.pkg.dev/cloudrun/container/hello no serviço do Cloud Run chamado cloudrunservice.

    steps:
    - name: 'gcr.io/cloud-builders/gcloud'
      script: |
        gcloud run deploy cloudrunservice --image us-docker.pkg.dev/cloudrun/container/hello --region us-central1 --platform managed --allow-unauthenticated
  4. Implante a imagem executando o seguinte comando:

    gcloud builds submit --region=us-west2 --config cloudbuild.yaml
    

Quando a build for concluída, você verá uma resposta semelhante a esta:

DONE
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ID                                    CREATE_TIME                DURATION  SOURCE                                                                                            IMAGES  STATUS
784653b2-f00e-4c4b-9f5f-96a5f115bef4  2020-01-23T14:53:13+00:00  23S       gs://cloudrunqs-project_cloudbuild/source/1579791193.217726-ea20e1c787fb4784b19fb1273d032df2.tgz  -       SUCCESS

Você acabou de implantar a imagem hello no Cloud Run.

Executar a imagem implantada

  1. Abra a página do Cloud Run no console do Google Cloud:

    Abrir a página "Cloud Run"

  2. Selecione o projeto e clique em Abrir.

    Você verá a página Serviços do Cloud Run.

  3. Na tabela, localize a linha com o nome cloudrunservice e clique em cloudrunservice.

    A página Detalhes do serviço de cloudrunservice é exibida.

  4. Para executar a imagem que você implantou no cloudrunservice, clique no URL:

    Captura de tela da página de detalhes do serviço do Cloud Run

A seguir