Créer et gérer des projets

Les projets Google Cloud constituent une base pour la création, l'activation et l'utilisation de tous les services Google Cloud, comme la gestion des API, la facturation, l'ajout et la suppression de collaborateurs, et la gestion des autorisations pour les ressources Google Cloud.

Cette page explique comment créer et gérer des projets Google Cloud à l'aide de l'API Resource Manager et de Google Cloud Console.

Avant de commencer

Pour en savoir plus sur les ressources du projet, consultez la présentation de la hiérarchie des ressources.

Les éléments suivants sont utilisés pour identifier votre projet :

  • Nom de projet : nom lisible attribué à votre projet.

    Le nom de projet n'est utilisé par aucune API Google. Vous pouvez modifier le nom d'un projet à tout moment, aussi bien pendant qu'après la création du projet. Les noms de projet ne doivent pas nécessairement être uniques.

  • ID de projet : identifiant unique personnalisable pour votre projet.

    L'ID de projet par défaut est composé du nom du projet et d'un numéro attribué de manière aléatoire. Vous ne pouvez personnaliser l'ID d'un projet que pendant la création de ce projet.

    Certains mots ne doivent pas être utilisés dans l'ID du projet. Par exemple, si vous utilisez les mots google ou ssl, ils ne figureront pas dans l'ID de projet généré.

  • Numéro de projet : identifiant unique généré automatiquement pour votre projet.

Le numéro de projet et l'ID de projet sont uniques à l'échelle de Google Cloud. Si un autre utilisateur a déjà choisi un certain ID du projet pour l'un de ses projets, vous ne pourrez pas utiliser ce même ID. Vous ne pouvez pas réutiliser l'ID d'un projet supprimé.

N'incluez aucune information sensible dans votre ID du projet (ou tout autre nom de ressource).

Créer un projet

Pour créer un projet, vous devez disposer de l'autorisation resourcemanager.projects.create. Cette autorisation est incluse dans le rôle de créateur de projet (roles/resourcemanager.projectCreator), qui est accordé par défaut à l'ensemble du domaine d'une nouvelle organisation et aux utilisateurs de l'essai gratuit. Pour savoir comment attribuer ce rôle à des utilisateurs individuels tout en limitant l'accès à l'échelle de l'organisation, consultez la page Gérer des rôles Organisation par défaut.

Si vous ne spécifiez pas la ressource parente, elle est automatiquement sélectionnée en fonction du domaine du compte utilisateur.

Vous pouvez créer un projet à l'aide de Cloud Console, de l'outil de ligne de commande gcloud ou de la méthode projects.create().

Console

Pour créer un projet, procédez comme suit :

  1. Accédez à la page Gérer les ressources de Cloud Console.
    ACCÉDER À LA PAGE "GÉRER LES RESSOURCES"
  2. Dans la liste déroulante Sélectionnez une organisation en haut de la page, sélectionnez l'organisation dans laquelle vous souhaitez créer un projet. Si vous êtes un utilisateur de l'essai gratuit, ignorez cette étape, car cette liste n'apparaît pas.
  3. Cliquez sur Créer un projet.
  4. Dans la fenêtre Nouveau projet qui s'affiche, saisissez un nom pour le projet, puis sélectionnez un compte de facturation si nécessaire.
  5. Si vous souhaitez ajouter le projet à un dossier, saisissez le nom du dossier dans la case Emplacement.
  6. Une fois les détails du nouveau projet renseignés, cliquez sur Créer.

gcloud

Pour créer un projet, utilisez la commande gcloud projects create :

gcloud projects create PROJECT_ID

PROJECT_ID correspond à l'ID du projet que vous souhaitez créer. L'ID du projet doit commencer par une lettre en minuscule et ne peut contenir que des lettres ASCII, des chiffres et des tirets. Il doit comporter entre 6 et 30 caractères.

Pour créer un projet ayant une organisation ou un dossier pour parent, utilisez les options --organization ou --folder. Comme une ressource ne peut avoir qu'un parent, seul l'un de ces indicateurs peut être utilisé.

gcloud projects create PROJECT_ID --organization=ORGANIZATION_ID

