API Gateway 範例使用 AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

API Gateway 範例使用 AWS CLI

下列程式碼範例說明如何使用 AWS Command Line Interface 搭配 API Gateway 來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境和跨服務範例中查看內容中的動作。

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

每個範例都包含一個連結 GitHub,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例會示範如何使用create-api-key

AWS CLI

若要建立針對現有 API 和階段啟用的 API 金鑰

命令:

aws apigateway create-api-key --name 'Dev API Key' --description 'Used for development' --enabled --stage-keys restApiId='a1b2c3d4e5',stageName='dev'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateApiKey中的。

下列程式碼範例會示範如何使用create-authorizer

AWS CLI

範例 1:為 API 建立權杖型 API Gateway 自訂授權器

下列create-authorizer範例會建立以 Token 為基礎的授權者。

aws apigateway create-authorizer \ --rest-api-id 1234123412 \ --name 'First_Token_Custom_Authorizer' \ --type TOKEN \ --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \ --identity-source 'method.request.header.Authorization' \ --authorizer-result-ttl-in-seconds 300

輸出:

{ "authType": "custom", "name": "First_Token_Custom_Authorizer", "authorizerUri": "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations", "authorizerResultTtlInSeconds": 300, "identitySource": "method.request.header.Authorization", "type": "TOKEN", "id": "z40xj0" }

範例 2:為 API 建立以 Cognito 使用者集區為基礎的 API Gateway 自訂授權器

下列create-authorizer範例會建立以 Cognito 使用者集區為基礎的 API Gateway 自訂授權者。

aws apigateway create-authorizer \ --rest-api-id 1234123412 \ --name 'First_Cognito_Custom_Authorizer' \ --type COGNITO_USER_POOLS \ --provider-arns 'arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_aWcZeQbuD' \ --identity-source 'method.request.header.Authorization'

輸出:

{ "authType": "cognito_user_pools", "identitySource": "method.request.header.Authorization", "name": "First_Cognito_Custom_Authorizer", "providerARNs": [ "arn:aws:cognito-idp:us-east-1:342398297714:userpool/us-east-1_qWbZzQhzE" ], "type": "COGNITO_USER_POOLS", "id": "5yid1t" }

範例 3:為 API 建立以請求為基礎的 API Gateway 自訂授權器

下列create-authorizer範例會建立要求型授權者。

aws apigateway create-authorizer \ --rest-api-id 1234123412 \ --name 'First_Request_Custom_Authorizer' \ --type REQUEST \ --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \ --identity-source 'method.request.header.Authorization,context.accountId' \ --authorizer-result-ttl-in-seconds 300

輸出:

{ "id": "z40xj0", "name": "First_Request_Custom_Authorizer", "type": "REQUEST", "authType": "custom", "authorizerUri": "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations", "identitySource": "method.request.header.Authorization,context.accountId", "authorizerResultTtlInSeconds": 300 }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateAuthorizer中的。

下列程式碼範例會示範如何使用create-base-path-mapping

AWS CLI

建立自訂網域名稱的基本路徑對應

命令:

aws apigateway create-base-path-mapping --domain-name subdomain.domain.tld --rest-api-id 1234123412 --stage prod --base-path v1

下列程式碼範例會示範如何使用create-deployment

AWS CLI

將 API 的已設定資源部署到新的階段

命令:

aws apigateway create-deployment --rest-api-id 1234123412 --stage-name dev --stage-description 'Development Stage' --description 'First deployment to the dev stage'

若要將已設定的 API 資源部署到現有階段

命令:

aws apigateway create-deployment --rest-api-id 1234123412 --stage-name dev --description 'Second deployment to the dev stage'

將 API 的已設定資源部署至具有階段變數的現有階段

aws apigateway 創建部署--rest-api-id 1234123412-階段名稱開發-描述 '第三次部署到開發階段'-變量鍵 = '值',其他鍵 = '其他值'

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateDeployment中的。

下列程式碼範例會示範如何使用create-domain-name

AWS CLI

建立自訂網域名稱

命令:

aws apigateway create-domain-name --domain-name 'my.domain.tld' --certificate-name 'my.domain.tld cert' --certificate-arn 'arn:aws:acm:us-east-1:012345678910:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateDomainName中的。

下列程式碼範例會示範如何使用create-model

AWS CLI

若要建立 API 的模型

命令:

aws apigateway create-model --rest-api-id 1234123412 --name 'firstModel' --description 'The First Model' --content-type 'application/json' --schema '{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "firstModel", "type": "object", "properties": { "firstProperty" : { "type": "object", "properties": { "key": { "type": "string" } } } } }'

輸出:

{ "contentType": "application/json", "description": "The First Model", "name": "firstModel", "id": "2rzg0l", "schema": "{ \"$schema\": \"http://json-schema.org/draft-04/schema#\", \"title\": \"firstModel\", \"type\": \"object\", \"properties\": { \"firstProperty\" : { \"type\": \"object\", \"properties\": { \"key\": { \"type\": \"string\" } } } } }" }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateModel中的。

下列程式碼範例會示範如何使用create-resource

AWS CLI

若要在 API 中建立資源

命令:

aws apigateway create-resource --rest-api-id 1234123412 --parent-id a1b2c3 --path-part 'new-resource'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateResource中的。

下列程式碼範例會示範如何使用create-rest-api

AWS CLI

若要建立 API

命令:

aws apigateway create-rest-api --name 'My First API' --description 'This is my first API'

若要從現有 API 建立重複的 API

命令:

aws apigateway create-rest-api --name 'Copy of My First API' --description 'This is a copy of my first API' --clone-from 1234123412
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateRestApi中的。

下列程式碼範例會示範如何使用create-stage

AWS CLI

若要在包含現有部署的 API 中建立階段

命令:

aws apigateway create-stage --rest-api-id 1234123412 --stage-name 'dev' --description 'Development stage' --deployment-id a1b2c3

