Apigee 환경에서 보관 파일 배포 및 관리

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

Apigee Edge 문서 보기

VS Code에서 Apigee를 사용하여 프로그래밍 가능한 API 프록시를 개발하고 테스트합니다. 그런 후 다음 섹션에 설명된 대로 API 프록시 구성 환경의 보관 파일을 Apigee 통합 테스트 및 프로덕션 환경에 배포합니다.

Apigee 환경에서 보관 파일 배포 사용 설정

보관 파일을 배포하려면 먼저 Apigee 환경에서 보관 파일 배포를 사용 설정해야 합니다.

다음 섹션의 설명대로 보관 파일 배포를 사용 설정합니다.

기본 Apigee UI

Apigee 환경에서 보관 파일 배포를 사용 설정하려면 프로비저닝 마법사 외부에 Apigee 환경을 만들 때 배포 유형에서 보관 파일을 선택합니다.

새 환경 대화상자

Apigee API

API를 사용하여 환경을 만들 때 보관 파일 배포를 사용 설정하려면 요청 본문에서 deploymentTypeARCHIVE로 설정합니다.

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

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments" \
   -X POST \
   -H "Authorization: Bearer $TOKEN" \
   -H "Content-type: application/json" \
   -d
   '{
      "name": "integration-test",
      "description": "Integration test environment",
      "displayName" : "Integration test",
      "deploymentType" : "ARCHIVE"
   }'

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

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

{
  "name": "organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
    "operationType": "INSERT",
    "targetResourceName": "organizations/$ORG/environments/integration-test",
    "state": "IN_PROGRESS"
  }
}

작업 상태를 확인할 수 있습니다. 예를 들면 다음과 같습니다.

curl https://apigee.googleapis.com/v1/organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7 /
   -H "Authorization: Bearer $TOKEN"

다음은 응답의 예시입니다. 작업 상태가 FINISHED이고 환경 상태가 ACTIVE로 설정됩니다.

{
  "name": "organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
    "operationType": "INSERT",
    "targetResourceName": "organizations/$ORG/environments/integration-test",
    "state": "FINISHED"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.Environment",
    "name": "integration-test",
    "description": "Integration test environment",
    "createdAt": "1615553880084",
    "lastModifiedAt": "1615553881911",
    "displayName": "Integration test",
    "state": "ACTIVE",
    "deploymentType": "ARCHIVE"
  }
}

API에 대한 자세한 내용은 환경 API 만들기를 참조하세요.

Apigee 환경에 보관 파일 배포

Apigee 환경에 보관 파일을 배포하려면 다음 gcloud 명령어를 사용합니다.

gcloud beta apigee archives deploy \
    --environment=$ENV \
    [--organization=$ORG] \
    [--source=$SOURCE] \
    [--labels $KEY=$VALUE[,$KEY2=$VALUE2,$KEY3=$VALUE3,...]]

--environment 플래그를 사용하여 보관 파일을 배포하려는 Apigee 환경을 지정해야 합니다. Apigee 환경에 보관 파일 배포를 사용 설정해야 합니다. 자세한 내용은 gcloud beta apigee 보관 파일 배포를 참조하세요.

기본적으로 보관 파일은 다음 항목에 배포됩니다.

  • gcloud에 구성된 현재 활성 프로젝트와 연결된 조직

    현재 gcloud 구성을 보려면 gcloud config list를 실행합니다. 조직을 지정하려면 --organization 플래그를 사용합니다.

  • 현재 작업 디렉터리에서
    보관 파일의 src/main/apigee 루트 디렉터리가 현재 작업 디렉터리가 아닌 다른 위치에 있다면 --source 플래그를 사용하여 보관 파일의 루트 디렉터리 위치를 지정합니다. Apigee 작업공간 구조 이해도 참조하세요.

원하는 경우 --labels 플래그를 사용하여 보관 파일 배포에 최대 64개의 커스텀 라벨 키-값 쌍을 추가할 수 있습니다. 예를 들어 빌드 번호를 사용해 보관 파일에 라벨을 지정할 수 있습니다. 보관 파일 배포를 나열하면 라벨이 표시됩니다. 키 값이 다음 가이드라인을 준수해야 합니다.

  • 최대 길이 63자(영문 기준)
  • 최대 크기 128바이트
  • UTF-8 인코딩
  • Perl 호환 정규 표현식(PCRE) 준수: [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}