gcloud projects create PROJECT_ID --folder=FOLDER_ID

API

Certains mots ne peuvent pas être utilisés dans l'ID d'un projet créé à l'aide de la méthode projects.create(). Par exemple, ssl et google ne sont pas autorisés. Si vous utilisez l'un de ces mots, la requête renvoie une erreur INVALID_ARGUMENT.

La requête ci-dessous crée uniquement un projet et ne l'associe pas automatiquement à un compte de facturation. La méthode projects.updateBillingInfo permet de définir ou de mettre à jour le compte de facturation associé à un projet.

Requête pour créer un projet :

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

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

Réponse pour la création du projet :

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

Requête pour l'opération Get :

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

Réponse pour l'opération Get :

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

...

Créer un projet à l'aide d'un compte de service

Vous pouvez utiliser un compte de service pour automatiser la création du projet. À l'instar des comptes utilisateur, les comptes de service peuvent se voir accorder l'autorisation de créer des projets au sein d'une organisation. Les comptes de service ne sont pas autorisés à créer des projets en dehors d'une organisation et doivent spécifier la ressource parente lors de la création d'un projet. Les comptes de service peuvent créer un projet à l'aide de l'outil gcloud ou de la méthode projects.create().

Gérer des quotas de projets

S'il vous reste moins de 30 projets dans votre quota, une notification affiche le nombre de projets restants sur la page Nouveau projet. Une fois que vous avez atteint la limite de votre projet, vous devez demander une augmentation de cette limite pour pouvoir créer d'autres projets. Vous pouvez également planifier la suppression de certains projets au bout de 30 jours sur la page Gérer les ressources. Les projets supprimés de façon réversible par les utilisateurs sont comptabilisés dans votre quota. Ces projets seront entièrement supprimés au bout de 30 jours.

Pour demander une plus grande capacité relative aux projets dans votre quota, consultez la page d'assistance concernant les demandes d'augmentation du quota de facturation. Pour en savoir plus sur les quotas et leur utilisation, consultez la page d'assistance concernant les demandes de quota de projets dans le cadre de l'essai gratuit.

Identifier des projets

Pour interagir avec les ressources Google Cloud, vous devez fournir des informations permettant l'identification du projet pour chaque requête. Un projet est identifié par son ID de projet et son numéro de projet.

Pour obtenir l'ID et le numéro de votre projet, procédez comme suit :

  1. Accédez à la page Tableau de bord de Cloud Console.

    Accéder à la page "Tableau de bord"

  2. Cliquez sur la liste déroulante de sélection du projet située en haut de la page. Sélectionnez votre projet dans la fenêtre Sélectionnez une organisation qui vous est présentée.

L'ID et le numéro du projet sont tous deux affichés sur la fiche Informations sur le projet du tableau de bord du projet :

Dans l'exemple ci-dessus, le nom du projet est My Sample Project et l'ID du projet est my-sample-project-191923.

Obtenir un projet existant

Vous pouvez obtenir un projet existant à l'aide de Cloud Console ou de la méthode projects.get().

Console

Pour afficher un projet à l'aide de Google Cloud Console, procédez comme suit :

  1. Accédez à la page Tableau de bord de Google Cloud Console.

    Accéder à la page "Tableau de bord"

  2. Cliquez sur la liste déroulante de sélection du projet située en haut de la page. Sélectionnez votre projet dans la fenêtre Sélectionnez une organisation qui vous est présentée.

gcloud

Pour obtenir les métadonnées d'un projet, utilisez la commande gcloud projects describe :

gcloud projects describe PROJECT_ID

PROJECT_ID correspond à l'ID du projet que vous souhaitez afficher.

API

Requête :

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

Réponse :

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

...

Répertorier des projets

Vous pouvez répertorier tous les projets auxquels vous avez accès à l'aide de Cloud Console ou de la méthode projects.list().

Console

Pour répertorier des projets à l'aide de Google Cloud Console, procédez comme suit :

  • Accédez à Cloud Console.

    Accéder à Cloud Console

  • Tous vos projets sont répertoriés dans la liste déroulante des projets de la barre supérieure. Filtrez les projets à l'aide de la zone de texte Rechercher dans les projets et les dossiers.
  • Pour répertorier tous vos projets, cliquez sur Gérer les ressources. Filtrez vos projets à l'aide de la zone de texte Filtrer par nom, ID ou libellé.