若要在包含現有部署和自訂階段變數的 API 中建立階段

命令:

aws apigateway create-stage --rest-api-id 1234123412 --stage-name 'dev' --description 'Development stage' --deployment-id a1b2c3 --variables key='value',otherKey='otherValue'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateStage中的。

下列程式碼範例會示範如何使用create-usage-plan-key

AWS CLI

將現有 API 金鑰與用量計劃建立關聯

命令:

aws apigateway create-usage-plan-key --usage-plan-id a1b2c3 --key-type "API_KEY" --key-id 4vq3yryqm5

下列程式碼範例會示範如何使用create-usage-plan

AWS CLI

建立含有節流和配額限制的用量計劃,並在月初重設

命令:

aws apigateway create-usage-plan --name "New Usage Plan" --description "A new usage plan" --throttle burstLimit=10,rateLimit=5 --quota limit=500,offset=0,period=MONTH
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateUsagePlan中的。

下列程式碼範例會示範如何使用delete-api-key

AWS CLI

若要刪除 API 金鑰

命令:

aws apigateway delete-api-key --api-key 8bklk8bl1k3sB38D9B3l0enyWT8c09B30lkq0blk
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteApiKey中的。

下列程式碼範例會示範如何使用delete-authorizer

AWS CLI

在 API 中刪除自訂授權者

命令:

aws apigateway delete-authorizer --rest-api-id 1234123412 --authorizer-id 7gkfbo
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteAuthorizer中的。

下列程式碼範例會示範如何使用delete-base-path-mapping

AWS CLI

刪除自訂網域名稱的基本路徑對應

命令:

aws apigateway delete-base-path-mapping --domain-name 'api.domain.tld' --base-path 'dev'

下列程式碼範例會示範如何使用delete-client-certificate

AWS CLI

刪除用戶端憑證

命令:

aws apigateway delete-client-certificate --client-certificate-id a1b2c3

下列程式碼範例會示範如何使用delete-deployment

AWS CLI

若要刪除 API 中的部署

命令:

aws apigateway delete-deployment --rest-api-id 1234123412 --deployment-id a1b2c3
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteDeployment中的。

下列程式碼範例會示範如何使用delete-domain-name

AWS CLI

若要刪除自訂網域名稱

命令:

aws apigateway delete-domain-name --domain-name 'api.domain.tld'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteDomainName中的。

下列程式碼範例會示範如何使用delete-integration-response

AWS CLI

若要刪除 API 中指定資源、方法和狀態碼的整合回應

命令:

aws apigateway delete-integration-response --rest-api-id 1234123412 --resource-id a1b2c3 --http-method GET --status-code 200

下列程式碼範例會示範如何使用delete-integration

AWS CLI

若要刪除 API 中指定資源和方法的整合

命令:

aws apigateway delete-integration --rest-api-id 1234123412 --resource-id a1b2c3 --http-method GET

下列程式碼範例會示範如何使用delete-method-response

AWS CLI

若要刪除 API 中指定資源、方法和狀態碼的方法回應

命令:

aws apigateway delete-method-response --rest-api-id 1234123412 --resource-id a1b2c3 --http-method GET --status-code 200

下列程式碼範例會示範如何使用delete-method

AWS CLI

刪除 API 中給定資源的方法

命令:

aws apigateway delete-method --rest-api-id 1234123412 --resource-id a1b2c3 --http-method GET
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteMethod中的。

下列程式碼範例會示範如何使用delete-model

AWS CLI

在給定 API 中刪除模型

命令:

aws apigateway delete-model --rest-api-id 1234123412 --model-name 'customModel'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteModel中的。

下列程式碼範例會示範如何使用delete-resource

AWS CLI

若要刪除 API 中的資源

命令:

aws apigateway delete-resource --rest-api-id 1234123412 --resource-id a1b2c3
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteResource中的。

下列程式碼範例會示範如何使用delete-rest-api

AWS CLI

若要刪除 API 的步驟

命令:

aws apigateway delete-rest-api --rest-api-id 1234123412
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteRestApi中的。

下列程式碼範例會示範如何使用delete-stage

AWS CLI

若要刪除 API 中的階段

命令:

aws apigateway delete-stage --rest-api-id 1234123412 --stage-name 'dev'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteStage中的。

下列程式碼範例會示範如何使用delete-usage-plan-key

AWS CLI

若要從使用方案移除 API 金鑰

命令:

aws apigateway delete-usage-plan-key --usage-plan-id a1b2c3 --key-id 1NbjQzMReAkeEQPNAW8r3dXsU2rDD7fc7f2Sipnu

下列程式碼範例會示範如何使用delete-usage-plan

AWS CLI

若要刪除使用量計劃

命令:

aws apigateway delete-usage-plan --usage-plan-id a1b2c3
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteUsagePlan中的。

下列程式碼範例會示範如何使用flush-stage-authorizers-cache

AWS CLI

清除階段上的所有授權者快取項目

命令:

aws apigateway flush-stage-authorizers-cache --rest-api-id 1234123412 --stage-name dev

下列程式碼範例會示範如何使用flush-stage-cache

AWS CLI

若要清除 API 階段的快取

命令:

aws apigateway flush-stage-cache --rest-api-id 1234123412 --stage-name dev
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考FlushStageCache中的。

下列程式碼範例會示範如何使用generate-client-certificate

AWS CLI

建立用戶端 SSL 憑證

命令:

aws apigateway generate-client-certificate --description 'My First Client Certificate'

下列程式碼範例會示範如何使用get-account

AWS CLI

取得 API Gateway 帳戶設定

命令:

aws apigateway get-account

輸出:

{ "cloudwatchRoleArn": "arn:aws:iam::123412341234:role/APIGatewayToCloudWatchLogsRole", "throttleSettings": { "rateLimit": 500.0, "burstLimit": 1000 } }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetAccount中的。

下列程式碼範例會示範如何使用get-api-key

AWS CLI

獲取有關特定 API 密鑰的信息

命令:

aws apigateway get-api-key --api-key 8bklk8bl1k3sB38D9B3l0enyWT8c09B30lkq0blk

輸出:

{ "description": "My first key", "enabled": true, "stageKeys": [ "a1b2c3d4e5/dev", "e5d4c3b2a1/dev" ], "lastUpdatedDate": 1456184515, "createdDate": 1456184452, "id": "8bklk8bl1k3sB38D9B3l0enyWT8c09B30lkq0blk", "name": "My key" }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetApiKey中的。

下列程式碼範例會示範如何使用get-api-keys

AWS CLI

若要取得 API 金鑰清單

命令:

aws apigateway get-api-keys

輸出:

{ "items": [ { "description": "My first key", "enabled": true, "stageKeys": [ "a1b2c3d4e5/dev", "e5d4c3b2a1/dev" ], "lastUpdatedDate": 1456184515, "createdDate": 1456184452, "id": "8bklk8bl1k3sB38D9B3l0enyWT8c09B30lkq0blk", "name": "My key" } ] }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetApiKeys中的。

下列程式碼範例會示範如何使用get-authorizer

AWS CLI

取得每個 API 授權者的 API Gateway 設定

命令:

aws apigateway get-authorizer --rest-api-id 1234123412 --authorizer-id gfi4n3

輸出:

{ "authorizerResultTtlInSeconds": 300, "name": "MyAuthorizer", "type": "TOKEN", "identitySource": "method.request.header.Authorization", "authorizerUri": "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:authorizer_function/invocations", "id": "gfi4n3" }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetAuthorizer中的。

下列程式碼範例會示範如何使用get-authorizers

AWS CLI

若要取得 REST API 的授權者清單

命令:

aws apigateway get-authorizers --rest-api-id 1234123412

輸出:

{ "items": [ { "name": "MyAuthorizer", "authorizerUri": "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:My_Authorizer_Function/invocations", "authorizerResultTtlInSeconds": 300, "identitySource": "method.request.header.Authorization", "type": "TOKEN", "id": "gfi4n3" } ] }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetAuthorizers中的。

下列程式碼範例會示範如何使用get-base-path-mapping

AWS CLI

取得自訂網域名稱的基本路徑對應

命令:

aws apigateway get-base-path-mapping --domain-name subdomain.domain.tld --base-path v1

輸出:

{ "basePath": "v1", "restApiId": "1234w4321e", "stage": "api" }

下列程式碼範例會示範如何使用get-base-path-mappings

AWS CLI

取得自訂網域名稱的基本路徑對應

命令:

aws apigateway get-base-path-mappings --domain-name subdomain.domain.tld

輸出:

{ "items": [ { "basePath": "(none)", "restApiId": "1234w4321e", "stage": "dev" }, { "basePath": "v1", "restApiId": "1234w4321e", "stage": "api" } ] }

下列程式碼範例會示範如何使用get-client-certificate

AWS CLI

取得用戶端憑證

命令:

aws apigateway get-client-certificate --client-certificate-id a1b2c3

下列程式碼範例會示範如何使用get-client-certificates

AWS CLI

取得用戶端憑證清單

命令:

aws apigateway get-client-certificates

輸出:

{ "items": [ { "pemEncodedCertificate": "-----BEGIN CERTIFICATE----- <certificate content> -----END CERTIFICATE-----", "clientCertificateId": "a1b2c3", "expirationDate": 1483556561, "description": "My Client Certificate", "createdDate": 1452020561 } ] }

下列程式碼範例會示範如何使用get-deployment

AWS CLI

取得部署的相關資訊

命令:

aws apigateway get-deployment --rest-api-id 1234123412 --deployment-id ztt4m2

輸出:

{ "description": "myDeployment", "id": "ztt4m2", "createdDate": 1455218022 }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetDeployment中的。

下列程式碼範例會示範如何使用get-deployments

AWS CLI

若要取得 REST API 的部署清單

命令:

aws apigateway get-deployments --rest-api-id 1234123412

輸出:

{ "items": [ { "createdDate": 1453797217, "id": "0a2b4c", "description": "Deployed my API for the first time" } ] }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetDeployments中的。

下列程式碼範例會示範如何使用get-domain-name

AWS CLI

取得自訂網域名稱的相關資訊

命令:

aws apigateway get-domain-name --domain-name api.domain.tld

輸出:

{ "domainName": "api.domain.tld", "distributionDomainName": "d1a2f3a4c5o6d.cloudfront.net", "certificateName": "uploadedCertificate", "certificateUploadDate": 1462565487 }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetDomainName中的。

下列程式碼範例會示範如何使用get-domain-names

AWS CLI

取得自訂網域名稱清單

命令:

aws apigateway get-domain-names

輸出:

{ "items": [ { "distributionDomainName": "d9511k3l09bkd.cloudfront.net", "certificateUploadDate": 1452812505, "certificateName": "my_custom_domain-certificate", "domainName": "subdomain.domain.tld" } ] }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetDomainNames中的。

下列程式碼範例會示範如何使用get-export

AWS CLI

若要取得階段的 JSON 施瓦格範本

命令:

aws apigateway get-export --rest-api-id a1b2c3d4e5 --stage-name dev --export-type swagger /path/to/filename.json

獲取 JSON 施瓦格模板 + 一個階段的 API Gateway 擴展

命令:

aws apigateway get-export --parameters extensions='integrations' --rest-api-id a1b2c3d4e5 --stage-name dev --export-type swagger /path/to/filename.json

獲取階段的 JSON Swagger 模板 + 郵遞員擴展

命令:

aws apigateway get-export --parameters extensions='postman' --rest-api-id a1b2c3d4e5 --stage-name dev --export-type swagger /path/to/filename.json
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetExport中的。

下列程式碼範例會示範如何使用get-integration-response

AWS CLI

若要取得 REST API 資源下定義之 HTTP 方法的整合回應設定

命令:

aws apigateway get-integration-response --rest-api-id 1234123412 --resource-id y9h6rt --http-method GET --status-code 200

