4단계: 조직 만들기

Google Cloud 계정 및 프로젝트를 만들고 API를 사용 설정했습니다. 이제 조직을 만들 수 있습니다.

기본 요건

조직을 만들려면 다음 조건 중 하나를 충족해야 합니다.

  • 평가 계정이 있어야 합니다. 평가 계정은 60일 후에 만료됩니다. 이때 조직은 삭제됩니다.
  • 유료 계정 소지

둘 모두에 해당하지 않으면 Apigee 영업팀에 문의하여 계속하세요.

새 조직을 만들고 프로비저닝하려면 다음 절차를 따르세요.

  1. 다음 예시와 같이 명령줄에서 gcloud 인증 사용자 인증 정보를 가져옵니다.

    TOKEN=$(gcloud auth print-access-token)

    토큰이 입력되었는지 확인하려면 다음 예시와 같이 echo를 사용합니다.

    echo $TOKEN

    그러면 토큰이 인코딩된 문자열로 표시됩니다.

    자세한 내용은 gcloud 명령줄 도구 개요를 참조하세요.

  2. 인증된 POST 요청을 Create Organizations API로 보냅니다.

    다음 예시에서는 조직을 만드는 요청 구조를 보여줍니다.

    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
      -d '{
        "name":"org_name",
        "displayName":"display_name",
        "description":"organization_description",
        "runtimeType":"runtime_type",
        "analyticsRegion":"analytics_region"
      }' \
      "https://apigee.googleapis.com/v1/organizations?parent=projects/project_ID"

    각 항목의 의미는 다음과 같습니다.

    • (필수) org_name은 하이브리드 지원 조직에서 사용하려는 프로그래매틱 ID입니다. 조직 ID는 2단계: Google Cloud 프로젝트 만들기에서 만든 Google Cloud 프로젝트 ID와 일치해야 합니다. 예를 들면 hybrid-42입니다.
    • (필수) runtime_type은 Apigee 조직의 런타임 유형입니다. 여기서 HYBRID는 사용자 관리형 Apigee Hybrid 런타임입니다.
    • (필수) analytics_region는 분석 데이터 스토리지의 기본 리전입니다. 다음 중 하나를 선택합니다.
      asia-northeast1 australia-southeast1 us-west1
      us-central1 us-east1 europe-west1
      europe-west2

      이 옵션은 지리적으로 가까운 리전이나 조직에 다른 스토리지 요구사항이 있는 경우 선택할 수 있도록 제공됩니다.

    • (필수) project_ID는 새 하이브리드 지원 조직에 결합할 Google Cloud 프로젝트입니다. 이 ID는 2단계: Google Cloud 프로젝트 만들기에서 생성한 ID입니다.
    • (선택사항) display_name은 조직의 사용자 친화적인 이름입니다. 이 값은 고유할 필요가 없으며 공백과 특수문자를 포함할 수 있습니다. 예를 들면 'My Hybrid Organization'과 같습니다.
    • (선택사항) organization_description은 목적에 맞게 알림으로 사용하려는 조직에 대한 정보입니다. 예를 들면 'My first organization'입니다.

    성공적인 생성 요청에는 Organizations API가 다음과 유사한 메시지로 응답해야 합니다.

    {
      "name": "organizations/organization_ID/operations/long_running_operation_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/organization_ID",
        "state": "IN_PROGRESS"
      }
    }

    각 항목의 의미는 다음과 같습니다.

    • long_running_operation_ID는 장기 실행 비동기 작업의 UUID입니다. 이 ID를 사용하여 조직 생명 요청 상태를 확인할 수 있습니다(이후에 설명).
    • organization_ID은 현재 생성 중인 새 조직의 ID입니다.

    응답의 state 속성이 나타내는 것처럼 Apigee는 새 조직을 만들기 시작하였으므로 상태는 IN_PROGRESS입니다. 이 프로세스는 몇 분이 소요될 수 있습니다.

    오류가 발생하면 조직 만들기 문제 해결을 참조하세요.

  3. 초기 생성 요청에서 ID Apigee가 반환한 장기 실행 작업의 상태를 확인할 수 있습니다. 이렇게 하려면 다음 예시와 같이 Operations API를 사용합니다.
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/organization_ID/operations/long_running_operation_ID"

    다음 예시는 이 요청에 대한 가능한 응답을 보여줍니다.

    FINISHED

    조직이 프로비저닝되면 다음 예시와 같이 장기 실행 작업의 상태가 FINISHED입니다.

    {
        "operations": [
          {
            "name": "organizations/organization_ID/operations/long_running_operation_ID",
            "metadata": {
              "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
              "operationType": "INSERT",
              "targetResourceName": "organizations/organization_ID",
              "state": "FINISHED"
            },
            "done": true,
            "response": {
              "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
              "name": "organization_ID",
              "createdAt": "1572550611",
              "lastModifiedAt": "1572550611",
              "displayName": "display_name"
              "description": "description"
              "properties": {
                "property": [
                  {
                    "name": "features.hybrid.enabled",
                    "value": "true"
                  }
                ]
              },
              "analyticsRegion": "us-east1"
              "runtimeType": "HYBRID",
            }
          }
        ]
      }

    설명을 입력하지 않으면 해당 필드가 응답에 표시되지 않습니다.

    수고하셨습니다 새 조직을 만들었으며 바로 사용할 수 있습니다. 5단계: 환경 추가를 계속 진행합니다.

    IN_PROGRESS

    Apigee가 여전히 조직을 만드는 경우 Apigee는 다음 예시와 같이 IN_PROGRESS 상태로 응답합니다.

    {
        "name": "organizations/organization_ID/operations/long_running_operation_ID",
        "metadata": {
          "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
          "operationType": "INSERT",
          "targetResourceName": "organizations/organization_ID",
          "state": "IN_PROGRESS"
        }
      }

    만들기 프로세스가 완료되었는지 확인하기 전에 잠시 기다려야 합니다.