gcloud

Pour répertorier tous les projets accessibles par votre compte actif, utilisez la commande gcloud projects list :

gcloud projects list

Cette commande sert à fournir l'ID, le nom et le numéro de chacun des projets pour lequel vous disposez des autorisations associées au rôle de propriétaire, d'éditeur ou de lecteur.

L'option --filter vous permet d'affiner les résultats. Elle permet de rechercher l'ID, le nom et le numéro du projet et renvoie uniquement les résultats contenant le terme filtré :

gcloud projects list --filter=test

La commande ci-dessus renvoie tous les projets pour lesquels vous disposez des autorisations associées au rôle de propriétaire, d'éditeur ou de lecteur, et inclut également le mot "test" dans les champs du nom, de l'ID ou du numéro du projet.

Si vous spécifiez un filtre contenant à la fois les champs parent.type et parent.id, l'autorisation resourcemanager.projects.list est vérifiée au niveau du parent. Si l'utilisateur dispose de cette autorisation, tous les projets situés sous le parent seront affichés une fois les filtres restants appliqués.

Si l'utilisateur ne dispose pas de cette autorisation, tous les projets pour lesquels il dispose de l'autorisation resourcemanager.projects.get seront renvoyés une fois les filtres restants appliqués.

Si aucun filtre n'est spécifié, l'appel renvoie les projets pour lesquels l'utilisateur dispose des autorisations resourcemanager.projects.get.

Pour en savoir plus sur la syntaxe des filtres, consultez la page gcloud topic filters.

API

Vous pouvez inclure des champs dans le corps de votre requête pour renvoyer des ressources de projet spécifiques qui correspondent au filtre et pour lesquelles le rôle Propriétaire, Éditeur ou Lecteur vous a été accordé.

L'extrait de code suivant renvoie la ressource de projet nommée "projet a" :

Requête :

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

{
    "name": "project a"
}

Réponse :

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

L'extrait de code suivant renvoie toutes les ressources de projet présentant un libellé "red" (rouge) :

Requête :

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

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

Réponse :

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

Si vous spécifiez les champs parent.type et parent.id dans le corps de la requête, l'autorisation resourcemanager.projects.list est vérifiée au niveau du parent. Si l'utilisateur dispose de cette autorisation, tous les projets situés sous le parent seront affichés une fois les filtres restants appliqués.

Si l'utilisateur ne dispose pas de cette autorisation, tous les projets pour lesquels il dispose de l'autorisation resourcemanager.projects.get seront renvoyés une fois les filtres restants appliqués.

Si aucun filtre n'est spécifié, l'appel renvoie les projets pour lesquels l'utilisateur dispose des autorisations 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()

...

L'extrait de code suivant répertorie tous les projets avec un libellé rouge :

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

Mettre à jour des projets

Vous pouvez mettre à jour des projets à l'aide de Cloud Console ou de la méthode projects.update(). Actuellement, les seuls champs pouvant être mis à jour sont ceux du nom du projet et des libellés. Vous ne pouvez pas modifier la valeur de l'ID du projet que vous utilisez à l'aide de l'outil de ligne de commande gcloud ou des requêtes d'API. Pour en savoir plus sur la mise à jour des projets, consultez la page concernant la ressource "Projet" dans la documentation de référence sur les API.

Console

Pour mettre à jour un champ d'un projet à l'aide de Cloud Console, procédez comme suit :

  • Ouvrez la page "Paramètres" dans Google Cloud Console.

    Ouvrir la page "Paramètres"

  • En haut de l'écran, cliquez sur la liste déroulante de sélection de projets.
  • Dans la fenêtre Sélectionner à partir de qui apparaît, cliquez sur la liste déroulante des organisations, puis sélectionnez votre organisation.
  • Sélectionnez votre projet dans la liste qui apparaît.
  • Pour changer le nom du projet, modifiez le texte du champ Nom du projet, puis cliquez sur Enregistrer.
  • Pour changer les libellés, cliquez sur Libellés dans le menu de gauche. Pour en savoir plus, découvrez comment utiliser des libellés.

