Como criar e gerenciar projetos

Os projetos do Google Cloud formam a base para criar, ativar e usar todos os serviços do Google Cloud, incluindo o gerenciamento de APIs, ativação de faturamento, adição e remoção de colaboradores e gerenciamento de permissões dos recursos do Google Cloud.

Esta página explica como criar e gerenciar projetos do Google Cloud usando a API do Gerenciador de Recursos e o Console do Google Cloud.

Antes de começar

Leia sobre o recurso do projeto na Visão geral da hierarquia de recursos. Para receber orientações sobre a estrutura do projeto, consulte Práticas recomendadas para organizações empresariais.

Os seguintes itens são usados para identificar seu projeto:

  • Nome do projeto: um nome legível para seu projeto.

    O nome do projeto não é usado por nenhuma API do Google Você pode editar o nome do projeto a qualquer momento durante ou após a criação do projeto. Os nomes dos projetos não precisam ser exclusivos.

  • ID do projeto: um identificador exclusivo personalizável para seu projeto.

    O ID do projeto é um código exclusivo atribuído pelo usuário que pode ser usado pelas APIs do Google. Se você não especificar um ID do projeto durante a criação, o ID será gerado automaticamente.

    O ID do projeto precisa ser uma string exclusiva de 6 a 30 letras minúsculas, dígitos ou hifens. Ele precisa começar com uma letra e não pode ter um hífen à direita. Não é possível alterar o ID do projeto depois de criado. Não é possível reutilizar um ID de projeto que esteja em uso ou que tenha sido usado em um projeto excluído.

    Algumas palavras não podem ser usadas no ID do projeto. Se você usar palavras restritas no nome do projeto, como google ou ssl, o ID do projeto gerado não incluirá essas palavras.

  • Número do projeto: um identificador exclusivo gerado automaticamente para seu projeto.

O número do projeto e o ID do projeto são exclusivos no Google Cloud. Não é possível que dois usuários usem o mesmo código do projeto. Não é possível reutilizar o ID de um projeto excluído.

Não inclua informações confidenciais no ID do projeto ou nos nomes de recurso.

Como criar um projeto

Para criar um projeto, você deve ter a permissão resourcemanager.projects.create. Essa permissão está incluída no papel Criador de projeto roles/resourcemanager.projectCreator, que é concedido por padrão a todo o domínio de uma nova organização e a usuários de avaliação gratuita. Para saber mais sobre como conceder o papel a indivíduos e limitar o acesso a toda a organização, veja a página Como gerenciar papéis padrão da organização.

Se você não especificar o recurso pai, um recurso pai será selecionado automaticamente com base no domínio da conta de usuário.

Você pode criar um novo projeto usando o Console do Cloud, a ferramenta de linha de comando gcloud ou o método projects.create().

Console

Para criar um projeto novo:

  1. Acesse a página Gerenciar recursos no Console do Cloud.
    ACESSAR A PÁGINA "GERENCIAR RECURSOS"
  2. Na lista suspensa Selecionar organização na parte superior da página, escolha a organização em que o projeto será criado. Se você é um usuário da avaliação gratuita, pule esta etapa porque a lista não será exibida.
  3. Clique em Criar projeto.
  4. Na janela Novo projeto que será exibida, insira o nome do projeto e selecione uma conta de faturamento, conforme aplicável. O nome de um projeto pode ter apenas letras, números, aspas simples, hifens, espaços ou pontos de exclamação e precisa ter entre 4 e 30 caracteres.
  5. Insira a organização ou a pasta pai na caixa Local. Esse recurso será o pai hierárquico do novo projeto.
  6. Quando terminar de inserir os detalhes do novo projeto, clique em Criar.

gcloud

Para criar um novo projeto, use o comando gcloud projects create:

gcloud projects create PROJECT_ID

Em que PROJECT_ID é o código do projeto que você quer criar. Um ID do projeto precisa começar com uma letra minúscula e deve conter apenas letras ASCII, dígitos e hifens e deve ter entre 6 e 30 caracteres.