조직 만들기 문제 해결

Create organizations API를 통해 조직을 만들면 오류 응답을 받을 수 있습니다. 응답은 다음과 같습니다.

{
  "error": {
    "code": HTTP_error_code,
    "message": "short_error_message",
    "status": "high_level_error_type",
    "details": [
      {
        "@type": "specific_error_type",
        "detail": "expanded_error_description"
      }
    ]
  }
}

다음 예시는 일반적인 오류에 대한 응답을 보여줍니다. 조직 ID에 잘못된 문자가 포함되어 있습니다(대문자는 조직 ID에서 허용되지 않음).

{
  "error": {
    "code": 400,
    "message": "invalid Organization ID \"MY-ORG\": \"MY-ORG\" is an invalid Organization ID",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.DebugInfo",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: invalid Organization ID \"MY-ORG\":
          \"My-ORG\" is an invalid Organization ID [google.rpc.error_details_ext]
          { message: \"invalid Organization ID \\\"MY-ORG\\\": \\\"MY-ORG\\\" is an invalid
          Organization ID\" }"
      }
    ]
  }
}

이 경우 조직의 이름을 소문자로 바꾸고 요청을 다시 보낼 수 있습니다.

다음 표에는 새 조직을 만들려고 할 때 발생할 수 있는 오류 및 잠재적인 해결 방법이 나와 있습니다.

HTTP 오류 코드 HTTP 오류 설명
400 Invalid JSON payload received 요청의 데이터 구조에 구문 오류가 포함되어 있거나 엔드포인트 경로가 잘못되었습니다.
400 Invalid organization ID 요청한 조직 ID에는 대문자나 하이픈 이외의 특수문자가 포함될 수 없습니다. 소문자, 숫자 및 하이픈만을 포함해야 합니다. 최대 32자까지 가능합니다.
400 Unsupported analytics region 요청 본문에서 analyticsRegion 값을 지정하지 않았거나 지정한 값이 유효한 옵션 중 하나가 아닙니다.
400 Does not have an Apigee entitlement 2단계: Google Cloud 프로젝트 만들기에서 만든 Google Cloud 프로젝트에 하이브리드가 아직 사용 설정되지 않았습니다. 이는 Google Cloud 계정과 관련된 결제 문제 또는 다른 오류가 있을 수 있음을 나타낼 수 있습니다. 자세한 내용은 Apigee 영업팀에 문의하세요.
401 Request had invalid authentication credentials gcloud 인증 토큰이 잘못되었거나 오래되었거나 요청에 인증 토큰이 포함되지 않았습니다. 새 토큰을 생성하고 주소를 다시 보내세요.
403 Permission denied on resource project project_ID 잘못된 프로젝트 ID 또는 경로가 포함된 요청을 보냈을 수 있습니다.
403 Unable to retrieve project information 아직 생성되거나 프로비저닝되지 않은 조직입니다. Operations API에 요청을 전송하여 위의 절차에 설명된 장기 실행 작업 상태를 확인할 수 있습니다.
409 Organization already exists Google Cloud 프로젝트용으로 두 개 이상의 조직을 만들려고 했습니다. 프로젝트당 하나의 조직만 만들 수 있습니다.
409 Org proposed_organization_ID already exists 이미 존재하는 조직과 동일한 ID를 가지는 조직을 만들려고 했습니다. 조직 ID는 모든 하이브리드 고객에서 고유해야 합니다. 새로 제안된 조직 ID로 다시 제출합니다(예: 시도한 이전 ID의 끝에 숫자 값을 추가).

조직 정보 가져오기

자신의 계정이 액세스할 수 있는 모든 조직의 목록을 가져오거나 ID별로 특정 조직에 대한 세부정보를 가져올 수 있습니다. 이러한 작업을 수행하려면 Organizations API를 사용합니다.

조직 나열

모든 조직의 목록을 가져오려면 다음 절차를 따르세요.

다음 List Organizations API 엔드포인트에 본문 없이 GET 요청을 보냅니다.

https://apigee.googleapis.com/v1/organizations

예를 들면 다음과 같습니다.

curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations"

요청에 대한 응답에는 액세스할 수 있는 모든 하이브리드 지원 조직의 배열이 JSON 형식으로 포함됩니다.

다음 예는 'my-org-42'라는 단일 조직에 대한 응답을 보여줍니다.

{
  "organizations": [
    {
      "organization": "my-org-42",
      "projectIds": [
        "my-project"
      ]
    }
  ]
}

세부정보 보기

단일 조직에 대한 세부정보를 확인하려면 다음 절차를 따르세요.

다음 Get Organizations API 엔드포인트에 본문 없이 GET 요청을 보냅니다.

https://apigee.googleapis.com/v1/organizations/organization_ID

다음 예는 'my-org-42' 조직에 대한 세부 정보를 가져옵니다.

curl -H "Authorization: Bearer $TOKEN"
  "https://apigee.googleapis.com/v1/organizations/my-org-42"

요청에 대한 응답에는 지정된 조직에 대한 세부정보가 JSON 형식으로 포함됩니다.

다음 예는 'my-org-42' 조직에 대한 세부 정보가 포함된 응답을 보여줍니다.

{
  "name": "my-org-42",
  "createdAt": "1572550611",
  "lastModifiedAt": "1572550611",
  "environments": [
    "my-environment"
  ],
  "analyticsRegion": "us-east1"
}
1 2 3 4 (다음) 5단계: 환경 추가