API 프록시 배포

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

Apigee Edge 문서 보기

배포되기 전에는 API 프록시를 호출할 수 없습니다. 새 API 프록시를 만들거나 기존 API 프록시를 변경한 후 클러스터에 배포할 수 있습니다.

기본 경로를 변경하지 않고 API 프록시의 새 수정 버전을 만들 때는 이미 배포된 환경에 배포합니다. 그러면 이전 버전이 배포 취소되고 새 수정 버전이 그 자리에 배포됩니다.

API 프록시 배포

다음 섹션의 설명대로 API 프록시 버전을 배포합니다.

새 프록시 편집기

Apigee UI로 API 프록시를 배포하려면 다음 안내를 따르세요.

  1. Cloud 콘솔에서 Apigee UI를 사용하는 경우: 프록시 개발 > API 프록시를 선택합니다.

    기본 Apigee UI를 사용하는 경우: 개발 > API 프록시를 선택하고 프록시 창에서 프록시의 환경을 선택합니다.

  2. 배포하려는 API 프록시를 클릭합니다. UI에 개요 페이지가 표시됩니다.

    환경별 배포 상태, 프록시 엔드포인트 세부정보, 대상 엔드포인트 세부정보가 포함된 API 프록시 세부정보

  3. 변경사항을 배포하려면 먼저 배포를 클릭하여 배포 대화상자를 표시합니다.

    프록시 탐색기에서 선택된 대상 엔드포인트

  4. 다음을 입력합니다.
    • 버전: 배포하려는 프록시의 버전 번호입니다.
    • 환경: 프록시를 배포하려는 환경입니다.
    • 서비스 계정(선택사항): 프록시의 서비스 계정입니다.
  5. 배포를 클릭합니다.

UI에서 선택한 수정 버전의 배포 프로세스가 시작됩니다.

프록시가 배포되면 배포 섹션의 상태 열에 프록시의 버전 1이 배포됨을 보여주는 녹색 아이콘이 표시됩니다.

배포된 프록시 상태 아이콘

기본 프록시 편집기

Apigee UI로 API 프록시를 배포하려면 다음 안내를 따르세요.

  1. Apigee UI에 로그인합니다.
  2. 개발 > API 프록시를 선택합니다.

    UI에 API 프록시와 배포 상태의 목록이 표시됩니다.

    이름, 상태, 24시간 동안의 트래픽, 작성자, 최종 수정 시간이 포함된 API 프록시 목록이 표시됩니다.

  3. 환경 드롭다운 목록에서 API 프록시를 배포하려는 환경을 선택합니다.
  4. 배포하려는 API 프록시를 클릭합니다.

    UI에 API 프록시 개요 탭이 표시됩니다. 이 보기에는 배포, 프록시 엔드포인트, 대상 엔드포인트 섹션이 포함됩니다.

    환경별 배포 상태, 프록시 엔드포인트 세부정보, 대상 엔드포인트 세부정보가 포함된 API 프록시 세부정보

    이전에 배포하지 않은 새 API 프록시(또는 배포를 취소한 API 프록시)의 경우 버전 열에 배포 취소가 표시됩니다.

  5. 수정 버전 열에서 드롭다운 선택기를 확장합니다.

    이전에 배포되지 않은 새 API 프록시의 경우 드롭다운 목록에 1배포 취소만 표시됩니다.

    프록시의 첫 번째 버전을 배포합니다.

    API 프록시에 여러 버전이 포함된 경우 드롭다운 목록에 선택 가능한 모든 버전과 배포 취소가 표시됩니다.

    테스트 환경에 선택한 드롭다운 메뉴가 있는 API 프록시 세부정보의 배포 섹션

  6. 드롭다운 목록에서 배포할 수정 버전을 선택합니다.

    UI에 배포를 확인하라는 메시지가 표시됩니다.

    prod 환경에 선택한 버전 3이 포함된 API 프록시 세부정보의 배포 섹션

  7. 배포를 클릭합니다.

    UI에서 선택한 수정 버전의 배포 프로세스가 시작됩니다.

    상태 열에서 세부정보 링크 위로 커서를 가져가면 배포 상태가 표시됩니다. 이미 배포된 수정 버전이 하나 이상 있으면 다음 그림에 표시된 것처럼 배포 취소 상태를 모니터링할 수 있습니다. 자세한 내용은 제로 다운타임 배포를 참조하세요.

    my-new-proxy를 배포하여 테스트 환경 확인

    배포가 완료되면 상태 세부정보에 버전이 완전히 배포된 것으로 표시됩니다.

    버전 18을 75% 배포, 버전 17을 25% 배포를 보여주는 배포 상태

    배포는 즉각적인 프로세스가 아닙니다. Apigee의 최종 일관성 배포 모델은 새 배포가 즉시가 아닌 짧은 시간 동안 클러스터에 출시됨을 의미합니다. 자세한 내용은 배포 정보를 참조하세요.

    상태 표시기의 의미와 상태 확인 방법에 대한 자세한 내용은 배포 상태 보기를 참조하세요.

    버전 18 완전 배포를 보여주는 배포 상태

