本頁適用於 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 說明文件。
在 VS Code 中使用 Apigee 開發及測試可程式化 API Proxy。接著,請將 API Proxy 設定環境的封存檔部署至 Apigee 整合測試和實際工作環境,如以下各節所述。
在 Apigee 環境中啟用封存檔案部署功能
您必須先在 Apigee 環境中啟用封存檔案部署功能,才能部署封存檔案。
按照下列各節的說明啟用封存檔案部署作業。
傳統版 Apigee UI
如要在 Apigee 環境中啟用封存檔案部署功能,請在建立 Apigee 環境 (不在佈建精靈外) 時,選取「Deployment type」(部署類型) 下方的「Archive」(封存檔案)。

Apigee API
如要在使用 API 建立環境時啟用封存部署功能,請在要求主體中將 deploymentType
設為 ARCHIVE
。
例如:
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" }'
其中 $TOKEN
會設為您的 OAuth 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,請參閱 Create environments 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 archives deploy。
根據預設,封存檔會部署至:
- 與目前為
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}
在 Google Cloud 上部署至 Apigee 時,gcloud
指令會在幕後執行下列步驟:
- 建立
src/main/apigee
Apigee 工作區目錄的 ZIP 檔案。詳情請參閱「瞭解 Apigee 工作區的結構」。 - 將封存檔部署至 Google Cloud 上的 Apigee,如下所示:
- 使用 generateUploadUrl API,為與目前 Apigee 組織相關聯的專案中 Google Cloud Storage 儲存桶產生已簽署網址。
- 使用已簽署的網址,將封存檔案的 ZIP 檔案上傳至 Cloud Storage 值區。
- 將目前在 Cloud Storage 值區中排程的封存檔,部署至 Google Cloud 上的 Apigee。使用Archive Deployments 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
以下範例會將 status
和 build_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
以下提供回應範例。請注意,state
已設為 IN_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
作業完成後,state
會設為 FINISHED
。
列出環境中的所有封存檔部署作業
按照下列各節所述,列出環境中的所有封存檔案部署作業。
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"
其中 $TOKEN
會設為您的 OAuth 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 archives describe。
例如:
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"
其中 $TOKEN
會設為您的 OAuth 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
,系統會優先套用--update-labels
。如果已指定
--clear-labels
,則無法指定這個選項。--update-labels
更新標籤。如果標籤已存在,系統會修改其值;否則會建立新標籤。搭配使用 --remove-labels
或--clear-labels
旗標,分別移除子集或所有標籤,再更新標籤。
詳情請參閱 gcloud beta apigee archives update。
例如:
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" } }'
其中 $TOKEN
會設為您的 OAuth 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 環境,請按照下列步驟操作:
- 在暫時資料夾中建立下列目錄結構,其中 $ENV 必須與要刪除的環境名稱相符。
例如:
mkdir -p /$TEMP/archive/src/main/apigee/environments/$ENV
- 將
deployments.json
檔案新增至目錄。例如:touch /$TEMP/archive/src/main/apigee/environments/$ENV/deployments.json
- 更新
deployments.json
以納入空白proxies
陣列,如下所示。{ "proxies" : [] }
- 將目錄 (cd) 變更為
$TEMP/archive
資料夾。cd $TEMP/archive
如果您
- 將封存檔案部署至要刪除的 Apigee 環境。
gcloud beta apigee archives deploy --environment=$ENV
- 刪除 Apigee 環境。
刪除封存部署作業的修訂版本
按照下文所述,刪除封存部署作業的修訂版本。
gcloud
如要刪除 Google Cloud 上 Apigee 中封存部署的修訂版本,請使用下列 gcloud
指令:
gcloud beta 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" \
其中 $TOKEN
會設為您的 OAuth 2.0 存取權憑證,如取得 OAuth 2.0 存取權憑證一節所述。如要瞭解本範例中使用的 curl
選項,請參閱「使用 curl」。如要瞭解所使用的環境變數,請參閱「為 Apigee API 要求設定環境變數」。
以下提供回應範例:
{}