gcloud

Pour mettre à jour le nom d'un projet, utilisez la commande gcloud projects update :

gcloud projects update PROJECT_ID --name=NAME

PROJECT_ID est l'ID du projet que vous souhaitez mettre à jour et NAME est le nouveau nom que vous souhaitez attribuer au projet.

API

Pour mettre à jour un projet, procédez comme suit :

  • Récupérez l'objet project à l'aide de la méthode projects.get().
  • Modifiez le champ que vous souhaitez mettre à jour.
  • Mettez à jour l'objet project à l'aide de la méthode projects.update().

L'extrait de code suivant met à jour le nom du projet, qui devient "myproject" :

Requête :

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

Réponse :

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

...

Arrêter (supprimer) des projets

Vous pouvez arrêter des projets à l'aide de Cloud Console ou de la méthode projects.delete(). Seuls les projets présentant l'état de cycle de vie ACTIVE peuvent être arrêtés de cette manière.

Cette méthode marque immédiatement un projet à supprimer et envoie un e-mail de notification au propriétaire du projet. Un projet marqué "à supprimer" n'est pas utilisable. Si un compte de facturation est associé au projet, cette association est interrompue et ne sera pas rétablie, même si l'opération de suppression du projet est immédiatement annulée. Après environ 30 jours, le projet est complètement supprimé. Pour arrêter ce processus pendant la période de 30 jours, consultez les étapes à suivre pour restaurer un projet.

À la fin de cette période de 30 jours, le projet et toutes ses ressources sont supprimés, et ne peuvent pas être récupérés. Jusqu'à sa suppression, le projet est pris en compte dans votre quota de projets.

Si vous avez configuré la facturation pour un projet, il risque de ne pas être complètement supprimé tant que le cycle de facturation en cours n'est pas fini et que votre compte n'est pas débité. Le nombre et les types de services utilisés peuvent également avoir une influence sur le moment où le système supprime définitivement un projet. Pour en savoir plus sur la conservation et la suppression sécurisée des données, consultez la page Comment Google conserve-t-il les données recueillies ?.

Pour arrêter un projet, procédez comme suit :

Console

Pour arrêter un projet à l'aide de Cloud Console, procédez comme suit :

  • Accédez à la page "Paramètres" (sous "IAM et administration") dans Google Cloud Console.

    Ouvrir la page "Paramètres"

  • Cliquez sur Sélectionner un projet.

  • Sélectionnez un projet que vous souhaitez supprimer, puis cliquez sur Ouvrir.

  • Cliquez sur Arrêter.

  • Saisissez l'ID du projet et cliquez sur Arrêter.

gcloud

Pour supprimer un projet, utilisez la commande gcloud projects delete :

gcloud projects delete PROJECT_ID

PROJECT_ID correspond à l'ID du projet que vous souhaitez supprimer.

API

L'extrait de code suivant supprime le projet spécifié :

Requête :

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

...

Restaurer un projet

Les propriétaires de projets peuvent restaurer un projet supprimé tout au long de la période de récupération de 30 jours, qui commence à l'arrêt du projet. Si vous restaurez un projet, il retournera à l'état dans lequel il se trouvait avant son arrêt. Les ressources Cloud Storage sont supprimées avant la fin de la période de 30 jours et peuvent ne pas être entièrement récupérables.

Certains services peuvent avoir besoin d'être redémarrés manuellement. Pour en savoir plus, consultez la page Redémarrage des services Google Cloud Platform.

Pour restaurer un projet, procédez comme suit :

  1. Accédez à la page Gérer les ressources de Google Cloud Console.

    Accéder à la page "Gérer les ressources"

  2. Dans la liste déroulante Organisations en haut à gauche, sélectionnez votre organisation.

  3. Sous la liste des projets, cliquez sur Ressources en attente de suppression.

  4. Cochez la case correspondant au projet que vous souhaitez restaurer, puis cliquez sur Restaurer. Dans la boîte de dialogue qui s'affiche, confirmez que vous souhaitez restaurer le projet.