또는 개발 탭에서 수정 중인 현재 수정 버전을 배포할 수 있습니다. 이렇게 하면 Apigee가 새 수정 버전을 자동으로 만듭니다.

  1. 배포 대상 env_name 드롭다운 목록을 클릭합니다.

    현재 버전을 각 환경에 배포 또는 배포 취소할 수 있는 배포 드롭다운

    UI에 환경 목록이 표시됩니다. UI에서 수정 버전 열에 현재 배포된 수정 버전(또는 항목이 없는 경우 '--')이 나열됩니다.

  2. revision 배포를 클릭하여 최근에 수정한 수정 버전을 배포합니다.

    UI에 배포를 확인하라는 메시지가 표시됩니다.

  3. 배포를 클릭합니다.

    UI에서 선택한 수정 버전의 배포 프로세스가 시작됩니다.

Apigee API

다음 섹션에서는 Apigee API를 사용하여 API 프록시 버전을 배포하고 조직의 배포를 나열하는 예시를 보여줍니다.

배포 상태 보기도 참조하세요.

배포하기 전 배포 변경 보고서 만들기

동일한 환경 그룹의 2개 이상의 환경에 프록시를 배포하면 정의되지 않은 동작이 발생할 수 있습니다. 발생 여부를 확인하려면 다음과 같이 generateDeployChangeReport 메서드를 사용하여 보고서를 생성하면 됩니다.

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/deployments:generateDeployChangeReport" \
-X POST \
-H "Authorization: Bearer $TOKEN"

그러면 배포하려는 프록시의 기본 경로가 이미 기본 경로를 사용 중인 기존 배포로 인해 트래픽을 수신하지 않을 경우 경고하는 배포 변경 보고서가 반환됩니다.

API를 사용하여 API 프록시 버전 배포

API 프록시 버전을 배포하려면 다음 API 호출을 사용합니다.

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/deployments" \
  -X POST \
  -H "Authorization: Bearer $TOKEN"

$TOKENOAuth 2.0 액세스 토큰 가져오기에 설명된 대로 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에서 사용된 curl 옵션에 대한 자세한 내용은 curl 사용을 참조하세요. 사용된 환경 변수에 대한 설명은 Apigee API 요청에 대한 환경 변수 설정을 참조하세요.

다음은 응답 출력의 예시를 보여줍니다. 이 예시에서는 helloworld API 프록시의 버전 1test 환경에 성공적으로 배포되었습니다.

{
  "environment": "test",
  "apiProxy": "helloworld",
  "revision": "1",
  "deployStartTime": "1559149080457"
}

자세한 내용은 API 프록시 버전 API 배포를 참조하세요.

API를 사용하여 배포 나열

조직의 모든 API 프록시 배포와 공유 흐름을 나열하려면 다음 API 호출을 입력합니다.

curl "https://apigee.googleapis.com/v1/organizations/$ORG/deployments" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

