프로젝트 JSON

프로젝트의 각 구성은 project.json 이라는 파일에 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 저장소와 통합하는 방법 을 참조하세요.

다음 샘플 요청에서 보듯이 Projects API를 호출하여 프로젝트 JSON을 프로그래밍 방식으로 내보낼 수 있습니다.

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