Para criar um projeto com uma organização ou uma pasta como pai, use as sinalizações --organization ou --folder. Como um recurso pode ter apenas um pai, só uma dessas sinalizações pode ser usada:

gcloud projects create PROJECT_ID --organization=ORGANIZATION_ID

gcloud projects create PROJECT_ID --folder=FOLDER_ID

API

Não é possível usar determinadas palavras no ID do projeto quando cria um novo projeto com o método projects.create(). Alguns exemplos incluem ssl e google. Quando você usa uma palavra restrita, a solicitação é retornada com um erro INVALID_ARGUMENT.

A solicitação a seguir apenas cria um projeto e não o associa automaticamente a uma conta de faturamento. Use o método projects.updateBillingInfo para definir ou atualizar a conta de faturamento associada a um projeto.

Criar solicitação de projeto:

POST https://cloudresourcemanager.googleapis.com/v1/projects/
Authorization: *************
Content-Type: application/json

{
    "projectId": "our-project-123",
    "name": "my project",
    "labels": {
      "mylabel": "prod"
    }
}

Criar resposta de projeto:

{
    "name": "operations/pc.123456789",
}

Receber solicitação de operação:

GET https://cloudresourcemanager.googleapis.com/v1/operations/pc.123456789
Authorization: *************
Content-Type: application/json

Receber resposta de operação:

{
    "name": "operations/pc.123456789",
    "done": true,
    "response": {
        "@type": "type.googleapis.com/google.cloudresourcemanager.v1.Project",
        "projectNumber": "464036093014",
        "projectId": "our-project-123",
        "lifecycleState": "ACTIVE",
        "name": "my project",
        "labels": {
        "mylabel": "prod"
        },
    "createTime": "2016-01-07T21:59:43.314Z"
    }
}

Python

...
from googleapiclient import discovery
from oauth2client.client import OAuth2Credentials as creds
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

operation = crm.projects().create(
body={
    'project_id': flags.projectId,
    'name': 'my project'
}).execute()

...

Como criar um projeto usando uma conta de serviço

Você pode usar uma conta de serviço para automatizar a criação do projeto. Assim como as contas de usuário, as contas de serviço podem receber permissão para criar projetos dentro de uma organização. As contas de serviço não têm permissão para criar projetos fora de uma organização e devem especificar o recurso pai ao criar um projeto. As contas de serviço podem criar um novo projeto usando a ferramenta gcloud ou o método projects.create().

Como gerenciar cotas de projeto

Se você tiver menos de 30 projetos restantes na cota, uma notificação exibirá a quantidade desses projetos na página Novo projeto. Depois de atingir seu limite de projetos, você deve solicitar um aumento no limite de projetos para criar mais projetos. Como alternativa, você pode programar a exclusão de alguns projetos depois de 30 dias na página Gerenciar recursos. Projetos que os usuários fizeram a exclusão reversívelsão contabilizados na sua cota. Esses projetos serão excluídos totalmente após 30 dias.

Para solicitar mais capacidade para projetos na cota, veja a página de suporte Solicitar aumento na cota de faturamento. Você encontra mais informações sobre as cotas e por que elas são usadas na página de suporte Solicitações de cota para projetos no teste gratuito. Para mais informações sobre relatórios de faturamento, consulte a página de suporte Relatórios de faturamento.

Identificar projetos

Para interagir com os recursos do Google Cloud, você precisa fornecer as informações de identificação do projeto para cada solicitação. Um projeto é identificado pelo ID do projeto e número do projeto.

Para conseguir o ID do projeto e o número do projeto:

  1. Vá para a página Painel de controle no Console do Cloud.

    Ir para a página "Painel"

  2. Clique na lista suspensa Selecionar de na parte superior da página. Na janela Selecionar de exibida, selecione seu projeto.

O ID do projeto e o número do projeto são exibidos no card Informações do projeto do painel do projeto:

No exemplo acima, o nome do projeto é Meu projeto de exemplo e o ID do projeto émy-sample-project-191923.

