Crea y administra proyectos

Los proyectos de Google Cloud forman la base para crear, habilitar y usar todos los servicios de Google Cloud, incluidos la administración de las API, la habilitación de la facturación, el agregado y la eliminación de los colaboradores, y la administración de los permisos de los recursos de Google Cloud.

En esta página, se explica cómo crear y administrar proyectos de Google Cloud con la API de Resource Manager y Google Cloud Console.

Antes de comenzar

Obtén información sobre el recurso de proyecto en la descripción general de la jerarquía de recursos. Si quieres obtener orientación sobre la estructura de proyectos, consulta Prácticas recomendadas para organizaciones empresariales.

Los siguientes parámetros se usan para identificar tu proyecto:

  • Nombre del proyecto: Un nombre legible para tu proyecto.

    El nombre del proyecto no se usa en las API de Google. Puedes editar el nombre del proyecto en cualquier momento durante o después de su creación. No es necesario que los nombres de los proyectos sean únicos.

  • ID del proyecto: Un identificador único global para tu proyecto.

    Un ID del proyecto es una string única que se usa para diferenciar tu proyecto de todos los demás en Google Cloud. Puedes usar Cloud Console para generar un ID del proyecto o puedes elegir el tuyo. Solo puedes modificar el ID del proyecto cuando creas el proyecto.

    Requisitos de los ID del proyecto:

    • Debe tener entre 6 y 30 caracteres.
    • Solo puede contener letras minúsculas, números y guiones.
    • Debe comenzar con una letra.
    • No puede terminar con un guion.
    • No se puede usar ni usar antes, esto incluye proyectos borrados.
    • No puede contener strings restringidas, como google y ssl.
  • Número de proyecto: Un identificador único generado de forma automática para tu proyecto.

No incluyas información sensible en el nombre del proyecto, en el ID del proyecto ni en otros nombres de recursos. El ID del proyecto se usa en el nombre de muchos otros recursos de Google Cloud, y cualquier referencia al proyecto o a los recursos relacionados expone el ID del proyecto y el nombre del recurso.

Crea un proyecto

Para crear un proyecto, debes tener el permiso resourcemanager.projects.create. Este permiso se incluye en funciones como la función de creador de proyectos (roles/resourcemanager.projectCreator). La función de creador de proyectos se otorga de forma predeterminada a todo el dominio de una organización nueva y a los usuarios de la prueba gratuita. Si deseas obtener información para otorgar a las personas la función y limitar el acceso en toda la organización, consulta la página Administra las funciones predeterminadas de la organización.

Si no especificas el recurso superior, este se selecciona de forma automática en función del dominio de la cuenta de usuario.

Puedes crear un proyecto nuevo con Cloud Console, la CLI de Google Cloud o el método projects.create().

Console

Para crear un proyecto nuevo, haz lo siguiente:

  1. Ve a la página Administrar recursos en Cloud Console.
    Ir a la página Administrar recursos
  2. En la lista desplegable Seleccionar organización, en la parte superior de la página, selecciona la organización en la que deseas crear un proyecto. Si eres un usuario de prueba gratuita, omite este paso, ya que no aparece esta lista.
  3. Haz clic en Crear proyecto.
  4. En la ventana Proyecto nuevo que aparece, ingresa un nombre de proyecto y selecciona una cuenta de facturación según corresponda. El nombre de un proyecto solo puede contener letras, números, comillas simples, guiones, espacios o signos de exclamación, y debe tener entre 4 y 30 caracteres.
  5. Ingresa la organización o carpeta superior en el cuadro Ubicación. Ese recurso será el superior de la jerarquía del nuevo proyecto.
  6. Cuando hayas terminado de ingresar los detalles del proyecto nuevo, haz clic en Crear.

gcloud

Para crear un proyecto nuevo, usa el comando gcloud projects create:

gcloud projects create PROJECT_ID

En este comando, PROJECT_ID es el ID del proyecto que quieres crear. El ID de un proyecto debe comenzar con una letra minúscula, contener solo letras, dígitos y guiones ASCII, y tener entre 6 y 30 caracteres.

Para crear un proyecto con una organización o carpeta como superior, usa las marcas --organization o --folder. Como un recurso puede tener solo un superior, se puede usar solo una de estas marcas:

gcloud projects create PROJECT_ID --organization=ORGANIZATION_ID

gcloud projects create PROJECT_ID --folder=FOLDER_ID

API

No puedes usar ciertas palabras en el ID del proyecto cuando creas un proyecto nuevo con el método projects.create(). Algunos ejemplos son ssl y google. Cuando usas una palabra restringida, la solicitud se muestra con un error INVALID_ARGUMENT.

