8단계: 보관 파일을 프로덕션으로 승격하기

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서 보기

이 단계에서는 API 프록시 구성의 보관 파일을 Apigee 조직의 프로덕션 환경으로 승격합니다.

  1. 환경 만들기의 단계에 따라 다음을 수행합니다.
    1. Apigee 조직에서 새 prod 환경을 만들고 아카이브를 배포 유형으로 사용 설정합니다. UI 또는 API를 사용합니다.

      예:

      보관 파일 배포 유형 설정을 보여주는 새로운 환경 대화상자

    2. Instances Attachments API를 사용하여 런타임 인스턴스에 환경을 연결합니다.

      이 명령어는 장기 실행 작업을 트리거합니다. 계속하기 전에 환경이 런타임에 연결되었는지 확인하세요.

    3. 환경 그룹이 아직 없는 경우 Create environment groups API를 사용하여 환경 그룹을 만듭니다.

      계속하기 전에 환경 그룹이 생성되었는지 확인합니다. 다음과 같은 요청을 사용하여 새 그룹의 상태를 확인할 수 있습니다.

      curl -i -H "$AUTH" -H "Content-Type:application/json" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/ENVIRONMENT_NAME"
    4. Environment group attachment API를 사용하여 새 환경을 환경 그룹에 연결합니다.

      환경을 그룹에 연결하면 그룹의 호스트 이름을 통해 해당 환경의 프록시가 라우팅됩니다. 이는 완료하는 데 몇 분 정도 걸릴 수 있는 장기 실행 작업을 트리거합니다. 다음 단계로 계속하기 전에 1~2분 정도 기다리는 것이 좋습니다. 그 동안 이전과 마찬가지로 작업 상태를 확인해도 좋습니다.

  2. 로컬 개발 환경에서 새 prod 환경을 만듭니다.
    1. VS Code의 Apigee에서 Apigee 섹션의 environments 폴더 위에 커서를 놓고 만들기 아이콘를 클릭합니다.

      environments 폴더 위에 커서를 놓으면 +가 표시됨

      환경 만들기 마법사가 열립니다.

    2. 환경 이름으로 prod를 입력하고 Enter 키를 누릅니다.

      환경이 생성됩니다.

    3. 콘텐츠를 보려면 Apigee 섹션에서 prod 환경 폴더를 펼칩니다.
    4. Apigee 섹션에서 deployments.json 파일 위에 커서를 놓고 구성 아이콘를 클릭합니다.

      배포 마법사가 열립니다.

    5. helloworld API 프록시를 선택하여 배포에 추가하고 확인을 클릭합니다.

      편집기에 deployments.json 파일이 열립니다. 아래와 같이 proxies 배포 배열에 helloworld API 프록시를 포함하도록 파일이 업데이트되었습니다.

      {
        "proxies": [
           "helloworld"
        ],
        "sharedflows": []
      }
  3. API 프록시 구성 보관 파일을 Apigee 조직의 prod 환경에 배포합니다.
    1. Apigee VS 코드의 터미널 탭에서 myapigeeworkspace 디렉터리로 이동합니다.
      cd myapigeeworkspace
    2. 다음 명령어를 실행합니다.
      gcloud beta apigee archives deploy --environment=prod --labels=release=052021.1

      다음은 응답의 예시입니다.

      Using Apigee organization dev
      Waiting for operation [$OPERATION_ID] to complete...⠹
    3. 다음 명령어를 실행하여 작업 상태를 확인하고 $OPERATION_ID를 이전 호출에서 반환된 작업 ID로 바꿉니다.
      gcloud beta apigee operations describe $OPERATION_ID

      다음은 응답의 예시입니다. stateIN_PROGRESS로 설정된다는 점에 주목하세요.

      Using Apigee organization 'prod'
      done: true
      metadata:
        '@type': type.googleapis.com/google.cloud.apigee.v1.OperationMetadata
        operationType: INSERT
        state: IN_PROGRESS
        targetResourceName: uri
      name: organizations/prod/operations/$OPERATION_ID
      organization: prod
      response:
        '@type': type.googleapis.com/google.cloud.apigee.v1.CanaryEvaluation
        control: 1-5-0-20210319-071117-ghq74
        endTime: '2021-03-20T06:15:44.329363950Z'
        metricLabels:
          env: test
          location: us-central1
        name: uri
        startTime: '2021-03-20T06:14:44.306534584Z'
        treatment: 1-5-0-20210319-190954-if0wk
        verdict: NONE
      uuid: $OPERATION_ID
    4. state가 보관 파일 배포가 완료되었음을 나타내는 FINISHED로 설정될 때까지 이전 단계를 반복합니다.
    5. 다음 명령어를 실행하여 prod 환경의 모든 보관 파일 배포를 확인합니다.
      gcloud beta apigee archives list --environment=prod

      다음은 응답의 예시입니다.

      Using Apigee organization 'prod'
      ARCHIVE ID                        ENVIRONMENT   DEPLOYED AT           LABELS            OPERATION STATUS
      vrytwbhso558oil53m                prod          2021-04-20 21:20:53   release=052021.1  Deployed

수고하셨습니다. 성공적으로 API 보관 파일을 Apigee 프로덕션 환경으로 승격했습니다.