Gerenciar APIs do Cloud e bibliotecas de cliente do Cloud no Cloud Code para Cloud Shell

Para acessar os produtos e serviços do Google Cloud de maneira programática, use as APIs do Cloud. Essas APIs expõem uma interface REST REST simples. A maneira recomendada de acessar as APIs do Cloud é usar as bibliotecas de cliente do Cloud.

O Cloud Code facilita a adição de bibliotecas de cliente do Cloud às APIs e à linguagem do Cloud que você está usando no projeto. Na mesma visualização, é possível pesquisar amostras para cada API e incorporar amostras ao aplicativo com facilidade.

Como procurar APIs do Cloud

Para conhecer todas as APIs do Google Cloud disponíveis:

  1. Para abrir as APIs Explorer do Cloud, clique em Cloud Code - Cloud Run.

    A visualização das APIs do Cloud agrupa as APIs do Cloud por categoria.

  2. Para ver os detalhes de uma API, clique no nome dela. Você verá detalhes como nome, status, instruções de instalação das bibliotecas de cliente, documentação e amostras de código.

Como ativar APIs do Cloud

Para ativar as APIs do Cloud em um projeto usando a página de detalhes da API, siga estas etapas:

  1. Na página de detalhes da API do Cloud, escolha o projeto para ativar a API.
  2. Clique em Ativar API. Depois que a API for ativada, uma mensagem será exibida para confirmar a alteração.

Como adicionar bibliotecas de cliente em seu projeto

Além de explorar e ativar as APIs do Cloud usando o Cloud Code, também é possível adicionar uma biblioteca de cliente de linguagem específica em seu projeto.

Para instalar uma biblioteca de cliente, siga as instruções na página de detalhes da API da sua linguagem.

Como usar amostras de API

Você pode pesquisar e usar amostras de código para cada API no navegador de API.

  1. Para abrir as APIs Explorer do Cloud, clique em Cloud Code - Cloud Run.

  2. Para abrir a visualização de detalhes, clique no nome de uma API.

  3. Para ver amostras de código da API, clique em Sample Samples.

  4. Para filtrar a lista de amostras, digite o texto a ser pesquisado ou escolha uma linguagem de programação na lista Language.

  5. Para ver uma amostra, clique no nome dela. Também há opções de copiar a amostra para a área de transferência ou ver o exemplo no GitHub.

Como configurar a autenticação

Depois de ativar as APIs necessárias e adicionar as bibliotecas de cliente necessárias, você precisa configurar seu aplicativo para fazer a autenticação. A configuração depende do seu tipo de desenvolvimento e da plataforma em que você está executando.

Depois de concluir as etapas de autenticação, seu aplicativo pode ser autenticado e está pronto para ser implantado.

Desenvolvimento local

A instância de VM do Cloud Shell usa a conta de serviço padrão do Compute Engine (que é a conta de serviço usada pelo Google Kubernetes Engine por padrão) como conta de serviço padrão. Isso significa que, para desenvolver com o Cloud Code no Cloud Shell, não é necessário definir nenhuma configuração adicional ao trabalhar com bibliotecas de cliente. Seu aplicativo está autenticado e pronto para ser executado localmente.

Desenvolvimento local com APIs que exigem uma conta de serviço

Algumas APIs, como a API Cloud Translation, exigem uma conta de serviço com as permissões apropriadas para autenticar suas solicitações. Para mais informações, consulte Como criar e gerenciar contas de serviço.

  1. Para abrir um terminal, clique em Terminal > Novo terminal.

  2. Crie uma conta de serviço para autenticar suas solicitações de API:

    gcloud iam service-accounts create \
    SERVICE_ACCOUNT_ID \
    --project PROJECT_ID
    

    Substitua os seguintes valores:

    • PROJECT_ID: o ID do projeto;
    • SERVICE_ACCOUNT_ID: o ID da conta de serviço
  3. Conceda o papel apropriado à sua conta de serviço. O comando de amostra a seguir concede o papel de usuário da API Cloud Translation. Para determinar o papel a ser concedido, consulte a documentação da API do Cloud que você está usando.

    gcloud projects \
    add-iam-policy-binding \
    PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com' \
    --role='roles/cloudtranslate.user'
    
  4. Crie uma chave de conta de serviço:

    gcloud iam service-accounts keys \
    create key.json --iam-account \
    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
    
  5. Defina a chave como suas credenciais padrão:

    export \
     GOOGLE_APPLICATION_CREDENTIALS=key.json
    
  6. Opcional: para permitir que os usuários personifiquem a conta de serviço, execute o comando gcloud iam service-accounts add-iam-policy-binding para conceder a um usuário o papel de usuário da conta de serviço (roles/iam.serviceAccountUser) na conta de serviço:

    gcloud iam service-accounts add-iam-policy-binding \
        SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:USER_EMAIL" \
        --role="roles/iam.serviceAccountUser"
    

    Substitua os seguintes valores:

    • USER_EMAIL: o endereço de e-mail do usuário

Desenvolvimento remoto

GKE