Acessar um projeto existente

Você pode obter um projeto existente usando o Console do Cloud ou o método projects.get().

Console

Para visualizar um projeto usando o Console do Google Cloud:

  1. Acesse a página Painel no Console do Google Cloud:

    Ir para a página "Painel"

  2. Clique na lista suspensa Selecionar de na parte superior da página. Na janela Selecionar de exibida, selecione seu projeto.

gcloud

Para obter os metadados de um projeto, use o comando gcloud projects describe:

gcloud projects describe PROJECT_ID

Em que PROJECT_ID é o código do projeto que você quer visualizar.

API

Solicitação:

GET
https://cloudresourcemanager.googleapis.com/v1beta1/projects/our-project-123

Resposta:

{
    "projectNumber": "464036093014",
    "projectId": "our-project-123",
    "lifecycleState": "ACTIVE",
    "name": "my project",
    "labels": {
        "mylabel": "prod"
    },
    "createTime": "2016-01-07T21:59:43.314Z"
}

Python

...
from googleapiclient import discovery
from oauth2client.client import OAuth2Credentials as creds
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

project = crm.projects().get(projectId=flags.projectId).execute()

...

Como listar projetos

Você pode listar todos os projetos aos quais têm acesso usando o Console do Cloud ou o método projects.list().

Console

Para listar projetos usando o Console do Google Cloud:

  • Acesse o Console do Cloud.

    Acessar Console do Cloud

  • Todos os projetos estão listados no menu suspenso projetos na barra superior. Use a caixa de texto Pesquisar projetos e pastas para filtrar projetos.
  • Para listar todos os projetos, clique em Gerenciar recursos. Use a caixa de texto Filtrar por nome, ID ou rótulo para filtrar os projetos.

gcloud

Para listar todos os projetos que sua conta ativa no momento pode acessar, use o comando gcloud projects list:

gcloud projects list

Este comando fornecerá o ID, o nome e o número do projeto para todos os projetos em que você tiver permissões de proprietário, editor ou visualizador.

Você pode usar a sinalização --filter para restringir os resultados. Essa sinalização pesquisa o ID, o nome e o número do projeto e retorna apenas os resultados em que há o termo filtrado:

gcloud projects list --filter=test

O comando acima retornará todos os projetos em que você tem permissão de proprietário, editor ou visualizador e também inclui a palavra "teste" nos campos nome, ID do projeto ou número do projeto.

Se você especificar um filtro com os campos parent.type e parent.id, a permissão resourcemanager.projects.list será marcada no pai. Se o usuário tiver essa permissão, todos os projetos do pai serão retornados depois que os filtros restantes forem aplicados.

Se o usuário não tiver essa permissão, todos os projetos para os quais o usuário tem a permissão resourcemanager.projects.get serão retornados após a aplicação dos filtros restantes.

Se nenhum filtro for especificado, a chamada retornará projetos para os quais o usuário tem as permissões resourcemanager.projects.get.

Para mais informações sobre a sintaxe de filtro, consulte gcloud topic filters.

API

É possível incluir campos no corpo da solicitação para retornar projetos específicos que correspondam ao filtro e em que você tenha os papéis de proprietário, editor ou leitor.

O snippet de código a seguir retorna o recurso Projeto com o nome “project a”:

Solicitação:

GET https://cloudresourcemanager.googleapis.com/v1beta1/projects

{
    "name": "project a"
}

Resposta:

{
    "projects": [
    {
        "projectNumber": "951040570662",
        "projectId": "google.com:api-project-951040570662",
        "lifecycleState": "ACTIVE",
        "name": "project a",
        "createTime": "2013-11-13T20:31:53.308Z"
    }
    ]
}

O snippet de código a seguir retorna todos os projetos com um rótulo vermelho:

Solicitação:

GET
https://cloudresourcemanager.googleapis.com/v1beta1/projects

{
    "labels": {
    "color": "red"
    }
}

Resposta:

{
    "projects": [
    {
        "projectNumber": "350831539566",
        "projectId": "my-project-b",
        "lifecycleState": "ACTIVE",
        "name": "project b",
        "labels": {
            "color": "red"
        },
        "createTime": "2012-02-18T23:11:57.831Z"
    }
    ]
}

Se você especificar os campos parent.type e parent.id no corpo da solicitação, a permissão resourcemanager.projects.list será verificada no pai. Se o usuário tiver essa permissão, todos os projetos do pai serão retornados depois que os filtros restantes forem aplicados.

Se o usuário não tiver essa permissão, todos os projetos para os quais o usuário tem a permissão resourcemanager.projects.get serão retornados após a aplicação dos filtros restantes.

Se nenhum filtro for especificado, a chamada retornará projetos para os quais o usuário tem as permissões resourcemanager.projects.get.

Python

...
from googleapiclient import discovery
from oauth2client.client import OAuth2Credentials as creds
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

filter = "name:project a"
projects = crm.projects().list(filter=filter).execute()

...

O snippet de código a seguir lista todos os projetos com um rótulo vermelho:

filter = 'labels.color:red'
projects = crm.projects().list(filter=filter).execute()

Como atualizar projetos

Você pode atualizar projetos usando o Console do Cloud ou o método projects.update(). Os únicos campos que podem ser atualizados são o nome do projeto e os rótulos. Não é possível alterar o valor do ID do projeto que você usa com a ferramenta de linha de comando gcloud ou com as solicitações de API. Para mais informações sobre como atualizar projetos, veja a página de referência da API do projeto.

Console

Para atualizar o campo de um projeto usando o Console do Cloud:

  • Abra a página Configurações no Console do Google Cloud.

    Abrir a página "Configurações"

  • Na parte superior da tela, clique na lista suspensa de seleção de projetos.
  • Na janela Selecionar exibida, clique na lista suspensa da organização e selecione sua organização. Se você é um usuário de avaliação gratuita, pule esta etapa, já que a lista de organização não aparece.
  • Selecione seu projeto na lista que aparece.
  • Para alterar o nome do projeto, edite o Nome do projeto e clique em Salvar.
  • Para alterar os rótulos, clique em Rótulos na navegação à esquerda. Saiba mais sobre Como usar Rótulos.

gcloud

Para atualizar o nome ou os rótulos de um projeto, use o comando gcloud alpha projects update:

gcloud alpha projects update PROJECT_ID
--name=NAME
--update-labels=[KEY=VALUE, ...]

Em que:

  • PROJECT_ID é o ID do projeto que você quer atualizar.

  • NAME é o novo nome que você quer atribuir ao projeto.

  • [KEY = VALUE, ...] é uma lista dos pares de chave-valor dos rótulos que você quer atualizar. Se um rótulo já existir, seu valor será modificado. Se ele não existir, um novo rótulo será criado.

Para mais informações e sinalizações adicionais que podem ser usadas com esse comando, consulte o SDK da ferramenta de linha de comando gcloud.

API

Para atualizar um projeto:

  • Consiga o objeto project usando o método projects.get().
  • Modifique o campo que você quer atualizar.
  • Atualize o objeto project usando o método projects.update().

O snippet de código a seguir atualiza o nome do projeto para "myproject":

Solicitação:

    PUT https://cloudresourcemanager.googleapis.com/v1beta1/projects/my-project-123
    {
        "name": "myproject"
    }

Resposta:

    {
        "projects": [
        {
            "projectNumber": "951040570662",
            "projectId": "my-project-123",
            "lifecycleState": "ACTIVE",
            "name": "myproject",
            "createTime": "2013-11-13T20:31:53.308Z"
        }
        ]
    }

Python

...
from googleapiclient import discovery
from oauth2client.client import OAuth2Credentials as creds
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

project = crm.projects().get(projectId=flags.projectId).execute()
project['name'] = 'myproject'
project = crm.projects().update(
projectId=flags.projectId, body=project).execute()

...

Como encerrar (excluir) projetos

