2단계: 조직 만들기

이 단계에서는 Apigee 조직을 만듭니다.

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

  1. 명령줄에서 다음 명령어를 사용하여 gcloud 인증 사용자 인증 정보를 가져옵니다.

    Linux/MacOS

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

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

    echo $TOKEN

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

    Windows

    for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a

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

    echo %TOKEN%

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

  2. 1단계에서 PROJECT_ID 환경 변수를 만든 바 있습니다. 다음 환경 변수를 추가합니다. 필요한 조직 유형에 해당하는 탭(데이터 상주 없음 또는 데이터 상주)을 선택합니다.

    데이터 상주 없음

    Linux/macOS

    export ORG_NAME=$PROJECT_ID
    export ANALYTICS_REGION="ANALYTICS_REGION"
    export RUNTIMETYPE=HYBRID

    Windows

    set ORG_NAME=$PROJECT_ID
    set ANALYTICS_REGION="ANALYTICS_REGION"
    set RUNTIMETYPE=HYBRID

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

    • ORG_NAME (필수): 이 값은 PROJECT_ID와 일치해야 합니다.
    • ANALYTICS_REGION(필수): 분석 데이터 스토리지의 기본 리전입니다. 사용 가능한 Apigee API 애널리틱스 리전 목록은 Apigee 위치를 참조하세요.
    • RUNTIMETYPE(필수): HYBRID로 설정해야 합니다.

    데이터 상주

    Linux/macOS

    export ORG_NAME=$PROJECT_ID
    export ANALYTICS_REGION="ANALYTICS_REGION"
    export RUNTIMETYPE=HYBRID
    export CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
    export CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
    export BILLING_TYPE="SUBSCRIPTION"

    Windows

    set ORG_NAME=$PROJECT_ID
    set ANALYTICS_REGION="ANALYTICS_REGION"
    set RUNTIMETYPE=HYBRID
    set CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
    set CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
    set BILLING_TYPE="SUBSCRIPTION"

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

    • ORG_NAME: 이 값은 PROJECT_ID와 일치해야 합니다.
    • ANALYTICS_REGION: 분석 데이터 스토리지의 기본 리전입니다. 사용 가능한 Apigee API 애널리틱스 리전 목록은 Apigee 위치를 참조하세요.
    • RUNTIMETYPE: HYBRID으로 설정해야 합니다.
    • CONTROL_PLANE_LOCATION: 프록시 번들과 같은 고객 핵심 콘텐츠가 저장되는 위치입니다. 목록은 사용 가능한 Apigee API 컨트롤 플레인 리전을 참조하세요.
    • CONSUMER_DATA_REGION: 컨트롤 플레인 리전의 하위 리전입니다. CONTROL_PLANE_LOCATIONCONSUMER_DATA_REGION을 모두 지정해야 합니다. 사용 가능한 소비자 데이터 리전 목록은 Apigee 위치를 참조하세요.
    • BILLING_TYPE: "SUBSCRIPTION"으로 설정해야 합니다. Apigee Hybrid 조직의 결제 유형입니다. 자세한 내용은 구독 사용 권한을 참조하세요.

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

    export ORG_NAME=$PROJECT_ID
    export ANALYTICS_REGION="us-west1"
    export RUNTIMETYPE=HYBRID
    export CONSUMER_DATA_REGION="us-west1"
    export CONTROL_PLANE_LOCATION="us"
    export BILLING_TYPE="SUBSCRIPTION"
    
  3. 다음 Apigee API를 호출하여 조직을 만듭니다.

    데이터 상주 없음

    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
      -d '{
        "name":"'"$ORG_NAME"'",
        "runtimeType":"'"$RUNTIMETYPE"'",
        "analyticsRegion":"'"$ANALYTICS_REGION"'"
      }' \
      "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"

    데이터 상주

    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
      -d '{
        "name":"'"$ORG_NAME"'",
        "billingType":"'"$BILLING_TYPE"'",
        "runtimeType":"'"$RUNTIMETYPE"'",
        "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'",
        "analyticsRegion":"'"$ANALYTICS_REGION"'"
      }' \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"

    생성 요청에 성공하면 조직 API가 다음과 유사한 메시지로 응답합니다.

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

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

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

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

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

  4. 장기 실행 작업 ID를 환경 변수에 저장합니다. 이는 향후 관리 작업에 유용합니다.

    구문

    export LONG_RUNNING_OPERATION_ID=LONG_RUNNING_OPERATION_ID

    export LONG_RUNNING_OPERATION_ID=6abc8a72-46de-f9da-bcfe-70d9ab347e4f
  5. 생성 요청에 의해 ID가 반환된 장기 실행 작업의 상태를 확인할 수 있습니다. 이를 위해 작업 API를 사용합니다. 예를 들면 다음과 같습니다.

    데이터 상주 없음

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

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

    IN_PROGRESS

    Apigee에서 계속 조직을 만들고 있는 경우 Apigee가 IN_PROGRESS 상태로 응답합니다. 예를 들면 다음과 같습니다.

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

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

    FINISHED

    조직이 프로비저닝되면 장기 실행 작업 상태는 FINISHED입니다. 예를 들면 다음과 같습니다.

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
        "name": "ORG_NAME",
        "description": "",
        "createdAt": "1626237148461",
        "lastModifiedAt": "1626237149384",
        "properties": {
          "property": [
            {
              "name": "features.hybrid.enabled",
              "value": "true"
            },
            {
              "name": "features.mart.connect.enabled",
              "value": "true"
            }
          ]
        },
        "analyticsRegion": "ANALYTICS_REGION",
        "runtimeType": "HYBRID",
        "subscriptionType": "TRIAL",
        "state": "ACTIVE",
        "billingType": "EVALUATION",
        "expiresAt": "1631421073171",
        "addonsConfig": {
          "advancedApiOpsConfig": {},
          "integrationConfig": {},
          "monetizationConfig": {}
        }
      }
    }

    데이터 상주

    curl -H "Authorization: Bearer $TOKEN" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$LONG_RUNNING_OPERATION_ID"

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

    IN_PROGRESS

    Apigee에서 계속 조직을 만들고 있는 경우 Apigee가 IN_PROGRESS 상태로 응답합니다. 예를 들면 다음과 같습니다.

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

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

    FINISHED

    조직이 프로비저닝되면 장기 실행 작업 상태는 FINISHED입니다. 예를 들면 다음과 같습니다.

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
        "name": "ORG_NAME",
        "description": "",
        "createdAt": "1626237148461",
        "lastModifiedAt": "1626237149384",
        "properties": {
          "property": [
            {
              "name": "features.hybrid.enabled",
              "value": "true"
            },
            {
              "name": "features.mart.connect.enabled",
              "value": "true"
            }
          ]
        },
        "analyticsRegion": "ANALYTICS_REGION",
        "runtimeType": "HYBRID",
        "subscriptionType": "TRIAL",
        "state": "ACTIVE",
        "billingType": "SUBSCRIPTION",
        "apiConsumerDataLocation": "CONSUMER_DATA_REGION",
        "expiresAt": "1631421073171",
        "addonsConfig": {
          "advancedApiOpsConfig": {},
          "integrationConfig": {},
          "monetizationConfig": {}
        }
      }
    }
  6. Apigee Organizations API를 사용하여 생성된 조직에 대한 정보를 검색할 수 있습니다.

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

    데이터 상주 없음

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

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

    {
      "name": "apigee-example",
      "createdAt": "1626237148461",
      "lastModifiedAt": "1626237149384",
      "properties": {
        "property": [
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          },
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-west1",
      "runtimeType": "HYBRID",
      "subscriptionType": "PAID",
      "projectId": "apigee-example",
      "state": "ACTIVE",
      "billingType": "SUBSCRIPTION",
      "expiresAt": "1631421073171",
      "addonsConfig": {
        "advancedApiOpsConfig": {},
        "integrationConfig": {},
        "monetizationConfig": {}
      }
    }

    데이터 상주

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

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

    {
      "name": "apigee-example",
      "createdAt": "1626237148461",
      "lastModifiedAt": "1626237149384",
      "properties": {
        "property": [
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          },
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-west1",
      "runtimeType": "HYBRID",
      "subscriptionType": "PAID",
      "projectId": "apigee-example",
      "state": "ACTIVE",
      "billingType": "SUBSCRIPTION",
      "expiresAt": "1631421073171",
      "addonsConfig": {
        "advancedApiOpsConfig": {},
        "integrationConfig": {},
        "monetizationConfig": {}
      }
    }

조직 만들기 문제 해결

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

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

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 영업팀에 문의하세요.
400 'global' violates constraint in constraints/gcp.resourceLocations on the resource projects/PROJECT_ID, Control Plane Region 유료 구독 사용 권한이 없는 조직을 만들려고 했습니다. 평가 유형의 Apigee Hybrid 조직은 데이터 상주를 지원하지 않습니다.
400 runtimeType HYBRID is not supported for PAYG_V2, use CLOUD instead: invalid argument '사용한 만큼만 지불' (PAYG) 사용 권한이 있는 프로젝트에서 조직을 만들려고 했습니다. 조직 사용 권한에 대해 질문이 있으면 Google Cloud 계정 담당자에게 문의하세요.
401 Request had invalid authentication credentials gcloud 인증 토큰이 잘못되었거나, 오래되었거나 개발자가 요청에 인증 토큰을 포함하지 않았습니다. 새 토큰을 생성하고 주소를 다시 보내세요.
403 Permission denied on resource project PROJECT_ID 잘못된 프로젝트 ID 또는 경로가 포함된 요청을 보냈을 수 있습니다.
403 Unable to retrieve project information 아직 생성되거나 프로비저닝되지 않은 조직입니다. Operations API에 요청을 전송하여 5단계에 설명된 장기 실행 작업 상태를 확인할 수 있습니다.
403 Permission denied on resource project organizations/PROJECT_ID/deployedIngressConfig 조직을 만들려고 했지만 조직에 올바른 사용 권한이 없습니다. 조직 사용 권한에 대해 질문이 있으면 Google Cloud 계정 담당자에게 문의하세요.
409 Organization already exists Google Cloud 프로젝트용으로 두 개 이상의 조직을 만들려고 했습니다. 프로젝트당 하나의 조직만 만들 수 있습니다.
409 Org PROPOSED_ORG_NAME already exists 이미 존재하는 조직과 동일한 ID를 가지는 조직을 만들려고 했습니다. 조직 ID는 모든 하이브리드 고객에서 고유해야 합니다. 새로 제안된 조직 ID로 다시 제출합니다(예: 시도한 이전 ID의 끝에 숫자 값을 추가).

다음 단계

3단계: 환경 그룹 만들기로 이동하기