La siguiente solicitud solo crea un proyecto, no lo asocia de forma automática con una cuenta de facturación. Usa el método projects.updateBillingInfo para configurar o actualizar la cuenta de facturación asociada con un proyecto.

Crea una solicitud de proyecto:

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

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

Crea una respuesta de proyecto:

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

Obtén una solicitud de operación:

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

Obtén una respuesta de operación:

{
    "name": "operations/pc.123456789",
    "done": true,
    "response": {
        "@type": "type.googleapis.com/google.cloudresourcemanager.v3.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', 'v3', http=creds.authorize(httplib2.Http()))

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

...

Crea un proyecto con una cuenta de servicio

Puedes usar una cuenta de servicio para automatizar la creación de proyectos. Al igual que a las cuentas de usuario, a las cuentas de servicio se les puede otorgar permiso para crear proyectos dentro de una organización. Las cuentas de servicio no pueden crear proyectos fuera de una organización y deben especificar el recurso superior durante la creación de un proyecto. Las cuentas de servicio pueden crear un proyecto nuevo con la CLI de gcloud o el método projects.create().

Administra las cuotas del proyecto

Si quedan menos de 30 proyectos en tu cuota, la cantidad de proyectos restantes en tu cuota se mostrará en una notificación en la página Nuevo proyecto. Cuando hayas alcanzado el límite de tu proyecto, debes solicitar un aumento del límite de proyectos para crear más proyectos. Como alternativa, puedes programar algunos proyectos para que se borren después de 30 días en la página Administrar recursos. Los proyectos que los usuarios hayan borrado de forma no definitiva se descontarán de tu cuota. Estos proyectos se borran por completo después de 30 días.

Si deseas solicitar capacidad adicional para los proyectos de tu cuota, usa el formulario Solicitar aumento de cuota del proyecto. Puedes encontrar más información sobre las cuotas y la razón de su uso en la página de asistencia sobre las solicitudes de cuotas del proyecto de prueba gratuita. Para obtener más información sobre los informes de facturación, consulta la página de asistencia Informes de facturación.

Identifica proyectos

Para interactuar con los recursos de Google Cloud, debes proporcionar la información de identificación del proyecto en cada solicitud. Un proyecto se identifica por el ID y el número de proyecto.

Para obtener el ID y el número del proyecto, haz lo siguiente:

  1. Ve a la página Panel en Cloud Console.

    Ir a la página Panel

  2. Haz clic en la lista desplegable Seleccionar desde en la parte superior de la página. En la ventana Seleccionar desde que aparece, selecciona tu proyecto.

El ID y el número del proyecto se muestran en la tarjeta de Información del proyecto (Project info) del panel del proyecto:

En el ejemplo anterior, el nombre del proyecto es My Sample Project y el ID del proyecto es my-sample-project-191923.

Obtén un proyecto existente

Puedes obtener un proyecto existente con Cloud Console o el método projects.get().

Console

Para ver un proyecto con Google Cloud Console, haz lo siguiente:

  1. Ve a la página Panel en Google Cloud Console.

    Ir a la página Panel

  2. Haz clic en la lista desplegable Seleccionar desde en la parte superior de la página. En la ventana Seleccionar desde que aparece, selecciona tu proyecto.

gcloud

Para obtener los metadatos de un proyecto, usa el comando gcloud projects describe:

gcloud projects describe PROJECT_ID

En este comando, PROJECT_ID es el ID del proyecto que deseas ver.

API

Solicitud:

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

Respuesta:

{
    "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', 'v3', http=creds.authorize(httplib2.Http()))

project = crm.projects().get(name="projects/"+projectId).execute()

...

Enumera los proyectos

Enumerar todos los proyectos de un recurso

Para enumerar todos los proyectos que son secundarios secundarios de un recurso, usa el método projects.list de la v3 y especifica el recurso superior en la consulta:

Solicitud:

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

{
    "parent": "folders/662951040570"
}

Respuesta:

{
    "projects": [
    {
        "name": "projects/951040570662",
        "parent": "folders/662951040570",
        "projectId": "tokyo-rain-123",
        "state": "ACTIVE",
        "displayName": "Tokyo Rain"
        "createTime": "2013-11-13T20:31:53.308Z"
        "updateTime": "2013-11-13T20:31:53.308Z"
        "etag": "BwWUlZ6XEfY="
    }
    ]
}

Busca proyectos

Puedes usar el método projects.search y una string de consulta a fin de mostrar recursos específicos del proyecto que coincidan con el filtro. Los resultados contienen solo proyectos para los que se les otorgó el permiso resourcemanager.projects.get.

El siguiente fragmento de código muestra el recurso del proyecto con el nombre visible “Tokyo Rain”:

Solicitud:

GET https://cloudresourcemanager.googleapis.com/v3/projects:search

{
    "displayName": "Tokyo Rain"
}

Respuesta:

{
    "projects": [
    {
        "name": "projects/951040570662",
        "parent": "folders/662951040570",
        "projectId": "tokyo-rain-123",
        "state": "ACTIVE",
        "displayName": "Tokyo Rain"
        "createTime": "2013-11-13T20:31:53.308Z"
        "updateTime": "2013-11-13T20:31:53.308Z"
        "etag": "BwWUlZ6XEfY="
    }
    ]
}

En el siguiente fragmento de código, se muestran todos los recursos del proyecto con una etiqueta roja:

Solicitud:

GET
https://cloudresourcemanager.googleapis.com/v3/projects:search

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

Respuesta:

{
    "projects": [
    {
        "name": "projects/951054970012",
        "parent": "folders/662951040570",
        "projectId": "Osaka-rain-234",
        "state": "ACTIVE",
        "displayName": "Osaka Rain"
        "createTime": "2013-11-13T20:31:53.308Z"
        "updateTime": "2013-11-13T20:31:53.308Z"
        "etag": "BwWUlZ6XEfY="
        "labels": {
            "color": "red"
        },
    }
    ]
}

Si especificas los campos parent.type y parent.id en el cuerpo de la solicitud, entonces el permiso resourcemanager.projects.list se verificará en el superior. Si el usuario tiene este permiso, todos los proyectos del superior se mostrarán después de que se hayan aplicado los filtros restantes.

Si el usuario no tiene este permiso, todos los proyectos en los que tiene el permiso resourcemanager.projects.get se mostrarán después de que se hayan aplicado los filtros restantes.

Si no se especifica ningún filtro, la llamada mostrará los proyectos en los que el usuario tiene los permisos resourcemanager.projects.get.

Actualiza los proyectos

Puedes actualizar proyectos con Cloud Console o el método projects.patch().

Los únicos campos que se pueden actualizar son las etiquetas y el nombre del proyecto. Para obtener más información sobre la actualización de proyectos, consulta la página de referencia de la API del proyecto.

Para mover un proyecto dentro de tu jerarquía de recursos, consulta Cómo mover un proyecto. Para migrar un proyecto de una organización a otra, consulta la sección sobre cómo migrar proyectos.

Console

Para actualizar el nombre o las etiquetas de un proyecto con Cloud Console, sigue estos pasos:

  • Abre la página Configuración de Google Cloud Console.

    Abrir la página Configuración

  • En la parte superior de la pantalla, haz clic en la lista desplegable de selección de proyectos.
  • En la ventana Seleccionar desde que aparece, haz clic en la lista desplegable de las organizaciones y, luego, selecciona tu organización. Si eres un usuario de prueba gratuita, omite este paso, ya que la lista de organizaciones no aparece.
  • Selecciona tu proyecto en la lista que aparece.
  • Para cambiar el nombre del proyecto, edita el Nombre del proyecto y, luego, haz clic en Guardar.
  • Para cambiar las etiquetas, haz clic en Etiquetas en el navegador izquierdo. Obtén más información sobre cómo usar etiquetas.

gcloud

Para actualizar el nombre o las etiquetas de un proyecto, usa el comando gcloud alpha projects update:

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

Donde:

  • PROJECT_ID es el ID del proyecto que deseas actualizar.

  • NAME es el nuevo nombre que deseas asignar al proyecto.

  • KEY=VALUE, ... es una lista de los pares clave-valor de las etiquetas que deseas actualizar. Si ya existe una etiqueta, su valor se modifica. Si no existe, se crea una etiqueta nueva.

Para obtener más información y marcas adicionales que se pueden usar con este comando, consulta el SDK de CLI de Google Cloud.

API

Para actualizar un proyecto, haz lo siguiente:

  • Obtén el objeto project con el método projects.get.

  • Modifica los campos que deseas actualizar.

  • Llama al método  projects.patch.

En el siguiente ejemplo, se actualiza el nombre del proyecto a myproject y la etiqueta color:blue:

Con el siguiente fragmento de código, se actualiza el nombre del proyecto a “myproject”:

Solicitud:

PATCH https://cloudresourcemanager.googleapis.com/v3/{project.name=PROJECT_NAME}
{
  updateMask=displayName,labels
}

En este comando, PROJECT_NAME es el nombre del proyecto que quieres actualizar.

Cuerpo JSON de la solicitud:

{
    "displayName": "myproject",
    "labels":
      {
        "color": "red"
      }
}

Respuesta:

{
    "projects": [
    {
        "name": "projects/951054970012",
        "parent": "folders/662951040570",
        "projectId": "Osaka-rain-234",
        "state": "ACTIVE",
        "displayName": "myproject"
        "createTime": "2013-11-13T20:31:53.308Z"
        "updateTime": "2013-11-13T20:35:42.308Z"
        "etag": "BwWUlZ6XEfY="
        "labels": {
            "color": "red"
        },
    }
    ]
}

Python

from googleapiclient import discovery
from oauth2client.client import OAuth2Credentials as creds
crm = discovery.build(
    'cloudresourcemanager', 'v3', 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()

Desactiva (borra) proyectos

Puedes cerrar proyectos con Cloud Console o el método projects.delete en la API. Para cerrar un proyecto de esta manera, un proyecto debe tener un estado de ciclo de vida de ACTIVE.

Este método marca de inmediato un proyecto que se borrará. Se envía un correo electrónico de notificación al usuario que inició la operación de eliminación y a los contactos de categoría técnica que se enumeran en Contactos esenciales según el mejor esfuerzo; si la notificación no se envía, el proyecto seguirá marcado para borrarse. Si no hay ningún contacto en la categoría Técnica, el contacto de resguardo no recibe una notificación.

Un proyecto que se marca para su eliminación no se puede usar. Si el proyecto tiene una cuenta de facturación asociada, se rompe esa asociación y no se restablece si se cancela la operación de eliminación del proyecto. Después de 30 días, el proyecto se borra por completo.

Para detener el proceso de eliminación del proyecto durante el período de 30 días, consulta los pasos para restablecer un proyecto. Puedes verificar la cantidad de días restantes en el período de 30 días mediante el método gcloud projects describe de la CLI de Google Cloud.

Al final del período de 30 días, el proyecto y todos sus recursos se borran y no se pueden recuperar. Hasta que se borra, el proyecto cuenta para la cuota del proyecto.

Si configuraste la facturación de un proyecto, es posible que no se borre por completo hasta que finalice el ciclo de facturación actual y tu cuenta se cargue con éxito. La cantidad y los tipos de servicios en uso también pueden afectar el momento en que el sistema borra de forma permanente un proyecto. Para obtener más información sobre la eliminación segura y la retención de datos, consulta la página sobre cómo conserva Google los datos que recopila.

Para cerrar un proyecto, sigue estos pasos:

Console

Para cerrar un proyecto con Cloud Console, haz lo siguiente:

  • En Google Cloud Console, abre la página Configuración (que se encuentra en IAM &Administrador).

    Abrir la página Configuración

  • Haz clic en Seleccionar un proyecto.

  • Selecciona el proyecto que deseas borrar y haz clic en Abrir.

  • Haz clic en Cerrar.

  • Ingresa el ID del proyecto y, luego, haz clic en Cerrar.

gcloud

Para borrar un proyecto, usa el comando gcloud projects delete:

gcloud projects delete PROJECT_ID

En este comando, PROJECT_ID es el ID del proyecto que deseas borrar.

API

Con el siguiente fragmento de código, se borra el proyecto especificado:

Solicitud:

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

Python

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

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

...

Soluciona problemas de eliminación de proyectos

Si el proceso para cerrar un proyecto falla, puedes encontrar más información en Soluciona problemas de eliminación de proyectos.

Restablece un proyecto

Los propietarios del proyecto pueden restablecer un proyecto borrado dentro del período de recuperación de 30 días, que comienza cuando se cierra el proyecto. El restablecimiento de un proyecto lo devuelve al estado en el que estaba antes de ser cerrado. Algunos recursos, como Cloud Storage o Pub/Sub, se borran antes de que finalice el período de 30 días y es posible que no se puedan recuperar por completo.

Es posible que algunos servicios deban reiniciarse de forma manual. Para obtener más información, consulta Reinicia los servicios de Google Cloud Platform.

Debes tener el permiso resourcemanager.projects.undelete en el proyecto que deseas restablecer. Para restablecer un proyecto, sigue estos pasos:

Console

Para ver el proyecto en Cloud Console, necesitas los siguientes permisos:

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

Para restablecer un proyecto con Cloud Console, sigue estos pasos:

  1. Ve a la página Administrar recursos en Google Cloud Console.

    Ir a la página Administrar recursos

  2. En el Selector de proyectos en la parte superior de la página, selecciona tu organización.

  3. Debajo de la lista de organizaciones, carpetas y proyectos, haz clic en Recursos pendientes de eliminación.

  4. Marca la casilla del proyecto que deseas restablecer y, luego, haz clic en Restablecer. En el cuadro de diálogo que aparece, confirma que deseas restablecer el proyecto.

gcloud

Para restablecer un proyecto, usa el comando gcloud projects undelete:

gcloud projects undelete PROJECT_ID

En este comando, PROJECT_ID es el ID del proyecto o el número del proyecto que deseas restablecer.

API

Con el siguiente fragmento de código, se restablece el proyecto especificado:

Solicitud:

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