IBM Cloud Docs
项目 JSON

项目 JSON

项目中的每个配置都以 JSON 形式存储在名为 project.json 的文件中。 项目需要对存储在 project.json 中的配置更改进行治理,例如,要求获得批准并确保在保存更改之前通过自动检查。

我的Project.json文件中有什么?

project.json 文件有几个部分:

  • 项目ID和描述,是用户定义的值。
  • 项目元数据,包括项目 CRN、位置、资源组和状态。
  • 包含对可部署架构和所有输入值的引用的配置数组。

建议从控制台中的 项目页面 创建初始 project.json。 这提供了一个可以编辑的初始 project.json 文件。 当您在控制台中创建项目时,会自动为您创建 project.json

项目元数据

如果发生了与项目相关的事件并且用户现在必须对其采取行动,则项目元数据可能包含 cumulative_needs_attention_view。如果将项目配置为Event Notifications的来源,则 event_notifications_crn 也是一个可选值。 有关更多信息,请参阅 为项目启用事件通知

  ...
  "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::"
  }
  ...

项目的 ID 和 CRN 不可编辑,并由IBM Cloud存储。 此外,项目实例本身的标签存储在全局搜索和标记中。

配置

项目中每个经过验证和批准的配置在 configs 数组中都有一个对象。 每个配置对象都有一个名称、一个输入数组和一个类型。 如果类型是IaC模板,则包含目录 locator_id

...
"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"
        }
      ]
   ]
...

使用控制台导出项目 JSON

作为处理项目的用户,您可以导出项目 JSON 以备份IBM Cloud项目服务之外的项目信息。

有兴趣在您自己的Git存储库中管理您的项目吗? 虽然您可以导出项目 JSON 来手动管理您的项目,但您也可以直接将您的项目与Git存储库集成。 有关更多信息,请转到 将项目与Git存储库集成

要导出项目 JSON,请完成以下步骤:

  1. 在IBM Cloud控制台中,单击导航菜单图标导航菜单图标>项目
  2. 在项目仪表板中,单击 “操作” 图标“操作”图标>导出 JSON
  3. 在模式窗口中单击“导出”。

使用 CLI 设置 JSON 输出格式

通过在命令行上使用以下 --output json 选项,您可以将命令的输出设置为 JSON:

--output json

使用 CLI 导出项目 JSON

作为处理项目的用户,您可以导出项目 JSON 以备份IBM Cloud项目服务之外的项目信息。

有兴趣在您自己的Git存储库中管理您的项目吗? 虽然您可以导出项目 JSON 来手动管理您的项目,但您也可以直接将您的项目与Git存储库集成。 有关更多信息,请转到 将项目与Git存储库集成

要使用 CLI 导出项目 JSON,请运行以下 ibmcloud project get 命令:

ibmcloud project get --id ID

请参阅 ibmcloud project get 了解示例命令和有关命令参数的更多信息。

使用 API 导出项目 JSON

作为处理项目的用户,您可以导出项目 JSON 以备份IBM Cloud项目服务之外的项目信息。

有兴趣在您自己的Git存储库中管理您的项目吗? 虽然您可以导出项目 JSON 来手动管理您的项目,但您也可以直接将您的项目与Git存储库集成。 有关更多信息,请转到 将项目与Git存储库集成

您可以通过调用 项目 API以编程方式导出项目 JSON,如以下示例请求所示:

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