백그라운드에서 gcloud 명령어가 Google Cloud에서 Apigee에 배포할 때 다음 단계를 수행합니다.

  1. src/main/apigee Apigee 작업공간 디렉터리의 ZIP 파일을 만듭니다. 자세한 내용은 Apigee 작업공간 구조 이해를 참조하세요.
  2. 다음과 같이 Google Cloud에서 Apigee에 보관 파일을 배포합니다.
    1. generateUploadUrl API를 사용하여 현재 Apigee 조직과 연결된 프로젝트의 Google Cloud Storage 버킷에 대해 서명된 URL을 생성합니다.
    2. 서명된 URL을 사용하여 보관 파일 ZIP 파일을 Cloud Storage 버킷에 업로드합니다.
    3. Cloud Storage 버킷에 현재 스테이징된 보관 파일을 Google Cloud에서 Apigee에 배포합니다. 보관 파일 배포 API를 사용합니다.

요청 예

다음 예시에서는 현재 디렉터리에서 src/main/apigee의 ZIP 보관 파일을 만들어 지정된 Apigee 환경에 배포합니다.

gcloud beta apigee archives deploy --environment=$ENV

다음 예시는 gcloud에 대해 구성된 현재 활성 프로젝트와 연관되지 않은 조직을 지정하는 방법을 보여줍니다.

gcloud beta apigee archives deploy --environment=$ENV --organization=$ORG

다음 예시에서는 myarchive 아래의 src/main/apigee 디렉터리에서 ZIP 보관 파일을 만들어 지정된 Apigee 환경에 배포합니다.

gcloud beta apigee archives deploy --environment=$ENV --source=/myarchive

다음 예시에서는 statusbuild_id 라벨을 보관 파일 배포에 추가합니다.

gcloud beta apigee archives deploy --environment=$ENV --labels=status=released,build=210315

응답 예시

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

Using Apigee organization 'myorg'
Waiting for operation [b64c2665-b5ac-43cc-9e2d-232e8895c2ed] to complete...done.

보관 파일 배포 상태 확인

보관 파일 배포 상태를 확인하려면 gcloud alpha apigee operations 명령어를 사용합니다.

다음 예시는 버전 ID가 439fa3f7-6aa4-42ad-8b12-3ca912c75d5c인 작업의 보관 파일 배포가 IN_PROGRESS 상태임을 보여줍니다.

gcloud alpha apigee operations describe b64c2665-b5ac-43cc-9e2d-232e8895c2ed

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

Using Apigee organization 'myorg'
done: true
metadata:
  '@type': type.googleapis.com/google.cloud.apigee.v1.OperationMetadata
  operationType: INSERT
  state: IN_PROGRESS
  targetResourceName: uri
name: organizations/myorg/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed
organization: myorg
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: b64c2665-b5ac-43cc-9e2d-232e8895c2ed

작업이 완료되면 stateFINISHED로 설정됩니다.

환경의 모든 보관 파일 배포 나열

다음 섹션의 설명대로 환경의 모든 보관 파일 배포를 나열합니다.

gcloud

Google Cloud에서 Apigee의 모든 보관 파일 배포를 나열하려면 다음 gcloud 명령어를 사용합니다.

gcloud beta apigee archives list --environment=$ENV

--environment 플래그를 사용하여 보관 파일 배포를 확인할 Apigee 환경을 지정해야 합니다. Apigee 환경에서 보관 파일 배포의 세부정보를 확인할 수 있어야 합니다. 자세한 내용은 gcloud beta apigee 보관 파일 목록을 참조하세요.

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

Using Apigee organization 'myorg'
ARCHIVE ID                        ENVIRONMENT   DEPLOYED AT           LABELS                         OPERATION STATUS
pzfbs8uidbdv224joz                myorg         2021-03-10 11:21:29   status=released,build=210315   Deployed
fb4r8log2gm63r3gtu                myorg         2021-03-05 13:40:30
vrytwbhso558oil53m                myorg         2021-03-03 21:20:53

Apigee API

환경의 보관 파일 배포를 나열하려면 다음 API에 GET 요청을 실행합니다. https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments

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

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments" \
  -H "Authorization: Bearer $TOKEN"

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

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