輸出:

{ "statusCode": "200", "responseTemplates": { "application/json": null } }

下列程式碼範例會示範如何使用get-integration

AWS CLI

若要取得 REST API 資源下定義之 HTTP 方法的整合設定

命令:

aws apigateway get-integration --rest-api-id 1234123412 --resource-id y9h6rt --http-method GET

輸出:

{ "httpMethod": "POST", "integrationResponses": { "200": { "responseTemplates": { "application/json": null }, "statusCode": "200" } }, "cacheKeyParameters": [], "type": "AWS", "uri": "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:My_Function/invocations", "cacheNamespace": "y9h6rt" }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetIntegration中的。

下列程式碼範例會示範如何使用get-method-response

AWS CLI

若要取得 REST API 資源下定義之 HTTP 方法的方法回應資源設定

命令:

aws apigateway get-method-response --rest-api-id 1234123412 --resource-id y9h6rt --http-method GET --status-code 200

輸出:

{ "responseModels": { "application/json": "Empty" }, "statusCode": "200" }

下列程式碼範例會示範如何使用get-method

AWS CLI

若要取得 REST API 資源下定義之 HTTP 方法的方法資源設定

命令:

aws apigateway get-method --rest-api-id 1234123412 --resource-id y9h6rt --http-method GET

輸出:

{ "apiKeyRequired": false, "httpMethod": "GET", "methodIntegration": { "integrationResponses": { "200": { "responseTemplates": { "application/json": null }, "statusCode": "200" } }, "cacheKeyParameters": [], "uri": "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:My_Function/invocations", "httpMethod": "POST", "cacheNamespace": "y9h6rt", "type": "AWS" }, "requestParameters": {}, "methodResponses": { "200": { "responseModels": { "application/json": "Empty" }, "statusCode": "200" } }, "authorizationType": "NONE" }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetMethod中的。

下列程式碼範例會示範如何使用get-model-template

AWS CLI

獲取 REST API 下定義的模型的映射模板

命令:

aws apigateway get-model-template --rest-api-id 1234123412 --model-name Empty

輸出:

{ "value": "#set($inputRoot = $input.path('$'))\n{ }" }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetModelTemplate中的。

下列程式碼範例會示範如何使用get-model

AWS CLI

獲取 REST API 下定義的模型的配置

命令:

aws apigateway get-model --rest-api-id 1234123412 --model-name Empty

輸出:

{ "contentType": "application/json", "description": "This is a default empty schema model", "name": "Empty", "id": "etd5w5", "schema": "{\n \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n \"title\" : \"Empty Schema\",\n \"type\" : \"object\"\n}" }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetModel中的。

下列程式碼範例會示範如何使用get-models

AWS CLI

若要取得 REST API 的模型清單

命令:

aws apigateway get-models --rest-api-id 1234123412

輸出:

{ "items": [ { "description": "This is a default error schema model", "schema": "{\n \"$schema\" : \"http://json-schema.org/draft-04/schema#\",\n \"title\" : \"Error Schema\",\n \"type\" : \"object\",\n \"properties\" : {\n \"message\" : { \"type\" : \"string\" }\n }\n}", "contentType": "application/json", "id": "7tpbze", "name": "Error" }, { "description": "This is a default empty schema model", "schema": "{\n \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n \"title\" : \"Empty Schema\",\n \"type\" : \"object\"\n}", "contentType": "application/json", "id": "etd5w5", "name": "Empty" } ] }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetModels中的。

下列程式碼範例會示範如何使用get-resource

AWS CLI

若要取得有關資源的資訊

命令:

aws apigateway get-resource --rest-api-id 1234123412 --resource-id zwo0y3

輸出:

{ "path": "/path", "pathPart": "path", "id": "zwo0y3", "parentId": "uyokt6ij2g" }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetResource中的。

下列程式碼範例會示範如何使用get-resources

AWS CLI

若要取得 REST API 的資源清單

命令:

aws apigateway get-resources --rest-api-id 1234123412

輸出:

{ "items": [ { "path": "/resource/subresource", "resourceMethods": { "POST": {} }, "id": "024ace", "pathPart": "subresource", "parentId": "ai5b02" } ] }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetResources中的。

下列程式碼範例會示範如何使用get-rest-api

AWS CLI

取得 API 的相關資訊

命令:

aws apigateway get-rest-api --rest-api-id 1234123412

輸出:

{ "name": "myAPI", "id": "o1y243m4f5", "createdDate": 1453416433 }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetRestApi中的。

下列程式碼範例會示範如何使用get-rest-apis

AWS CLI

若要取得其餘 API 的清單

命令:

aws apigateway get-rest-apis

輸出:

{ "items": [ { "createdDate": 1438884790, "id": "12s44z21rb", "name": "My First API" } ] }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetRestApis中的。

下列程式碼範例會示範如何使用get-sdk

AWS CLI

若要取得適用於其他 API 階段的安卓軟體開發套件

命令:

aws apigateway get-sdk --rest-api-id 1234123412 --stage-name dev --sdk-type android --parameters groupId='com.mycompany',invokerPackage='com.mycompany.clientsdk',artifactId='Mycompany-client',artifactVersion='1.0.0' /path/to/android_sdk.zip

輸出:

{ "contentType": "application/octet-stream", "contentDisposition": "attachment; filename=\"android_2016-02-22_23-52Z.zip\"" }

若要取得適用於其他 API 階段的 IOS SDK

命令:

aws apigateway get-sdk --rest-api-id 1234123412 --stage-name dev --sdk-type objectivec --parameters classPrefix='myprefix' /path/to/iOS_sdk.zip

輸出:

{ "contentType": "application/octet-stream", "contentDisposition": "attachment; filename=\"objectivec_2016-02-22_23-52Z.zip\"" }

若要取得其他 API 階段的 Javascript SDK

命令:

aws apigateway get-sdk --rest-api-id 1234123412 --stage-name dev --sdk-type javascript /path/to/javascript_sdk.zip

輸出:

{ "contentType": "application/octet-stream", "contentDisposition": "attachment; filename=\"javascript_2016-02-22_23-52Z.zip\"" }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetSdk中的。

下列程式碼範例會示範如何使用get-stage

AWS CLI

取得 API 階段的相關資訊

命令:

aws apigateway get-stage --rest-api-id 1234123412 --stage-name dev

輸出:

{ "stageName": "dev", "cacheClusterSize": "0.5", "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "deploymentId": "rbh1fj", "lastUpdatedDate": 1466802961, "createdDate": 1460682074, "methodSettings": { "*/*": { "cacheTtlInSeconds": 300, "loggingLevel": "INFO", "dataTraceEnabled": false, "metricsEnabled": true, "unauthorizedCacheControlHeaderStrategy": "SUCCEED_WITH_RESPONSE_HEADER", "throttlingRateLimit": 500.0, "cacheDataEncrypted": false, "cachingEnabled": false, "throttlingBurstLimit": 1000, "requireAuthorizationForCacheControl": true }, "~1resource/GET": { "cacheTtlInSeconds": 300, "loggingLevel": "INFO", "dataTraceEnabled": false, "metricsEnabled": true, "unauthorizedCacheControlHeaderStrategy": "SUCCEED_WITH_RESPONSE_HEADER", "throttlingRateLimit": 500.0, "cacheDataEncrypted": false, "cachingEnabled": false, "throttlingBurstLimit": 1000, "requireAuthorizationForCacheControl": true } } }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetStage中的。

下列程式碼範例會示範如何使用get-stages

AWS CLI

若要取得其他 API 的階段清單

命令:

aws apigateway get-stages --rest-api-id 1234123412

輸出:

{ "item": [ { "stageName": "dev", "cacheClusterSize": "0.5", "cacheClusterEnabled": true, "cacheClusterStatus": "AVAILABLE", "deploymentId": "123h64", "lastUpdatedDate": 1456185138, "createdDate": 1453589092, "methodSettings": { "~1resource~1subresource/POST": { "cacheTtlInSeconds": 300, "loggingLevel": "INFO", "dataTraceEnabled": true, "metricsEnabled": true, "throttlingRateLimit": 500.0, "cacheDataEncrypted": false, "cachingEnabled": false, "throttlingBurstLimit": 1000 } } } ] }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetStages中的。

下列程式碼範例會示範如何使用get-usage-plan-key

AWS CLI

取得與使用方案相關聯之 API 金鑰的詳細資訊

命令:

aws apigateway get-usage-plan-key --usage-plan-id a1b2c3 --key-id 1NbjQzMReAkeEQPNAW8r3dXsU2rDD7fc7f2Sipnu
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetUsagePlanKey中的。

下列程式碼範例會示範如何使用get-usage-plan-keys

AWS CLI

取得與使用方案相關聯的 API 金鑰清單

命令:

aws apigateway get-usage-plan-keys --usage-plan-id a1b2c3
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetUsagePlanKeys中的。

下列程式碼範例會示範如何使用get-usage-plan

AWS CLI

取得使用方案的詳細資訊

命令:

aws apigateway get-usage-plan --usage-plan-id a1b2c3
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetUsagePlan中的。

下列程式碼範例會示範如何使用get-usage-plans

AWS CLI

獲取所有使用計劃的詳細信息

命令:

aws apigateway get-usage-plans
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetUsagePlans中的。

下列程式碼範例會示範如何使用get-usage

AWS CLI

取得使用方案的使用詳細資料

命令:

aws apigateway get-usage --usage-plan-id a1b2c3 --start-date "2016-08-16" --end-date "2016-08-17"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetUsage中的。

下列程式碼範例會示範如何使用import-rest-api

AWS CLI

若要匯入施瓦格範本並建立 API

命令:

aws apigateway import-rest-api --body 'file:///path/to/API_Swagger_template.json'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考ImportRestApi中的。

下列程式碼範例會示範如何使用put-integration-response

AWS CLI

若要使用已定義的對應樣板來建立整合回應作為預設回應

命令:

aws apigateway put-integration-response --rest-api-id 1234123412 --resource-id a1b2c3 --http-method GET --status-code 200 --selection-pattern "" --response-templates '{"application/json": "{\"json\": \"template\"}"}'

使用 400 的正則表達式和靜態定義的標題值創建集成響應

命令:

aws apigateway put-integration-response --rest-api-id 1234123412 --resource-id a1b2c3 --http-method GET --status-code 400 --selection-pattern 400 --response-parameters '{"method.response.header.custom-header": "'"'"'custom-value'"'"'"}'

下列程式碼範例會示範如何使用put-integration

AWS CLI

若要建立 MOCK 整合要求

命令:

aws apigateway put-integration --rest-api-id 1234123412 --resource-id a1b2c3 --http-method GET --type MOCK --request-templates '{ "application/json": "{\"statusCode\": 200}" }'

若要建立 HTTP 整合要求

命令:

aws apigateway put-integration --rest-api-id 1234123412 --resource-id a1b2c3 --http-method GET --type HTTP --integration-http-method GET --uri 'https://domain.tld/path'

若要使用 Lambda 函數端點建立 AWS 整合請求

命令:

aws apigateway put-integration --rest-api-id 1234123412 --resource-id a1b2c3 --http-method GET --type AWS --integration-http-method POST --uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:function_name/invocations'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考PutIntegration中的。

下列程式碼範例會示範如何使用put-method-response

AWS CLI

使用自定義方法響應標頭在指定的狀態代碼下創建方法響應

命令:

aws apigateway put-method-response --rest-api-id 1234123412 --resource-id a1b2c3 --http-method GET --status-code 400 --response-parameters "method.response.header.custom-header=false"

下列程式碼範例會示範如何使用put-method

AWS CLI

在沒有授權,沒有 API 密鑰和自定義方法請求標頭的 API 中為資源創建方法

命令:

aws apigateway put-method --rest-api-id 1234123412 --resource-id a1b2c3 --http-method PUT --authorization-type "NONE" --no-api-key-required --request-parameters "method.request.header.custom-header=false"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考PutMethod中的。

下列程式碼範例會示範如何使用put-rest-api

AWS CLI

若要使用施瓦格範本覆寫現有的 API

命令:

aws apigateway put-rest-api --rest-api-id 1234123412 --mode overwrite --body 'fileb:///path/to/API_Swagger_template.json'

若要將施瓦格範本合併到現有的 API

命令:

aws apigateway put-rest-api --rest-api-id 1234123412 --mode merge --body 'fileb:///path/to/API_Swagger_template.json'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考PutRestApi中的。

下列程式碼範例會示範如何使用test-invoke-authorizer

AWS CLI

若要測試叫用自訂授權者的要求,包括必要的標頭和值

命令:

aws apigateway test-invoke-authorizer --rest-api-id 1234123412 --authorizer-id 5yid1t --headers Authorization='Value'

下列程式碼範例會示範如何使用test-invoke-method

AWS CLI

通過發出 GET 請求來測試在 API 中調用根資源

命令:

aws apigateway test-invoke-method --rest-api-id 1234123412 --resource-id avl5sg8fw8 --http-method GET --path-with-query-string '/'

通過使用指定的路徑參數值發出 GET 請求來測試在 API 中調用子資源

命令:

aws apigateway test-invoke-method --rest-api-id 1234123412 --resource-id 3gapai --http-method GET --path-with-query-string '/pets/1'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考TestInvokeMethod中的。

下列程式碼範例會示範如何使用update-account

AWS CLI

若要變更用於記錄檔的 IAM 角色 ARN CloudWatch

命令:

aws apigateway update-account --patch-operations op='replace',path='/cloudwatchRoleArn',value='arn:aws:iam::123412341234:role/APIGatewayToCloudWatchLogs'

輸出:

{ "cloudwatchRoleArn": "arn:aws:iam::123412341234:role/APIGatewayToCloudWatchLogs", "throttleSettings": { "rateLimit": 1000.0, "burstLimit": 2000 } }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateAccount中的。

下列程式碼範例會示範如何使用update-api-key

AWS CLI

若要變更 API 金鑰的名稱

命令:

aws apigateway update-api-key --api-key sNvjQDMReA1eEQPNAW8r37XsU2rDD7fc7m2SiMnu --patch-operations op='replace',path='/name',value='newName'

輸出:

{ "description": "currentDescription", "enabled": true, "stageKeys": [ "41t2j324r5/dev" ], "lastUpdatedDate": 1470086052, "createdDate": 1445460347, "id": "sNvjQDMReA1vEQPNzW8r3dXsU2rrD7fcjm2SiMnu", "name": "newName" }

若要停用 API 金鑰

命令:

aws apigateway update-api-key --api-key sNvjQDMReA1eEQPNAW8r37XsU2rDD7fc7m2SiMnu --patch-operations op='replace',path='/enabled',value='false'

輸出:

{ "description": "currentDescription", "enabled": false, "stageKeys": [ "41t2j324r5/dev" ], "lastUpdatedDate": 1470086052, "createdDate": 1445460347, "id": "sNvjQDMReA1vEQPNzW8r3dXsU2rrD7fcjm2SiMnu", "name": "newName" }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateApiKey中的。

下列程式碼範例會示範如何使用update-authorizer

AWS CLI

變更自訂授權者的名稱

命令:

aws apigateway update-authorizer --rest-api-id 1234123412 --authorizer-id gfi4n3 --patch-operations op='replace',path='/name',value='testAuthorizer'

輸出:

{ "authType": "custom", "name": "testAuthorizer", "authorizerUri": "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthorizer/invocations", "authorizerResultTtlInSeconds": 300, "identitySource": "method.request.header.Authorization", "type": "TOKEN", "id": "gfi4n3" }

若要變更自訂授權者呼叫的 Lambda 函數

命令:

aws apigateway update-authorizer --rest-api-id 1234123412 --authorizer-id gfi4n3 --patch-operations op='replace',path='/authorizerUri',value='arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:newAuthorizer/invocations'

輸出:

{ "authType": "custom", "name": "testAuthorizer", "authorizerUri": "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:newAuthorizer/invocations", "authorizerResultTtlInSeconds": 300, "identitySource": "method.request.header.Authorization", "type": "TOKEN", "id": "gfi4n3" }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateAuthorizer中的。

下列程式碼範例會示範如何使用update-base-path-mapping

AWS CLI

變更自訂網域名稱的基本路徑

命令:

aws apigateway update-base-path-mapping --domain-name api.domain.tld --base-path prod --patch-operations op='replace',path='/basePath',value='v1'

輸出:

{ "basePath": "v1", "restApiId": "1234123412", "stage": "api" }

下列程式碼範例會示範如何使用update-client-certificate

AWS CLI

更新用戶端憑證的說明

命令:

aws apigateway update-client-certificate --client-certificate-id a1b2c3 --patch-operations op='replace',path='/description',value='My new description'

下列程式碼範例會示範如何使用update-deployment

AWS CLI

變更部署描述的步驟

命令:

aws apigateway update-deployment --rest-api-id 1234123412 --deployment-id ztt4m2 --patch-operations op='replace',path='/description',value='newDescription'

輸出:

{ "description": "newDescription", "id": "ztt4m2", "createdDate": 1455218022 }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateDeployment中的。

下列程式碼範例會示範如何使用update-domain-name

AWS CLI

變更自訂網域名稱的憑證名稱

下列update-domain-name範例會變更自訂網域的憑證名稱。

aws apigateway update-domain-name \ --domain-name api.domain.tld \ --patch-operations op='replace',path='/certificateArn',value='arn:aws:acm:us-west-2:111122223333:certificate/CERTEXAMPLE123EXAMPLE'

輸出:

{ "domainName": "api.domain.tld", "distributionDomainName": "d123456789012.cloudfront.net", "certificateArn": "arn:aws:acm:us-west-2:111122223333:certificate/CERTEXAMPLE123EXAMPLE", "certificateUploadDate": 1462565487 }

如需詳細資訊,請參閱 Amazon API Gateway API Gateway 開發人員指南中的 API 設定自訂網域名稱

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateDomainName中的。

下列程式碼範例會示範如何使用update-integration-response

AWS CLI

若要將整合回應標頭變更為具有 '*' 的靜態對應

命令:

aws apigateway update-integration-response --rest-api-id 1234123412 --resource-id 3gapai --http-method GET --status-code 200 --patch-operations op='replace',path='/responseParameters/method.response.header.Access-Control-Allow-Origin',value='"'"'*'"'"'

輸出:

{ "statusCode": "200", "responseParameters": { "method.response.header.Access-Control-Allow-Origin": "'*'" } }

若要移除整合回應標頭

命令:

aws apigateway update-integration-response --rest-api-id 1234123412 --resource-id 3gapai --http-method GET --status-code 200 --patch-operations op='remove',path='/responseParameters/method.response.header.Access-Control-Allow-Origin'

下列程式碼範例會示範如何使用update-integration

AWS CLI

若要新增使用輸入傳遞設定的「內容類型:應用程式 /json' 對應範本

命令:

aws apigateway update-integration \ --rest-api-id a1b2c3d4e5 \ --resource-id a1b2c3 \ --http-method POST \ --patch-operations "op='add',path='/requestTemplates/application~1json'"

若要更新 (取代) 使用自訂範本設定的「內容類型:應用程式 /json' 對應範本

命令:

aws apigateway update-integration \ --rest-api-id a1b2c3d4e5 \ --resource-id a1b2c3 \ --http-method POST \ --patch-operations "op='replace',path='/requestTemplates/application~1json',value='{"example": "json"}'"

要使用輸入直通更新(替換)與「內容類型:應用程序/json' 關聯的自定義模板

命令:

aws apigateway update-integration \ --rest-api-id a1b2c3d4e5 \ --resource-id a1b2c3 \ --http-method POST \ --patch-operations "op='replace',path='requestTemplates/application~1json'"

若要移除「內容類型:應用程式 /json' 對應範本

命令:

aws apigateway update-integration \ --rest-api-id a1b2c3d4e5 \ --resource-id a1b2c3 \ --http-method POST \ --patch-operations "op='remove',path='/requestTemplates/application~1json'"

下列程式碼範例會示範如何使用update-method-response

AWS CLI

要為方法中的 200 響應創建一個新的方法響應頭,並將其定義為不需要(默認)

命令:

aws apigateway update-method-response --rest-api-id 1234123412 --resource-id a1b2c3 --http-method GET --status-code 200 --patch-operations op="add",path="/responseParameters/method.response.header.custom-header",value="false"

若要刪除方法中 200 回應的回應模型

命令:

aws apigateway update-method-response --rest-api-id 1234123412 --resource-id a1b2c3 --http-method GET --status-code 200 --patch-operations op="remove",path="/responseModels/application~1json"

下列程式碼範例會示範如何使用update-method

AWS CLI

範例 1:若要修改方法以需要 API 金鑰

下列update-method範例會修改方法以需要 API 金鑰。

aws apigateway update-method \ --rest-api-id 1234123412 \ --resource-id a1b2c3 \ --http-method GET \ --patch-operations op="replace",path="/apiKeyRequired",value="true"

輸出:

{ "httpMethod": "GET", "authorizationType": "NONE", "apiKeyRequired": true, "methodResponses": { "200": { "statusCode": "200", "responseModels": {} } }, "methodIntegration": { "type": "AWS", "httpMethod": "POST", "uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789111:function:hello-world/invocations", "passthroughBehavior": "WHEN_NO_MATCH", "contentHandling": "CONVERT_TO_TEXT", "timeoutInMillis": 29000, "cacheNamespace": "h7i8j9", "cacheKeyParameters": [], "integrationResponses": { "200": { "statusCode": "200", "responseTemplates": {} } } } }

範例 2:修改方法以要求 IAM 授權

下列update-method範例會修改方法以要求 IAM 授權。

aws apigateway update-method \ --rest-api-id 1234123412 \ --resource-id a1b2c3 \ --http-method GET \ --patch-operations op="replace",path="/authorizationType",value="AWS_IAM"

輸出:

{ "httpMethod": "GET", "authorizationType": "AWS_IAM", "apiKeyRequired": false, "methodResponses": { "200": { "statusCode": "200", "responseModels": {} } }, "methodIntegration": { "type": "AWS", "httpMethod": "POST", "uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789111:function:hello-world/invocations", "passthroughBehavior": "WHEN_NO_MATCH", "contentHandling": "CONVERT_TO_TEXT", "timeoutInMillis": 29000, "cacheNamespace": "h7i8j9", "cacheKeyParameters": [], "integrationResponses": { "200": { "statusCode": "200", "responseTemplates": {} } } } }

範例 3:若要修改方法以需要 Lambda 授權

下列update-method範例會將方法修改為必要的 Lambda 授權。

aws apigateway update-method --rest-api-id 1234123412 \ --resource-id a1b2c3 \ --http-method GET \ --patch-operations op="replace",path="/authorizationType",value="CUSTOM" op="replace",path="/authorizerId",value="e4f5g6"

輸出:

{ "httpMethod": "GET", "authorizationType": "CUSTOM", "authorizerId" : "e4f5g6", "apiKeyRequired": false, "methodResponses": { "200": { "statusCode": "200", "responseModels": {} } }, "methodIntegration": { "type": "AWS", "httpMethod": "POST", "uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789111:function:hello-world/invocations", "passthroughBehavior": "WHEN_NO_MATCH", "contentHandling": "CONVERT_TO_TEXT", "timeoutInMillis": 29000, "cacheNamespace": "h7i8j9", "cacheKeyParameters": [], "integrationResponses": { "200": { "statusCode": "200", "responseTemplates": {} } } } }

如需詳細資訊,請參閱 Amazon API Gateway 開發人員指南中的「使用 API Gateway CLI 和 REST API 建立、設定和測試使用計劃」以及在 API 閘道中控制和管理 REST API 的存取。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateMethod中的。

下列程式碼範例會示範如何使用update-model

AWS CLI

若要變更 API 中模型的描述

命令:

aws apigateway update-model --rest-api-id 1234123412 --model-name 'Empty' --patch-operations op=replace,path=/description,value='New Description'

若要變更 API 中模型的結構描述

命令:

aws apigateway update-model --rest-api-id 1234123412 --model-name 'Empty' --patch-operations op=replace,path=/schema,value='"{ \"$schema\": \"http://json-schema.org/draft-04/schema#\", \"title\" : \"Empty Schema\", \"type\" : \"object\" }"'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateModel中的。

下列程式碼範例會示範如何使用update-resource

AWS CLI

移動資源並將其放置在 API 中的其他父資源下

命令:

aws apigateway update-resource --rest-api-id 1234123412 --resource-id 1a2b3c --patch-operations op=replace,path=/parentId,value='3c2b1a'

輸出:

{ "path": "/resource", "pathPart": "resource", "id": "1a2b3c", "parentId": "3c2b1a" }

若要在 API 中重新命名資源 (路徑部分)

命令:

aws apigateway update-resource --rest-api-id 1234123412 --resource-id 1a2b3c --patch-operations op=replace,path=/pathPart,value=newresourcename

輸出:

{ "path": "/newresourcename", "pathPart": "newresourcename", "id": "1a2b3c", "parentId": "3c2b1a" }
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateResource中的。

下列程式碼範例會示範如何使用update-rest-api

AWS CLI

若要變更 API 的名稱

命令:

aws apigateway update-rest-api --rest-api-id 1234123412 --patch-operations op=replace,path=/name,value='New Name'

若要變更 API 的描述

命令:

aws apigateway update-rest-api --rest-api-id 1234123412 --patch-operations op=replace,path=/description,value='New Description'
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateRestApi中的。

下列程式碼範例會示範如何使用update-stage

AWS CLI

範例 1:覆寫資源和方法的階段設定

下列update-stage範例會覆寫階段設定,並關閉特定資源和方法的完整要求/回應記錄。

aws apigateway update-stage \ --rest-api-id 1234123412 \ --stage-name 'dev' \ --patch-operations op=replace,path=/~1resourceName/GET/logging/dataTrace,value=false

輸出:

{ "deploymentId": "5ubd17", "stageName": "dev", "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "methodSettings": { "~1resourceName/GET": { "metricsEnabled": false, "dataTraceEnabled": false, "throttlingBurstLimit": 5000, "throttlingRateLimit": 10000.0, "cachingEnabled": false, "cacheTtlInSeconds": 300, "cacheDataEncrypted": false, "requireAuthorizationForCacheControl": true, "unauthorizedCacheControlHeaderStrategy": "SUCCEED_WITH_RESPONSE_HEADER" } }, "tracingEnabled": false, "createdDate": "2022-07-18T10:11:18-07:00", "lastUpdatedDate": "2022-07-18T10:19:04-07:00" }

如需詳細資訊,請參閱 Amazon API 閘道開發人員指南中的設定 REST API 的階段

範例 2:更新 API 階段所有資源和方法的階段設定

以下update-stage示例打開 API 階段的所有資源和方法的完整請求/響應日誌記錄。

aws apigateway update-stage \ --rest-api-id 1234123412 \ --stage-name 'dev' \ --patch-operations 'op=replace,path=/*/*/logging/dataTrace,value=true'

輸出:

{ "deploymentId": "5ubd17", "stageName": "dev", "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "methodSettings": { "*/*": { "metricsEnabled": false, "dataTraceEnabled": true, "throttlingBurstLimit": 5000, "throttlingRateLimit": 10000.0, "cachingEnabled": false, "cacheTtlInSeconds": 300, "cacheDataEncrypted": false, "requireAuthorizationForCacheControl": true, "unauthorizedCacheControlHeaderStrategy": "SUCCEED_WITH_RESPONSE_HEADER" } }, "tracingEnabled": false, "createdDate": "2022-07-18T10:11:18-07:00", "lastUpdatedDate": "2022-07-18T10:31:04-07:00" }

如需詳細資訊,請參閱 Amazon API 閘道開發人員指南中的設定 REST API 的階段

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateStage中的。

下列程式碼範例會示範如何使用update-usage-plan

AWS CLI

若要變更使用量計劃中定義的期間

命令:

aws apigateway update-usage-plan --usage-plan-id a1b2c3 --patch-operations op="replace",path="/quota/period",value="MONTH"

若要變更使用方案中定義的配額限制

命令:

aws apigateway update-usage-plan --usage-plan-id a1b2c3 --patch-operations op="replace",path="/quota/limit",value="500"

若要變更用量計劃中定義的節流率限制,請執行下列步驟

命令:

aws apigateway update-usage-plan --usage-plan-id a1b2c3 --patch-operations op="replace",path="/throttle/rateLimit",value="10"

若要變更在使用量計劃中定義的油門突發限制

命令:

aws apigateway update-usage-plan --usage-plan-id a1b2c3 --patch-operations op="replace",path="/throttle/burstLimit",value="20"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateUsagePlan中的。

下列程式碼範例會示範如何使用update-usage

AWS CLI

暫時修改用量計劃中定義之目前期間內 API 金鑰的配額

命令:

aws apigateway update-usage --usage-plan-id a1b2c3 --key-id 1NbjQzMReAkeEQPNAW8r3dXsU2rDD7fc7f2Sipnu --patch-operations op="replace",path="/remaining",value="50"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateUsage中的。