É possível encerrar projetos usando o Console do Cloud ou o método projects.delete(). Um projeto deve ter um estado de ciclo de vida de ACTIVE para ser encerrado dessa maneira.

Esse método marca imediatamente um projeto a ser excluído e envia um e-mail de notificação para o proprietário do projeto. Um projeto marcado para exclusão não pode ser utilizado. Se o projeto tiver uma conta de faturamento associada a ela, essa associação será interrompida e não será restabelecida, mesmo se a operação de exclusão do projeto for cancelada imediatamente. Após aproximadamente 30 dias, o projeto será totalmente excluído. Para interromper esse processo durante o período de 30 dias, consulte as etapas para restaurar um projeto.

No final do período de 30 dias, o projeto e todos os seus recursos são excluídos e não podem ser recuperados. Até que seja excluído, o projeto contará em sua cota do projeto.

Se você configurou o faturamento para um projeto, ele pode não ser completamente excluído até que o ciclo de faturamento atual termine e a cobrança seja realizada. A quantidade e o tipo dos serviços em uso também podem ser afetados quando o sistema exclui permanentemente um projeto. Para saber mais sobre retenção de dados e exclusão segura, veja Como o Google retém os dados coletados.

Para encerrar um projeto:

Console

Para encerrar um projeto usando o Console do Cloud:

  • Abra a página Configurações (encontrada em IAM e administração) no Console do Google Cloud.

    Abrir a página "Configurações"

  • Clique em Selecionar um projeto.

  • Selecione um projeto que você queira e clique em Abrir.

  • Clique em Encerrar.

  • Digite o ID do projeto e clique em Encerrar.

gcloud

Para excluir um projeto, use o comando gcloud projects delete:

gcloud projects delete PROJECT_ID

Em que PROJECT_ID é o código do projeto que você quer excluir.

API

O snippet de código a seguir exclui o projeto especificado:

Solicitação:

DELETE
https://cloudresourcemanager.googleapis.com/v1beta1/projects/my-project-123

Python

...
from googleapiclient import discovery
from oauth2client.client import OAuth2Credentials as creds
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

project = crm.projects().delete(projectId=flags.projectId).execute()

...

Como solucionar problemas de exclusão de projetos

Se o processo de encerramento de um projeto falhar, você poderá encontrar mais informações em Solução de problemas de exclusão do projeto.

Como restaurar um projeto

Os proprietários de projetos podem restaurar um projeto excluído dentro do período de recuperação de 30 dias, contados a partir de quando o projeto é encerrado. Restaurar um projeto faz com que ele retorne ao estado em que estava antes de ser desativado. Os recursos do Cloud Storage são excluídos antes do fim do período de 30 dias e podem não ser totalmente recuperáveis.

Pode ser que alguns serviços precisem ser reiniciados manualmente. Para obter mais informações, consulte Como reiniciar os serviços do Google Cloud.

É necessário ter a permissão resourcemanager.projects.undelete no projeto que você quer restaurar. Para restaurar um projeto:

Console

Para visualizar o projeto no Console do Cloud, você precisa das seguintes permissões:

  • resourcemanager.projects.list
  • resourcemanager.folders.list
  • resourcemanager.projects.get

Para restaurar um projeto usando o Console do Cloud:

  1. Acesse a página Gerenciar recursos no Console do Google Cloud.

    Acessar a página "Gerenciar recursos"

  2. Em Seletor de projetos, na parte superior da página, selecione sua organização.

  3. Abaixo da lista de organizações, pastas e projetos, clique em Recursos com exclusão pendente.

  4. Marque a caixa do projeto que você quer restaurar e clique em Restaurar. Na caixa de diálogo exibida, confirme que você quer restaurar o projeto.

gcloud

Para restaurar um projeto, use o comando gcloud projects undelete:

gcloud projects undelete PROJECT_ID

Em que PROJECT_ID é o ID ou o número do projeto que você quer restaurar.

API

O snippet de código a seguir restaura o projeto especificado:

Solicitação:

POST
https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123:undelete