{
  "archiveDeployments": [
    {
      "name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
      "labels": {
        "status": "released",
        "build": "210315"
      },
      "createdAt": "1615821232451727",
      "updatedAt": "1615821232451727",
      "operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
    },
    {
      "name": "organizations/myorg/environments/integration-test/archiveDeployments/fb4r8log2gm63r3gtu",
      "createdAt": "1615819281858447",
      "updatedAt": "1615819281858447",
      "operation": "organizations/apigee-docs-c/operations/71549b9c-4493-41b6-9838-c0ad5b1b3181"
    },
    {
      "name": "organizations/myorg/environments/integration-test/archiveDeployments/vrytwbhso558oil53m",
      "createdAt": "1615578337832207",
      "updatedAt": "1615578337832207",
      "operation": "organizations/apigee-docs-c/operations/a2eb50b5-f276-4de4-96a3-72fac3d4c05e"
    }
  ]
}

보관 파일 배포 세부정보 보기

다음 섹션의 설명대로 보관 파일 배포의 세부정보를 확인합니다.

gcloud

Google Cloud에서 Apigee의 보관 파일 배포 세부정보를 보려면 다음 gcloud 명령어를 사용합니다.

gcloud beta apigee archives describe $ID --environment=$ENV

다음을 지정해야 합니다.

  • 보관 파일 배포 버전의 ID입니다.
  • --environment 플래그를 사용하여 보관 파일 배포를 확인할 Apigee 환경입니다. Apigee 환경에 보관 파일 배포를 사용 설정해야 합니다.

자세한 내용은 gcloud beta apigee 보관 파일 설명을 참조하세요.

예:

gcloud apigee archives describe pzfbs8uidbdv224joz --environment=$ENV

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

Using Apigee organization 'myorg'
createdAt: '1615578337832207'
labels:
  status: 'released'
  build: '210315'
name: organizations/myorg/environments/$ENV/archiveDeployments/pzfbs8uidbdv224joz
operation: organizations/myorg/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed
operationStatus: Deployed
updatedAt: '1615821232451727'

Apigee API

보관 파일 배포의 세부정보를 보려면 다음 API에 GET 요청을 실행합니다. https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID

보관 파일 배포 버전의 ID를 전달해야 합니다. Apigee 환경의 보관 파일 배포 버전 ID 목록을 보려면 환경의 모든 보관 파일 배포 나열을 참조하세요.

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

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

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

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

{
  "name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
  "labels": {
     "status": "released",
     "build": "210315"
  },
  "createdAt": "1615578337832207",
  "updatedAt": "1615821232451727",
  "operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
}

보관 파일 배포의 라벨 업데이트

다음 섹션의 설명대로 보관 파일 배포의 라벨을 업데이트합니다.

gcloud

Google Cloud에서 Apigee의 보관 파일 배포 라벨을 업데이트하려면 다음 gcloud 명령어를 사용합니다.

gcloud beta apigee archives update [$ID] --environment=$ENV
  [--update-labels=$KEY=$VALUE[,$KEY2=$VALUE2...$KEYn=$VALUEn]],
  [--clear-labels | --remove-labels=$KEY[,$KEY2...$KEYn]]

다음을 지정해야 합니다.

  • 보관 파일 배포 버전의 ID입니다.
  • --environment 플래그를 사용하여 보관 파일 배포를 확인할 Apigee 환경입니다. Apigee 환경에 보관 파일 배포를 사용 설정해야 합니다.
  • 다음 플래그 중 하나 이상:
    플래그 설명
    --clear-labels 모든 라벨을 삭제합니다. --update-labels도 지정하면 --clear-labels가 먼저 적용됩니다.

    --remove-labels가 지정되면 이 플래그를 지정할 수 없습니다.

    --remove-labels 지정된 라벨을 삭제합니다. --update-labels도 지정하면 먼저 적용됩니다.

    --clear-labels가 지정되면 이 플래그를 지정할 수 없습니다.

    --update-labels 라벨을 업데이트합니다. 라벨이 있으면 해당 값이 수정되고 그렇지 않으면 새 라벨이 생성됩니다. 라벨을 업데이트하기 전 --remove-labels 또는 --clear-labels 플래그를 조합하여 하위 집합 또는 모든 라벨을 삭제합니다.

