Projet JSON

Chaque configuration d'un projet est stockée au format JSON dans un fichier appelé project.json. Les projets nécessitent une gouvernance sur les modifications de configuration stockées dans project.json, par exemple, en exigeant des approbations et en garantissant que les contrôles automatisés réussissent avant que les modifications ne soient enregistrées.

Que contient mon fichier Project.json ?

Le fichier project.json comporte plusieurs parties:

  • L'ID et la description du projet, qui sont des valeurs définies par l'utilisateur.
  • Les métadonnées du projet, qui incluent le CRN du projet, l'emplacement, le groupe de ressources et l'état.
  • Un tableau de configurations contenant une référence à l’architecture déployable et toutes les valeurs d’entrée.

Il est recommandé de créer votre project.json initial à partir de la page Projets dans la console. Cela fournit un fichier project.json initial qui peut être modifié. Lorsque vous créez un projet dans la console, le project.json est automatiquement créé pour vous.

Métadonnées du projet

Les métadonnées du projet peuvent contenir cumulative_needs_attention_view s'il y a des événements qui se sont produits en rapport avec le projet et sur lesquels l'utilisateur doit maintenant agir. event_notifications_crn est également une valeur facultative si le projet est configuré comme source pour Event Notifications. Pour plus d'informations, voir Activation des notifications d'événements pour les projets.

  ...
  "id": "cfbf9050-ab8e-ac97-b01b-ab5af830be8a",
  "name": "CRA Test",
  "description": "",
  "metadata": {
    "crn": "crn:v1:staging:public:project:us-south:a/<account_id>:cfbf9050-ab8e-ac97-b01b-ab5af830be8a::",
    "location": "us-south",
    "resource_group": "Default",
    "state": "READY",
    "cumulative_needs_attention_view": [
      {
        "event": "config.defn.update"
      },
      {
        "event_id": "489f0090-6d7c-4af5-8f20-9106543e4974"
      },
      {
        "config_id": "069ab83e-5016-4bf2-bd50-cc95cf678293"
      },
      {
        "config_version": 1
      }
    ],
    "event_notifications_crn": "crn:v1:staging:public:event-notifications:us-south:a/<account_id>:instance-id::"
  }
  ...

L'ID et le CRN d'un projet ne peuvent pas être modifiés et sont stockés par IBM Cloud. De plus, les balises de l'instance du projet elle-même sont stockées dans la recherche et le balisage globaux.

Configurations

Chaque configuration validée et approuvée dans un projet possède un objet dans le tableau configs. Chaque objet de configuration possède un nom, un tableau d'entrées et un type. Si le type est un modèle IaC, alors un catalogue locator_id est inclus.

...
"configs": [
    {
      "id": "cfbf9050-ab8e-ac97-b01b-ab5af830be8a",
      "name": "my-deployment",
      "description": "A microservice to deploy on top of ACME infrastructure.",
      "locator_id": "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.018edf04-e772-4ca2-9785-03e8e03bef72-global",
      "type": "terraform_template",
      "input": [
        {
          "name": "cos_bucket_name",
          "type": "string",
          "required": true,
          "default": "sample-cos-bucket",
          "value": ""
        },
        {
          "name": "ibmcloud_api_key",
          "type": "password",
          "required": true,
          "default": "__NOT_SET__",
          "value": ""
        },
      ],
      "output": [
        {
          "name": "resource_group_id"
        },
        {
          "name": "logdna_id"
        }
      ]
   ]
...

Exporter le projet JSON en utilisant la console

En tant qu'utilisateur travaillant avec des projets, vous pouvez exporter le projet JSON pour sauvegarder les informations du projet en dehors du service Projets IBM Cloud.

Vous souhaitez gérer votre projet dans votre propre référentiel Git ? Bien que vous puissiez exporter le projet JSON pour gérer manuellement votre projet, vous pouvez également intégrer votre projet directement à un référentiel Git. Pour plus d’informations, accédez à Intégration d’un projet à un référentiel Git.

Pour exporter le JSON du projet, suivez les étapes suivantes:

  1. Dans la console IBM Cloud, cliquez sur l'icône du menu de navigation Icône du menu de navigation > Projets.
  2. Depuis le tableau de bord du projet, cliquez sur l'icône Actions Icône Actions > Exporter JSON
  3. Dans la fenêtre modale, cliquez sur Exporter.

Définition du format de sortie JSON à l'aide de la CLI

En utilisant l'option --output json suivante sur la ligne de commande, vous pouvez définir la sortie d'une commande sur JSON :

--output json

Exporter le projet JSON à l'aide de la CLI

En tant qu'utilisateur travaillant avec des projets, vous pouvez exporter le projet JSON pour sauvegarder les informations du projet en dehors du service Projets IBM Cloud.

Vous souhaitez gérer votre projet dans votre propre référentiel Git ? Bien que vous puissiez exporter le projet JSON pour gérer manuellement votre projet, vous pouvez également intégrer votre projet directement à un référentiel Git. Pour plus d’informations, accédez à Intégration d’un projet à un référentiel Git.

Pour exporter le projet JSON à l'aide de la CLI, exécutez la commande ibmcloud project get suivante :

ibmcloud project get --id ID

Voir ibmcloud project get pour un exemple de commande et plus d’informations sur les paramètres de commande.

Exporter le projet JSON en utilisant l'API

En tant qu'utilisateur travaillant avec des projets, vous pouvez exporter le projet JSON pour sauvegarder les informations du projet en dehors du service Projets IBM Cloud.

Vous souhaitez gérer votre projet dans votre propre référentiel Git ? Bien que vous puissiez exporter le projet JSON pour gérer manuellement votre projet, vous pouvez également intégrer votre projet directement à un référentiel Git. Pour plus d’informations, accédez à Intégration d’un projet à un référentiel Git.

Vous pouvez exporter par programmation le projet JSON en appelant l'API Projets comme indiqué dans l'exemple de requête suivant :

curl -X GET --location --header "Authorization: Bearer {iam_token}" \
  --header "Accept: application/json" \  
  "{base_url}/v1/projects/{id}"