Implemente uma aplicação contentorizada no Cloud Run através do Cloud Build

Esta página mostra como usar o Cloud Build para implementar uma aplicação em contentores no Cloud Run.


Para seguir orientações passo a passo para esta tarefa diretamente no editor do Cloud Shell, clique em Guiar-me:

Visita guiada


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. Verify 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. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte comando:

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

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

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

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  13. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  14. Conceder autorizações

    O Cloud Build requer as autorizações Administrador do Cloud Run e Utilizador da conta de serviço da IAM antes de poder implementar 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 a função de administrador do Cloud Run à conta de serviço do Cloud Build:

      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \
          --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
          --role=roles/run.admin
      
    4. Conceda a função Utilizador de objetos de armazenamento à conta de serviço do Cloud Build:

      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \
          --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
          --role="roles/storage.objectUser"
      
    5. Conceda a função Utilizador da conta de serviço do IAM à conta de serviço do Cloud Build para a conta de serviço de tempo de execução do Cloud Run:

      gcloud iam service-accounts add-iam-policy-binding $(gcloud projects describe $PROJECT_ID \
          --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
          --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \
          --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
          --role="roles/iam.serviceAccountUser" \
          --project=$PROJECT_ID
      

    Implemente uma imagem pré-criada

    Pode configurar o Cloud Build para implementar uma imagem pré-criada armazenada no Artifact Registry no Cloud Run.

    Para implementar uma imagem pré-criada:

    1. Abra uma janela de terminal (se ainda não estiver aberta).

    2. Crie um novo diretório denominado helloworld e navegue para o mesmo:

      mkdir helloworld
      cd helloworld
      
    3. Crie um ficheiro denominado cloudbuild.yaml com o seguinte conteúdo. Este ficheiro é o ficheiro de configuração do Cloud Build. Contém instruções para o Cloud Build implementar a imagem denominada us-docker.pkg.dev/cloudrun/container/hello no serviço do Cloud Run denominado 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. Implemente a imagem executando o seguinte comando:

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

    Quando a compilação estiver concluída, vai ver um resultado semelhante ao seguinte:

    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
    

    Acabou de implementar a imagem hello no Cloud Run.

    Executar a imagem implementada

    1. Abra a página do Cloud Run na Google Cloud consola:

      Abra a página do Cloud Run

    2. Selecione o projeto e clique em Abrir.

      É apresentada a página Serviços do Cloud Run.

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

      É apresentada a página Detalhes do serviço para cloudrunservice.

    4. Para executar a imagem que implementou no cloudrunservice, clique no URL:

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

    O que se segue?