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.

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 padrão é composto pelo nome do projeto e um número atribuído aleatoriamente. É possível personalizar o ID do projeto somente durante a criação do projeto.

    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.
  5. Se você quiser adicionar o projeto a uma pasta, digite o nome da pasta na caixa Local.
  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

No qual [PROJECT_ID] representa o ID 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

...
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.

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

No qual PROJECT_ID é o ID 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

...
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

...
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, porque a lista de organizações não é mostrada.
  • 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 de um projeto, use o comando gcloud projects update:

gcloud projects update PROJECT_ID --name=NAME

No qual PROJECT_ID é o ID do projeto que você quer atualizar e NAME é o novo nome que você quer atribuir ao projeto.

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

...
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

No qual PROJECT_ID é o ID 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

...
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.

Para restaurar um projeto:

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

    Acessar a página "Gerenciar recursos"

  2. No menu suspenso Organização, na parte superior esquerda, selecione a organização.

  3. Abaixo da lista de 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.