Dependendo do escopo do seu projeto, você pode escolher como autenticar os serviços do Google Cloud no GKE:

  • (Somente desenvolvimento)
    1. Crie um cluster do GKE com as seguintes configurações:
      • Verifique se você está usando a conta de serviço que o GKE usa por padrão, a conta de serviço padrão do Compute Engine e se os escopos de acesso estão definidos em Permitir acesso total a todas as APIs do Cloud. Ambas as configurações podem ser acessadas na seção Pools de nós e Segurança. Como a conta de serviço do Compute Engine é compartilhada por todas as cargas de trabalho implantadas no nó, esse método provisiona permissões em excesso e deve ser usado apenas para desenvolvimento.
      • Verifique se a Identidade da carga de trabalho não está ativada no cluster (na seção Cluster > Segurança).
    2. Atribua os papéis necessários à sua conta de serviço:
  • (recomendado para produção)
    1. Configure seu cluster e aplicativo do GKE com a Identidade da carga de trabalho para autenticar os serviços do Google Cloud no GKE. Isso associa sua conta de serviço do Kubernetes à sua conta de serviço do Google.
    2. Configure a implantação do Kubernetes para referenciar a conta de serviço do Kubernetes definindo o campo .spec.serviceAccountName no arquivo YAML de implantação do Kubernetes. Se você estiver trabalhando em um aplicativo criado a partir de um modelo do Cloud Code, esse arquivo estará localizado na pasta kubernetes-manifests.
    3. Se o serviço do Google Cloud que você está tentando acessar precisar de papéis adicionais, conceda-os para a conta de serviço do Google que você está usando para desenvolver o aplicativo:

Cloud Run

  1. Para criar uma nova conta de serviço exclusiva para implantar seu aplicativo Cloud Run, navegue até a página "Contas de serviço" e selecione o projeto em que o secret está armazenado.

    Acessar a página Contas de serviço.

  2. Clique em Criar conta de serviço.
  3. Na caixa de diálogo Criar conta de serviço, forneça um nome descritivo para a conta.
  4. Altere o ID da conta de serviço para um valor exclusivo e reconhecível, e clique em Criar.
  5. Se o serviço do Google Cloud que você está tentando acessar exigir papéis adicionais, conceda-os, clique em Continuar e, em seguida, clique em Concluído.
  6. Para adicionar a conta de serviço à configuração da implantação, faça o seguinte:
    1. Usando a barra de status do Cloud Code, escolha o comando Cloud Run: implantar.
    2. Na IU de implantação do Cloud Run, em Configurações de revisão, no campo Conta de serviço, especifique sua conta de serviço.
    A seção de configurações avançadas de revisão foi expandida no Cloud Run e o campo de implantação e conta de serviço preenchido com o nome da conta de serviço no formato service-account-name@project-name.iam.gserviceaccount.com

Cloud Run

Dependendo do escopo do seu projeto, você pode escolher como autenticar os serviços do Google Cloud no GKE:

  • (Somente desenvolvimento)
    1. Crie um cluster do GKE com as seguintes configurações:
      • Verifique se você está usando a conta de serviço que o GKE usa por padrão e se a conta de serviço padrão do Compute Engine e se os escopos de acesso estão definidos em Permitir acesso total a todas as APIs do Cloud (as duas configurações acessíveis na seção Pools de nós > Segurança). Como a conta de serviço do Compute Engine é compartilhada por todas as cargas de trabalho implantadas no nó, esse método superprovisiona permissões e só deve ser usado para desenvolvimento.
      • Verifique se a Identidade da carga de trabalho não está ativada no cluster (na seção Cluster > Segurança).
    2. Atribua os papéis necessários à sua conta de serviço:
  • (recomendado para produção)
    1. Configure seu cluster e aplicativo do GKE com a Identidade da carga de trabalho para autenticar os serviços do Google Cloud no GKE. Isso associa sua conta de serviço do Kubernetes à sua conta de serviço do Google.
    2. Para adicionar a conta de serviço à configuração da implantação, faça o seguinte:
      1. Usando a barra de status do Cloud Code, escolha o comando Cloud Run: implantar.
      2. Na IU de implantação do Cloud Run, em Configurações de revisão, no campo Conta de serviço, especifique sua conta de serviço.
      A seção de configurações avançadas de revisão foi expandida no "Cloud Run: implantar" e o campo de conta de serviço preenchido com o nome da conta de serviço no formato service-account-name@project-name.iam.gserviceaccount.com
    3. Se o serviço do Google Cloud que você está tentando acessar exigir papéis adicionais, conceda-os para a conta de serviço do Google que você está usando para desenvolver o aplicativo:

Desenvolvimento remoto com permissões do Gerenciador de secrets ativadas

Se você estiver desenvolvendo remotamente, usando uma conta de serviço para autenticação, e seu aplicativo usar secrets, conclua mais algumas etapas além das instruções de desenvolvimento remoto. Essas etapas atribuem à sua conta de serviço do Google o papel necessário para acessar um determinado secret do Gerenciador de secrets:

  1. Clique em Ícone do Cloud Code Cloud Code e abra a seção Secret Manager.

    O Gerenciador de secrets no Cloud Code é aberto com dois secrets listados

  2. Clique com o botão direito do mouse no secret e selecione Editar permissões no console do Cloud. Isso abre a página de configuração do Gerenciador de secrets para aquele secret no navegador da Web.

    O secret selecionado com o botão direito do mouse no painel do Gerenciador de secrets

  3. No console, clique em Permissões e Adicionar.

  4. No campo Novos principais, digite o nome da sua conta de serviço.

  5. No campo Selecionar papel, escolha o papel Acessor de secrets do Gerenciador de secrets.

  6. Clique em Save.

    Sua conta de serviço agora tem permissão para acessar esse secret específico.