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 Google Cloud Console y la API de Resource Manager.

Antes de comenzar

Lee acerca del recurso del 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 para tu proyecto que se puede personalizar.

    El ID del proyecto es un ID único asignado por el usuario que pueden usar las API de Google. Si no especificas un ID del proyecto durante la creación, se generará uno automáticamente.

    El ID del proyecto debe ser una string única de entre 6 y 30 letras en minúscula, dígitos o guiones. Debe comenzar con una letra y no puede tener guiones finales. No puedes cambiar un ID del proyecto una vez que se creó. No puedes volver a usar un ID de proyecto en uso o uno que se usó para un proyecto borrado.

    Algunas palabras no se pueden usar en los ID de los proyectos. Si usas palabras restringidas en el nombre del proyecto, como google o ssl, el ID generado del proyecto no incluirá estas palabras.

  • Número de proyecto: Un identificador único generado de forma automática para tu proyecto.

En Google Cloud, el número y el ID del proyecto son únicos. Si otro usuario es propietario del ID del proyecto, no podrás usar el mismo ID. No puedes reutilizar el ID de un proyecto borrado.

Cuando elijas el ID de tu proyecto (o cualquier nombre de recurso), no incluyas información sensible en él.

Crea un proyecto

Para crear un proyecto, debes tener el permiso resourcemanager.projects.create. Este permiso se incluye en la función roles/resourcemanager.projectCreator del creador del proyecto, que se otorga de forma predeterminada a todo el dominio de una nueva organización y a los usuarios de la prueba gratuita. Para obtener información sobre cómo otorgar a las personas la función y limitar el acceso en toda la organización, consulta la página sobre cómo administrar 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 herramienta de línea de comandos de gcloud o el método projects.create().

Console

Para crear un proyecto nuevo, realiza los siguientes pasos:

  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 mostrará 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/v1/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/v1/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.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()

...

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 mediante la herramienta 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 borrarán por completo después de 30 días.

Si deseas solicitar capacidad adicional para los proyectos en tu cuota, consulta la página de asistencia sobre cómo solicitar un aumento de la cuota de facturación. 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 de proyecto, sigue estos pasos:

  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, sigue estos pasos:

  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/v1beta1/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', 'v1', http=creds.authorize(httplib2.Http()))

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

...

Enumera los proyectos

Puedes enumerar todos los proyectos a los que tienes acceso con Cloud Console o el método projects.list().

Console

Para enumerar los proyectos con Google Cloud Console, sigue estos pasos:

  • Ve a Cloud Console.

    Ir a Cloud Console

  • Todos tus proyectos se enumeran en el menú desplegable proyectos de la barra superior. Usa el cuadro de texto Buscar en proyectos y carpetas para filtrar los proyectos.
  • Para enumerar todos tus proyectos, haz clic en Administrar recursos. Usa el cuadro de texto Filtrar por nombre, ID o etiqueta para filtrar tus proyectos.

gcloud

Para enumerar todos los proyectos a los que puedes acceder con tu cuenta activa, usa el comando gcloud projects list:

gcloud projects list

Con este comando, se proporcionará el ID, el nombre y el número de cada proyecto en el que tengas los permisos de propietario, editor o visualizador.

Puedes usar la marca --filter para reducir los resultados. Con esta marca, se busca el ID, el nombre y el número del proyecto, y solo se muestran los resultados en los que existe el término filtrado:

gcloud projects list --filter=test

Con el comando anterior, se mostrarán todos los proyectos en los que tengas los permiso de propietario, editor o visualizador, y también se incluirá la palabra “test” en los campos de nombre, ID y número del proyecto.

Si especificas un filtro que tiene los campos parent.type y parent.id, 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.

Para obtener más información sobre la sintaxis del filtro, consulta gcloud topic filters.

API

Puedes incluir campos en el cuerpo de la solicitud para que muestren los recursos específicos del proyecto que coincidan con el filtro y en los que se te hayan otorgado las funciones de propietario, editor o visualizador.

En el siguiente fragmento de código, se muestra el recurso del proyecto con el nombre “project a”:

Solicitud:

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

{
    "name": "project a"
}

Respuesta:

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

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

Solicitud:

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

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

Respuesta:

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

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.

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()

...

Con el siguiente fragmento de código, se enumeran todos los proyectos con una etiqueta roja:

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

Actualiza los proyectos

Puedes actualizar los proyectos con Cloud Console o el método projects.update(). En la actualidad, los únicos campos que se pueden actualizar son las etiquetas y el nombre del proyecto. No puedes cambiar el valor del ID del proyecto que usas con las solicitudes a la API o la herramienta de línea de comandos de gcloud. Para obtener más información sobre cómo actualizar proyectos, consulta la página de referencia de la API del proyecto.

Console

Para actualizar el campo 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 la herramienta de línea de comandos de gcloud.

API

Para actualizar un proyecto, sigue estos pasos:

  • Obtén el objeto del project con el método projects.get().
  • Modifica el campo que deseas actualizar.
  • Actualiza el objeto del project con el método projects.update().

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

Solicitud:

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

Respuesta:

    {
        "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()

...

Desactiva (borra) proyectos

Puedes cerrar los proyectos con Cloud Console o el método projects.delete(). Un proyecto debe tener un estado de ciclo de vida ACTIVE para que se pueda cerrar de esta forma.

Con este método, se marca de forma inmediata un proyecto para que se borre y se envía una notificación por correo electrónico al propietario del proyecto. No se puede usar un proyecto que se haya marcado para que se elimine. Si el proyecto tiene una cuenta de facturación asociada, se rompe esa asociación y no se restablecerá, incluso si la operación de eliminación del proyecto se cancela de forma inmediata. Después de aproximadamente 30 días, el proyecto se borrará por completo. Para detener este proceso durante el período de 30 días, consulta los pasos para restablecer un proyecto.

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 haya borrado, el proyecto se contará en la cuota de tu 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, sigue estos pasos:

  • Abre la página Configuración (que se encuentra en IAM y administrador) en Google Cloud Console.

    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/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()

...

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. Los recursos de Cloud Storage 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, debes hacer lo siguiente:

  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/v1/projects/my-project-123:undelete