$TOKENOAuth 2.0 액세스 토큰 가져오기에 설명된 대로 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에서 사용된 curl 옵션에 대한 자세한 내용은 curl 사용을 참조하세요. 사용된 환경 변수에 대한 설명은 Apigee API 요청에 대한 환경 변수 설정을 참조하세요.

다음은 응답의 예시입니다. 이 예시에는 앞의 섹션에서 배포된 helloworld를 포함하여 배포된 API 프록시가 3개 있습니다.

{
  "deployments": [
    {
      "environment": "test",
      "apiProxy": "helloworld",
      "revision": "1",
      "deployStartTime": "1559149080457"
    },
    {
      "environment": "test",
      "apiProxy": "weather",
      "revision": "1",
      "deployStartTime": "1558620435217"
    },
    {
      "environment": "test",
      "apiProxy": "testproxy",
      "revision": "2",
      "deployStartTime": "1558635113086"
    }
  ]
}

gcloud

다음 섹션에서는 gcloud apigee CLI 명령어를 사용하여 API 프록시 버전을 배포하고 조직의 배포를 나열하는 예시를 제공합니다.

배포 상태 보기도 참조하세요.

예시에서 사용된 환경 변수에 대한 자세한 내용은 Apigee에서 gcloud를 사용하여 시작하기를 참조하세요.

gcloud CLI를 사용하여 API 프록시 버전 배포

API 프록시 버전을 배포하려면 다음 gcloud 명령어를 사용합니다.

gcloud apigee apis deploy $REV --api=$API --environment=$ENV

다음은 응답 출력의 예시를 보여줍니다. 이 예시에서는 helloworld API 프록시의 버전 1test 환경에 성공적으로 배포되었습니다.

Using Apigee organization 'my-org'
apiProxy: helloworld
deployStartTime: '1598032332802'
environment: test
revision: '1'

자세한 내용은 API 프록시 버전 CLI 배포를 참조하세요.

gcloud CLI를 사용하여 배포 나열

조직의 모든 API 프록시 배포 및 공유 흐름을 나열하려면 다음 gcloud 명령어를 사용합니다.

gcloud apigee deployments list

다음은 응답의 예시입니다. 이 예시에는 앞의 섹션에서 배포된 helloworld를 포함하여 배포된 API 프록시가 3개 있습니다.

Using Apigee organization `my-org`
 - apiProxy: helloworld
   deployStartTime: 1598032332802
   environment: test
   revision: 1
 - apiProxy: weather
   deployStartTime: 1558620435217
   environment: test
   revision: 1
 - apiProxy: testproxy
   deployStartTime: 1558635113086
   environment: test
   revision: 2

자세한 내용은 배포 CLI 나열을 참조하세요.

문제 해결

API 프록시를 배포할 수 없는 경우 다음 일반적인 시나리오 중 하나가 적용될 수 있는지 확인합니다.

환경 그룹 이름 지정 제한사항

환경 그룹의 이름이 이름 지정 제한사항을 준수하지 않으면 프록시가 배포되지 않습니다. 경우에 따라 이러한 제한사항을 충족하지 않고 환경 그룹을 만들고 여기에 환경을 추가할 수 있습니다. 하지만 이렇게 하면 프록시가 배포되지 않습니다.

이름 지정 가이드라인과 제한사항에 대한 설명은 환경 그룹 만들기를 참조하세요.

이전에 사용한 환경 이름으로 생성된 환경

이전에 삭제한 환경과 이름이 같은 환경을 만들면 프록시가 배포되지 않습니다. 예를 들어 이전에 prod-1 환경을 만들고 삭제한 후 prod-1라는 환경을 만들면 이 환경을 삭제해야 합니다. 이 문제를 해결하려면 다음 단계를 수행합니다.

  1. API를 사용하여 환경 그룹에서 prod-1 환경을 분리합니다.
  2. API를 사용하여 prod-1 환경을 삭제합니다.
  3. 새 환경을 만듭니다. 예를 들면 prod-2입니다.
  4. API를 사용하여 새 prod-2 환경을 환경 그룹에 연결합니다.