자세한 내용은 gcloud beta apigee 보관 파일 업데이트를 참조하세요.

예:

gcloud apigee archives update pzfbs8uidbdv224joz --environment=$ENV \
  --clear-labels --update-labels=status=released,build=210315,tier=1

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

Using Apigee organization `myorg`
createdAt: 2020-04-04T04:04:04.004Z
labels:
  status: released,
  build: 210315,
  tier: 1
name: organizations/apigee-docs-c/environments/dev/archiveDeployments/pzfbs8uidbdv224joz
operation: organizations/apigee-docs-c/operations/bf587121-8b5c-4897-9d8f-9b1ef0cb06ca
updatedAt: '1633450432067431'

Apigee API

Google Cloud에서 Apigee의 보관 파일 배포 라벨을 업데이트하려면 다음 API에 PATCH 요청을 실행합니다. https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID

보관 파일 배포 버전의 ID를 전달해야 합니다. Apigee 환경의 보관 파일 배포 버전 ID 목록을 보려면 환경의 모든 보관 파일 배포 나열을 참조하세요.

보관 파일에 추가할 모든 라벨을 요청 본문으로 전달합니다. 전달하는 라벨이 현재 라벨 집합을 덮어쓰므로 요청 본문에서 라벨을 생략해 일부 라벨을 삭제하거나 빈 목록을 전달하여 모든 라벨을 삭제할 수 있습니다.

예:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID" \
  -X PATCH \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "labels": {
      "status" : "released",
      "build" : "210315"
    }
  }'

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

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

{
  "name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
  "labels": {
     "status": "released",
     "build": "210315"
  },
  "createdAt": "1615578337832207",
  "updatedAt": "1615821232451727",
  "operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
}

보관 파일 배포가 포함된 Apigee 환경 삭제

보관 파일 배포가 포함된 Apigee 환경을 삭제하려면 다음 안내를 따르세요.

  1. 임시 폴더에서 다음 디렉터리 구조를 만듭니다. 여기서 $ENV는 삭제할 환경의 이름입니다. 예를 들면 다음과 같습니다.
    mkdir -p /$TEMP/archive/src/main/apigee/environments/$ENV
  2. deployments.json 파일을 디렉터리에 추가합니다. 예를 들면 다음과 같습니다.
    touch /$TEMP/archive/src/main/apigee/environments/$ENV/deployments.json
  3. 다음과 같이 deployments.json을 업데이트하여 빈 proxies 배열을 포함합니다.
    {
    "proxies" : []
    }
  4. 디렉터리(cd)를 $TEMP/archive 폴더로 변경합니다.
    cd $TEMP/archive

    다음 사항에 따라 다르게 조치합니다.

  5. 삭제할 Apigee 환경에 보관 파일 배포
    gcloud beta apigee archives deploy --environment=$ENV
    
  6. Apigee 환경 삭제

보관 파일 배포 버전 삭제

다음 섹션의 설명대로 보관 파일의 배포 버전을 삭제합니다.

gcloud

Google Cloud에서 Apigee의 보관 파일 배포 버전을 삭제하려면 다음 gcloud 명령어를 사용합니다.

gcloud apigee archives delete $ID --environment=$ENV

다음을 지정해야 합니다.

  • 삭제하려는 키의 ID입니다.
  • --environment 플래그를 사용하여 보관 파일 배포를 확인할 Apigee 환경입니다. Apigee 환경에 보관 파일 배포를 사용 설정해야 합니다.

예:

gcloud apigee archives delete fb4r8log2gm63r3gtu --environment=dev

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

Archive deployment revision "fb4r8log2gm63r3gtu" deleted

Apigee API

Google Cloud의 Apigee에서 보관 파일 배포 버전을 삭제하려면 다음 API에 대해 DELETE 요청을 수행합니다. https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

삭제하려는 보관 파일 배포 버전의 ID를 전달해야 합니다. 특정 환경의 보관 파일 배포 버전 ID 목록을 보려면 환경의 모든 보관 파일 배포 나열을 참조하세요.

예:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID" \
  -X DELETE \
  -H "Authorization: Bearer $TOKEN" \

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

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

{}