API网关HTTP和使用 WebSocket API示例 AWS CLI - AWS SDK代码示例

AWS 文档 AWS SDK示例 GitHub 存储库中还有更多SDK示例

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

API网关HTTP和使用 WebSocket API示例 AWS CLI

以下代码示例向您展示了如何使用 with Gate API way 和,来执行操作HTTP和实现常见场景 WebSocket API。 AWS Command Line Interface

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以在其中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示如何使用 create-api-mapping

AWS CLI

为创建API映射 API

以下create-api-mapping示例将的test阶段映射API到regional.example.com自定义域名的/myApi路径。

aws apigatewayv2 create-api-mapping \ --domain-name regional.example.com \ --api-mapping-key myApi \ --api-id a1b2c3d4 \ --stage test

输出:

{ "ApiId": "a1b2c3d4", "ApiMappingId": "0qzs2sy7bh", "ApiMappingKey": "myApi" "Stage": "test" }

有关更多信息,请参阅 Amazon Gateway 开发者指南中的在 API Gatewa API y 中设置区域自定义域名

以下代码示例演示如何使用 create-api

AWS CLI

要创建 HTTP API

以下create-api示例使用快速创建HTTPAPI来创建。您可以使用快速创建来创建包含 AWS Lambda 或HTTP集成、默认包罗万象的路由以及配置为自动部署更改的默认阶段。API以下命令使用快速创建来创建HTTPAPI与 Lambda 函数集成的。

aws apigatewayv2 create-api \ --name my-http-api \ --protocol-type HTTP \ --target arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function

输出:

{ "ApiEndpoint": "https://a1b2c3d4.execute-api.us-west-2.amazonaws.com", "ApiId": "a1b2c3d4", "ApiKeySelectionExpression": "$request.header.x-api-key", "CreatedDate": "2020-04-08T19:05:45+00:00", "Name": "my-http-api", "ProtocolType": "HTTP", "RouteSelectionExpression": "$request.method $request.path" }

有关更多信息,请参阅 Amazon APIGate HTTP API way 开发者指南中的在API网关中开发。

要创建 WebSocket API

以下create-api示例创建了 WebSocket API具有指定名称的。

aws apigatewayv2 create-api \ --name "myWebSocketApi" \ --protocol-type WEBSOCKET \ --route-selection-expression '$request.body.action'

输出:

{ "ApiKeySelectionExpression": "$request.header.x-api-key", "Name": "myWebSocketApi", "CreatedDate": "2018-11-15T06:23:51Z", "ProtocolType": "WEBSOCKET", "RouteSelectionExpression": "'$request.body.action'", "ApiId": "aabbccddee" }

有关更多信息,请参阅 Amazon API Gatewa WebSocket API y 开发者指南中的在API网关中创建

以下代码示例演示如何使用 create-authorizer

AWS CLI

为创建JWT授权者 HTTP API

以下create-authorizer示例创建了一个使用 Amazon Cognito 作为身份提供JWT者的授权方。

aws apigatewayv2 create-authorizer \ --name my-jwt-authorizer \ --api-id a1b2c3d4 \ --authorizer-type JWT \ --identity-source '$request.header.Authorization' \ --jwt-configuration Audience=123456abc,Issuer=https://cognito-idp.us-west-2.amazonaws.com/us-west-2_abc123

输出:

{ "AuthorizerId": "a1b2c3", "AuthorizerType": "JWT", "IdentitySource": [ "$request.header.Authorization" ], "JwtConfiguration": { "Audience": [ "123456abc" ], "Issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_abc123" }, "Name": "my-jwt-authorizer" }

有关更多信息,请参阅 Amazon API Gatew HTTP APIs ay 开发者指南中的使用JWT授权者控制访问权限

以下代码示例演示如何使用 create-deployment

AWS CLI

为创建部署 API

以下create-deployment示例为创建了一个部署,API并将该部署与的dev阶段相关联API。

aws apigatewayv2 create-deployment \ --api-id a1b2c3d4 \ --stage-name dev

输出:

{ "AutoDeployed": false, "CreatedDate": "2020-04-06T23:38:08Z", "DeploymentId": "53lz9l", "DeploymentStatus": "DEPLOYED" }

有关更多信息,请参阅 Amazon API Gateway 开发者指南中的API部署

以下代码示例演示如何使用 create-domain-name

AWS CLI

创建自定义域名

以下create-domain-name示例为创建区域自定义域名API。

aws apigatewayv2 create-domain-name \ --domain-name regional.example.com \ --domain-name-configurations CertificateArn=arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678

输出:

{ "ApiMappingSelectionExpression": "$request.basepath", "DomainName": "regional.example.com", "DomainNameConfigurations": [ { "ApiGatewayDomainName": "d-id.execute-api.us-west-2.amazonaws.com", "CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678", "EndpointType": "REGIONAL", "HostedZoneId": "123456789111", "SecurityPolicy": "TLS_1_2", "DomainNameStatus": "AVAILABLE" } ] }

有关更多信息,请参阅 Amazon Gateway 开发者指南中的在 API Gatewa API y 中设置区域自定义域名

以下代码示例演示如何使用 create-integration

AWS CLI

创建集 WebSocket API成

以下create-integration示例为创建了一个模拟集成 WebSocket API。

aws apigatewayv2 create-integration \ --api-id aabbccddee \ --passthrough-behavior WHEN_NO_MATCH \ --timeout-in-millis 29000 \ --connection-type INTERNET \ --integration-type MOCK

输出:

{ "ConnectionType": "INTERNET", "IntegrationId": "0abcdef", "IntegrationResponseSelectionExpression": "${integration.response.statuscode}", "IntegrationType": "MOCK", "PassthroughBehavior": "WHEN_NO_MATCH", "PayloadFormatVersion": "1.0", "TimeoutInMillis": 29000 }

有关更多信息,请参阅 Amazon Gateway 开发者指南中的在 API Gat API eway 中设置 WebSocket API集成请求

创建集HTTPAPI成

以下create-integration示例为创建了 L AWS ambda 集成。HTTP API

aws apigatewayv2 create-integration \ --api-id a1b2c3d4 \ --integration-type AWS_PROXY \ --integration-uri arn:aws:lambda:us-west-2:123456789012:function:my-function \ --payload-format-version 2.0

输出:

{ "ConnectionType": "INTERNET", "IntegrationId": "0abcdef", "IntegrationMethod": "POST", "IntegrationType": "AWS_PROXY", "IntegrationUri": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "PayloadFormatVersion": "2.0", "TimeoutInMillis": 30000 }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的配置集成

以下代码示例演示如何使用 create-route

AWS CLI

为或创建 $defa WebSocket ult 路由 HTTP API

以下create-route示例为 WebSocket 或创建$default路径HTTPAPI。

aws apigatewayv2 create-route \ --api-id aabbccddee \ --route-key '$default'

输出:

{ "ApiKeyRequired": false, "AuthorizationType": "NONE", "RouteKey": "$default", "RouteId": "1122334" }

有关更多信息,请参阅 Amazon API Gateway 开发者指南 WebSocket APIs中的使用路由

为某人创建路线 HTTP API

以下create-route示例创建了一个名为的接受POST请求signup的路由。

aws apigatewayv2 create-route \ --api-id aabbccddee \ --route-key 'POST /signup'

输出:

{ "ApiKeyRequired": false, "AuthorizationType": "NONE", "RouteKey": "POST /signup", "RouteId": "1122334" }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用路由

以下代码示例演示如何使用 create-stage

AWS CLI

创建舞台

以下create-stage示例为创建了一个名为 dev 的阶段API。

aws apigatewayv2 create-stage \ --api-id a1b2c3d4 \ --stage-name dev

输出:

{ "CreatedDate": "2020-04-06T23:23:46Z", "DefaultRouteSettings": { "DetailedMetricsEnabled": false }, "LastUpdatedDate": "2020-04-06T23:23:46Z", "RouteSettings": {}, "StageName": "dev", "StageVariables": {}, "Tags": {} }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用阶段

以下代码示例演示如何使用 create-vpc-link

AWS CLI

为创建VPC链接 HTTP API

以下create-vpc-link示例为创建了一个VPC链接HTTPAPIs。

aws apigatewayv2 create-vpc-link \ --name MyVpcLink \ --subnet-ids subnet-aaaa subnet-bbbb \ --security-group-ids sg1234 sg5678

输出:

{ "CreatedDate": "2020-04-07T00:11:46Z", "Name": "MyVpcLink", "SecurityGroupIds": [ "sg1234", "sg5678" ], "SubnetIds": [ "subnet-aaaa", "subnet-bbbb" ], "Tags": {}, "VpcLinkId": "abcd123", "VpcLinkStatus": "PENDING", "VpcLinkStatusMessage": "VPC link is provisioning ENIs", "VpcLinkVersion": "V2" }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用VPC链接

以下代码示例演示如何使用 delete-access-log-settings

AWS CLI

禁用访问日志记录 API

以下delete-access-log-settings示例删除了$default阶段的访问日志设置API。要禁用某个阶段的访问日志记录,请删除其访问日志设置。

aws apigatewayv2 delete-access-log-settings \ --api-id a1b2c3d4 \ --stage-name '$default'

此命令不生成任何输出。

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPI中的配置日志记录

以下代码示例演示如何使用 delete-api-mapping

AWS CLI

删除映API射

以下delete-api-mapping示例删除了api.example.com自定义域名的API映射。

aws apigatewayv2 delete-api-mapping \ --api-mapping-id a1b2c3 \ --domain-name api.example.com

此命令不生成任何输出。

有关更多信息,请参阅 Amazon Gateway 开发者指南中的在 API Gatewa API y 中设置区域自定义域名

以下代码示例演示如何使用 delete-api

AWS CLI

要删除 API

以下delete-api示例删除了API。

aws apigatewayv2 delete-api \ --api-id a1b2c3d4

此命令不生成任何输出。

有关更多信息,请参阅 Amazon API Gateway 开发者指南 WebSocket APIs中的使用HTTPAPIs和使用。

以下代码示例演示如何使用 delete-authorizer

AWS CLI

删除授权者

以下delete-authorizer示例删除授权方。

aws apigatewayv2 delete-authorizer \ --api-id a1b2c3d4 \ --authorizer-id a1b2c3

此命令不生成任何输出。

有关更多信息,请参阅 Amazon API Gatew HTTP APIs ay 开发者指南中的使用JWT授权者控制访问权限

以下代码示例演示如何使用 delete-cors-configuration

AWS CLI

删除的CORS配置 HTTP API

以下delete-cors-configuration示例HTTPAPI通过删除CORS配置CORS来禁用它。

aws apigatewayv2 delete-cors-configuration \ --api-id a1b2c3d4

此命令不生成任何输出。

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPI中的CORS为进行配置

以下代码示例演示如何使用 delete-deployment

AWS CLI

删除部署

以下delete-deployment示例删除的部署API。

aws apigatewayv2 delete-deployment \ --api-id a1b2c3d4 \ --deployment-id a1b2c3

此命令不生成任何输出。

有关更多信息,请参阅 Amazon API Gateway 开发者指南中的API部署

以下代码示例演示如何使用 delete-domain-name

AWS CLI

删除自定义域名

以下delete-domain-name示例删除自定义域名。

aws apigatewayv2 delete-domain-name \ --domain-name api.example.com

此命令不生成任何输出。

有关更多信息,请参阅 Amazon Gateway 开发者指南中的在 API Gatewa API y 中设置区域自定义域名

以下代码示例演示如何使用 delete-integration

AWS CLI

删除集成

以下delete-integration示例删除了集API成。

aws apigatewayv2 delete-integration \ --api-id a1b2c3d4 \ --integration-id a1b2c3

此命令不生成任何输出。

有关更多信息,请参阅 A mazon Gate API way 开发者指南中的配置 WebSocket API集成HTTPAPIs和设置集成

以下代码示例演示如何使用 delete-route-settings

AWS CLI

删除路径设置

以下delete-route-settings示例删除指定路径的路径设置。

aws apigatewayv2 delete-route-settings \ --api-id a1b2c3d4 \ --stage-name dev \ --route-key 'GET /pets'

此命令不生成任何输出。

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用路由

以下代码示例演示如何使用 delete-route

AWS CLI

删除路线

以下delete-route示例删除了一API条路径。

aws apigatewayv2 delete-route \ --api-id a1b2c3d4 \ --route-id a1b2c3

此命令不生成任何输出。

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用路由

以下代码示例演示如何使用 delete-stage

AWS CLI

删除舞台

以下delete-stage示例删除了的test阶段API。

aws apigatewayv2 delete-stage \ --api-id a1b2c3d4 \ --stage-name test

此命令不生成任何输出。

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用阶段

以下代码示例演示如何使用 delete-vpc-link

AWS CLI

删除的VPC链接 HTTP API

以下delete-vpc-link示例删除了一个VPC链接。

aws apigatewayv2 delete-vpc-link \ --vpc-link-id abcd123

此命令不生成任何输出。

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用VPC链接

以下代码示例演示如何使用 export-api

AWS CLI

导出的 Open API 定义 HTTP API

以下export-api示例将名为的API阶段的 Open API 3.0 定义导出prod到名为YAML的文件中stage-definition.yaml。默认情况下,导出的定义文件包括API网关扩展。

aws apigatewayv2 export-api \ --api-id a1b2c3d4 \ --output-type YAML \ --specification OAS30 \ --stage-name prod \ stage-definition.yaml

此命令不生成任何输出。

有关更多信息,请参阅 Amazon API Gateway 开发者指南中的HTTPAPI从API网关导出

以下代码示例演示如何使用 get-api-mapping

AWS CLI

获取有关自定义域名API映射的信息

以下get-api-mapping示例显示了有关api.example.com自定义域名API映射的信息。

aws apigatewayv2 get-api-mapping \ --api-mapping-id a1b2c3 \ --domain-name api.example.com

输出:

{ "ApiId": "a1b2c3d4", "ApiMappingId": "a1b2c3d5", "ApiMappingKey": "myTestApi" "Stage": "test" }

有关更多信息,请参阅 Amazon Gateway 开发者指南中的在 API Gatewa API y 中设置区域自定义域名

以下代码示例演示如何使用 get-api-mappings

AWS CLI

获取自定义域名的API映射

以下get-api-mappings示例显示了api.example.com自定义域名的所有API映射的列表。

aws apigatewayv2 get-api-mappings \ --domain-name api.example.com

输出:

{ "Items": [ { "ApiId": "a1b2c3d4", "ApiMappingId": "a1b2c3d5", "ApiMappingKey": "myTestApi" "Stage": "test" }, { "ApiId": "a5b6c7d8", "ApiMappingId": "a1b2c3d6", "ApiMappingKey": "myDevApi" "Stage": "dev" }, ] }

有关更多信息,请参阅 Amazon Gateway 开发者指南中的在 API Gatewa API y 中设置区域自定义域名

以下代码示例演示如何使用 get-api

AWS CLI

检索有关某人的信息 API

以下get-api示例显示了有关的信息API。

aws apigatewayv2 get-api \ --api-id a1b2c3d4

输出:

{ "ApiEndpoint": "https://a1b2c3d4.execute-api.us-west-2.amazonaws.com", "ApiId": "a1b2c3d4", "ApiKeySelectionExpression": "$request.header.x-api-key", "CreatedDate": "2020-03-28T00:32:37Z", "Name": "my-api", "ProtocolType": "HTTP", "RouteSelectionExpression": "$request.method $request.path", "Tags": { "department": "finance" } }
  • 有关API详细信息,请参阅 “GetApi AWS CLI命令参考”

以下代码示例演示如何使用 get-apis

AWS CLI

要检索列表 APIs

以下get-apis示例列出了当前用户的所有内容。APIs

aws apigatewayv2 get-apis

输出:

{ "Items": [ { "ApiEndpoint": "wss://a1b2c3d4.execute-api.us-west-2.amazonaws.com", "ApiId": "a1b2c3d4", "ApiKeySelectionExpression": "$request.header.x-api-key", "CreatedDate": "2020-04-07T20:21:59Z", "Name": "my-websocket-api", "ProtocolType": "WEBSOCKET", "RouteSelectionExpression": "$request.body.message", "Tags": {} }, { "ApiEndpoint": "https://a1b2c3d5.execute-api.us-west-2.amazonaws.com", "ApiId": "a1b2c3d5", "ApiKeySelectionExpression": "$request.header.x-api-key", "CreatedDate": "2020-04-07T20:23:50Z", "Name": "my-http-api", "ProtocolType": "HTTP", "RouteSelectionExpression": "$request.method $request.path", "Tags": {} } ] }

有关更多信息,请参阅 Amazon API Gateway 开发者指南 WebSocket APIs中的使用HTTPAPIs和使用。

以下代码示例演示如何使用 get-authorizer

AWS CLI

检索有关授权者的信息

以下get-authorizer示例显示有关授权者的信息。

aws apigatewayv2 get-authorizer \ --api-id a1b2c3d4 \ --authorizer-id a1b2c3

输出:

{ "AuthorizerId": "a1b2c3", "AuthorizerType": "JWT", "IdentitySource": [ "$request.header.Authorization" ], "JwtConfiguration": { "Audience": [ "123456abc" ], "Issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_abc123" }, "Name": "my-jwt-authorizer" }

有关更多信息,请参阅 Amazon API Gatew HTTP APIs ay 开发者指南中的使用JWT授权者控制访问权限

以下代码示例演示如何使用 get-authorizers

AWS CLI

检索某项的授权者列表 API

以下get-authorizers示例显示了的所有授权者的列表。API

aws apigatewayv2 get-authorizers \ --api-id a1b2c3d4

输出:

{ "Items": [ { "AuthorizerId": "a1b2c3", "AuthorizerType": "JWT", "IdentitySource": [ "$request.header.Authorization" ], "JwtConfiguration": { "Audience": [ "123456abc" ], "Issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_abc123" }, "Name": "my-jwt-authorizer" }, { "AuthorizerId": "a1b2c4", "AuthorizerType": "JWT", "IdentitySource": [ "$request.header.Authorization" ], "JwtConfiguration": { "Audience": [ "6789abcde" ], "Issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_abc234" }, "Name": "new-jwt-authorizer" } ] }

有关更多信息,请参阅 Amazon API Gatew HTTP APIs ay 开发者指南中的使用JWT授权者控制访问权限

以下代码示例演示如何使用 get-deployment

AWS CLI

检索有关部署的信息

以下get-deployment示例显示有关部署的信息。

aws apigatewayv2 get-deployment \ --api-id a1b2c3d4 \ --deployment-id abcdef

输出:

{ "AutoDeployed": true, "CreatedDate": "2020-04-07T23:58:40Z", "DeploymentId": "abcdef", "DeploymentStatus": "DEPLOYED", "Description": "Automatic deployment triggered by changes to the Api configuration" }

有关更多信息,请参阅 Amazon API Gateway 开发者指南中的API部署

以下代码示例演示如何使用 get-deployments

AWS CLI

检索部署列表

以下get-deployments示例显示了的所有部署API的列表。

aws apigatewayv2 get-deployments \ --api-id a1b2c3d4

输出:

{ "Items": [ { "AutoDeployed": true, "CreatedDate": "2020-04-07T23:58:40Z", "DeploymentId": "abcdef", "DeploymentStatus": "DEPLOYED", "Description": "Automatic deployment triggered by changes to the Api configuration" }, { "AutoDeployed": true, "CreatedDate": "2020-04-06T00:33:00Z", "DeploymentId": "bcdefg", "DeploymentStatus": "DEPLOYED", "Description": "Automatic deployment triggered by changes to the Api configuration" } ] }

有关更多信息,请参阅 Amazon API Gateway 开发者指南中的API部署

以下代码示例演示如何使用 get-domain-name

AWS CLI

检索有关自定义域名的信息

以下get-domain-name示例显示有关自定义域名的信息。

aws apigatewayv2 get-domain-name \ --domain-name api.example.com

输出:

{ "ApiMappingSelectionExpression": "$request.basepath", "DomainName": "api.example.com", "DomainNameConfigurations": [ { "ApiGatewayDomainName": "d-1234.execute-api.us-west-2.amazonaws.com", "CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678", "EndpointType": "REGIONAL", "HostedZoneId": "123456789111", "SecurityPolicy": "TLS_1_2", "DomainNameStatus": "AVAILABLE" } ], "Tags": {} }

有关更多信息,请参阅 Amazon Gateway 开发者指南中的在 API Gatewa API y 中设置区域自定义域名

以下代码示例演示如何使用 get-domain-names

AWS CLI

检索自定义域名列表

以下get-domain-names示例显示了当前用户的所有自定义域名的列表。

aws apigatewayv2 get-domain-names

输出:

{ "Items": [ { "ApiMappingSelectionExpression": "$request.basepath", "DomainName": "api.example.com", "DomainNameConfigurations": [ { "ApiGatewayDomainName": "d-1234.execute-api.us-west-2.amazonaws.com", "CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678", "EndpointType": "REGIONAL", "HostedZoneId": "123456789111", "SecurityPolicy": "TLS_1_2", "DomainNameStatus": "AVAILABLE" } ] }, { "ApiMappingSelectionExpression": "$request.basepath", "DomainName": "newApi.example.com", "DomainNameConfigurations": [ { "ApiGatewayDomainName": "d-5678.execute-api.us-west-2.amazonaws.com", "CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678", "EndpointType": "REGIONAL", "HostedZoneId": "123456789222", "SecurityPolicy": "TLS_1_2", "DomainNameStatus": "AVAILABLE" } ] } ] }

有关更多信息,请参阅 Amazon Gateway 开发者指南中的在 API Gatewa API y 中设置区域自定义域名

以下代码示例演示如何使用 get-integration

AWS CLI

检索有关集成的信息

以下get-integration示例显示了有关集成的信息。

aws apigatewayv2 get-integration \ --api-id a1b2c3d4 \ --integration-id a1b2c3

输出:

{ "ApiGatewayManaged": true, "ConnectionType": "INTERNET", "IntegrationId": "a1b2c3", "IntegrationMethod": "POST", "IntegrationType": "AWS_PROXY", "IntegrationUri": "arn:aws:lambda:us-west-2:12356789012:function:hello12", "PayloadFormatVersion": "2.0", "TimeoutInMillis": 30000 }

有关更多信息,请参阅 A mazon Gate API way 开发者指南中的配置 WebSocket API集成HTTPAPIs和设置集成

以下代码示例演示如何使用 get-integrations

AWS CLI

检索集成列表

以下get-integrations示例显示了所有集成的列表。API

aws apigatewayv2 get-integrations \ --api-id a1b2c3d4

输出:

{ "Items": [ { "ApiGatewayManaged": true, "ConnectionType": "INTERNET", "IntegrationId": "a1b2c3", "IntegrationMethod": "POST", "IntegrationType": "AWS_PROXY", "IntegrationUri": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "PayloadFormatVersion": "2.0", "TimeoutInMillis": 30000 }, { "ConnectionType": "INTERNET", "IntegrationId": "a1b2c4", "IntegrationMethod": "ANY", "IntegrationType": "HTTP_PROXY", "IntegrationUri": "https://www.example.com", "PayloadFormatVersion": "1.0", "TimeoutInMillis": 30000 } ] }

有关更多信息,请参阅 A mazon Gate API way 开发者指南中的配置 WebSocket API集成HTTPAPIs和设置集成

以下代码示例演示如何使用 get-route

AWS CLI

检索有关路径的信息

以下get-route示例显示有关路径的信息。

aws apigatewayv2 get-route \ --api-id a1b2c3d4 \ --route-id 72jz1wk

输出:

{ "ApiKeyRequired": false, "AuthorizationType": "NONE", "RouteId": "72jz1wk", "RouteKey": "ANY /pets", "Target": "integrations/a1b2c3" }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用路由

以下代码示例演示如何使用 get-routes

AWS CLI

检索路线列表

以下get-routes示例显示了所有路径API的列表。

aws apigatewayv2 get-routes \ --api-id a1b2c3d4

输出:

{ "Items": [ { "ApiKeyRequired": false, "AuthorizationType": "NONE", "RouteId": "72jz1wk", "RouteKey": "ANY /admin", "Target": "integrations/a1b2c3" }, { "ApiGatewayManaged": true, "ApiKeyRequired": false, "AuthorizationType": "NONE", "RouteId": "go65gqi", "RouteKey": "$default", "Target": "integrations/a1b2c4" } ] }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用路由

以下代码示例演示如何使用 get-stage

AWS CLI

检索有关阶段的信息

以下get-stage示例显示了有关prod阶段的信息API。

aws apigatewayv2 get-stage \ --api-id a1b2c3d4 \ --stage-name prod

输出:

{ "CreatedDate": "2020-04-08T00:36:05Z", "DefaultRouteSettings": { "DetailedMetricsEnabled": false }, "DeploymentId": "x1zwyv", "LastUpdatedDate": "2020-04-08T00:36:13Z", "RouteSettings": {}, "StageName": "prod", "StageVariables": { "function": "my-prod-function" }, "Tags": {} }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用阶段

以下代码示例演示如何使用 get-stages

AWS CLI

检索阶段列表

以下get-stages示例列出API了 a 的所有阶段。

aws apigatewayv2 get-stages \ --api-id a1b2c3d4

输出:

{ "Items": [ { "ApiGatewayManaged": true, "AutoDeploy": true, "CreatedDate": "2020-04-08T00:08:44Z", "DefaultRouteSettings": { "DetailedMetricsEnabled": false }, "DeploymentId": "dty748", "LastDeploymentStatusMessage": "Successfully deployed stage with deployment ID 'dty748'", "LastUpdatedDate": "2020-04-08T00:09:49Z", "RouteSettings": {}, "StageName": "$default", "StageVariables": {}, "Tags": {} }, { "AutoDeploy": true, "CreatedDate": "2020-04-08T00:35:06Z", "DefaultRouteSettings": { "DetailedMetricsEnabled": false }, "LastUpdatedDate": "2020-04-08T00:35:48Z", "RouteSettings": {}, "StageName": "dev", "StageVariables": { "function": "my-dev-function" }, "Tags": {} }, { "CreatedDate": "2020-04-08T00:36:05Z", "DefaultRouteSettings": { "DetailedMetricsEnabled": false }, "DeploymentId": "x1zwyv", "LastUpdatedDate": "2020-04-08T00:36:13Z", "RouteSettings": {}, "StageName": "prod", "StageVariables": { "function": "my-prod-function" }, "Tags": {} } ] }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用阶段

以下代码示例演示如何使用 get-tags

AWS CLI

检索资源的标签列表

以下get-tags示例列出API了 a 的所有标签。

aws apigatewayv2 get-tags \ --resource-arn arn:aws:apigateway:us-west-2::/apis/a1b2c3d4

输出:

{ "Tags": { "owner": "dev-team", "environment": "prod" } }

有关更多信息,请参阅 Amazon Gateway 开发者指南中的为API网API关资源添加标签

以下代码示例演示如何使用 get-vpc-link

AWS CLI

检索有关VPC链接的信息

以下get-vpc-link示例显示有关VPC链接的信息。

aws apigatewayv2 get-vpc-link \ --vpc-link-id abcd123

输出:

{ "CreatedDate": "2020-04-07T00:27:47Z", "Name": "MyVpcLink", "SecurityGroupIds": [ "sg1234", "sg5678" ], "SubnetIds": [ "subnet-aaaa", "subnet-bbbb" ], "Tags": {}, "VpcLinkId": "abcd123", "VpcLinkStatus": "AVAILABLE", "VpcLinkStatusMessage": "VPC link is ready to route traffic", "VpcLinkVersion": "V2" }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用VPC链接

以下代码示例演示如何使用 get-vpc-links

AWS CLI

检索VPC链接列表

以下get-vpc-links示例显示了当前用户的所有VPC链接的列表。

aws apigatewayv2 get-vpc-links

输出:

{ "Items": [ { "CreatedDate": "2020-04-07T00:27:47Z", "Name": "MyVpcLink", "SecurityGroupIds": [ "sg1234", "sg5678" ], "SubnetIds": [ "subnet-aaaa", "subnet-bbbb" ], "Tags": {}, "VpcLinkId": "abcd123", "VpcLinkStatus": "AVAILABLE", "VpcLinkStatusMessage": "VPC link is ready to route traffic", "VpcLinkVersion": "V2" } { "CreatedDate": "2020-04-07T00:27:47Z", "Name": "MyOtherVpcLink", "SecurityGroupIds": [ "sg1234", "sg5678" ], "SubnetIds": [ "subnet-aaaa", "subnet-bbbb" ], "Tags": {}, "VpcLinkId": "abcd456", "VpcLinkStatus": "AVAILABLE", "VpcLinkStatusMessage": "VPC link is ready to route traffic", "VpcLinkVersion": "V2" } ] }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用VPC链接

以下代码示例演示如何使用 import-api

AWS CLI

要导入 HTTP API

以下import-api示例根据名为 Op HTTP API en API 3.0 的定义文件创建一个api-definition.yaml

aws apigatewayv2 import-api \ --body file://api-definition.yaml

api-definition.yaml 的内容:

openapi: 3.0.1 info: title: My Lambda API version: v1.0 paths: /hello: x-amazon-apigateway-any-method: x-amazon-apigateway-integration: payloadFormatVersion: 2.0 type: aws_proxy httpMethod: POST uri: arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:hello/invocations connectionType: INTERNET

输出:

{ "ApiEndpoint": "https://a1b2c3d4.execute-api.us-west-2.amazonaws.com", "ApiId": "a1b2c3d4", "ApiKeySelectionExpression": "$request.header.x-api-key", "CreatedDate": "2020-04-08T17:19:38+00:00", "Name": "My Lambda API", "ProtocolType": "HTTP", "RouteSelectionExpression": "$request.method $request.path", "Tags": {}, "Version": "v1.0" }

有关更多信息,请参阅 Amazon Gate API way 开发者指南HTTPAPIs中的使用开放式API定义

以下代码示例演示如何使用 reimport-api

AWS CLI

要重新导入 HTTP API

以下reimport-api示例将现有版本更新HTTPAPI为使用中指定的 Open API 3.0 定义api-definition.yaml

aws apigatewayv2 reimport-api \ --body file://api-definition.yaml \ --api-id a1b2c3d4

api-definition.yaml 的内容:

openapi: 3.0.1 info: title: My Lambda API version: v1.0 paths: /hello: x-amazon-apigateway-any-method: x-amazon-apigateway-integration: payloadFormatVersion: 2.0 type: aws_proxy httpMethod: POST uri: arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:12356789012:function:hello/invocations connectionType: INTERNET

输出:

{ "ApiEndpoint": "https://a1b2c3d4.execute-api.us-west-2.amazonaws.com", "ApiId": "a1b2c3d4", "ApiKeySelectionExpression": "$request.header.x-api-key", "CreatedDate": "2020-04-08T17:19:38+00:00", "Name": "My Lambda API", "ProtocolType": "HTTP", "RouteSelectionExpression": "$request.method $request.path", "Tags": {}, "Version": "v1.0" }

有关更多信息,请参阅 Amazon Gate API way 开发者指南HTTPAPIs中的使用开放式API定义

以下代码示例演示如何使用 tag-resource

AWS CLI

为资源添加标签

以下tag-resource示例将密钥名称Department和值为的Accounting标签添加到指定的API。

aws apigatewayv2 tag-resource \ --resource-arn arn:aws:apigateway:us-west-2::/apis/a1b2c3d4 \ --tags Department=Accounting

此命令不生成任何输出。

有关更多信息,请参阅 Amazon Gateway 开发者指南中的为API网API关资源添加标签

以下代码示例演示如何使用 untag-resource

AWS CLI

要从资源中删除标签

以下untag-resource示例Owner从指定的中移除具有密钥名称Project和的标签API。

aws apigatewayv2 untag-resource \ --resource-arn arn:aws:apigateway:us-west-2::/apis/a1b2c3d4 \ --tag-keys Project Owner

此命令不生成任何输出。

有关更多信息,请参阅 Amazon Gateway 开发者指南中的为API网API关资源添加标签

以下代码示例演示如何使用 update-api-mapping

AWS CLI

更新映API射

以下update-api-mapping示例更改了自定义域名的API映射。因此,URL使用指定API和阶段的自定义域名的基础变为https://api.example.com/dev

aws apigatewayv2 update-api-mapping \ --api-id a1b2c3d4 \ --stage dev \ --domain-name api.example.com \ --api-mapping-id 0qzs2sy7bh \ --api-mapping-key dev

输出:

{ "ApiId": "a1b2c3d4", "ApiMappingId": "0qzs2sy7bh", "ApiMappingKey": "dev" "Stage": "dev" }

有关更多信息,请参阅 Amazon Gateway 开发者指南中的在 API Gatewa API y 中设置区域自定义域名

以下代码示例演示如何使用 update-api

AWS CLI

要启CORS用 HTTP API

以下update-api示例更新了指定的CORS配置以允许来自API的请求https://www.example.com

aws apigatewayv2 update-api \ --api-id a1b2c3d4 \ --cors-configuration AllowOrigins=https://www.example.com

输出:

{ "ApiEndpoint": "https://a1b2c3d4.execute-api.us-west-2.amazonaws.com", "ApiId": "a1b2c3d4", "ApiKeySelectionExpression": "$request.header.x-api-key", "CorsConfiguration": { "AllowCredentials": false, "AllowHeaders": [ "header1", "header2" ], "AllowMethods": [ "GET", "OPTIONS" ], "AllowOrigins": [ "https://www.example.com" ] }, "CreatedDate": "2020-04-08T18:39:37+00:00", "Name": "my-http-api", "ProtocolType": "HTTP", "RouteSelectionExpression": "$request.method $request.path", "Tags": {}, "Version": "v1.0" }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPI中的CORS为进行配置

以下代码示例演示如何使用 update-authorizer

AWS CLI

更新授权者

以下update-authorizer示例将JWT授权方的身份源更改为名Authorization为的标头。

aws apigatewayv2 update-authorizer \ --api-id a1b2c3d4 \ --authorizer-id a1b2c3 \ --identity-source '$request.header.Authorization'

输出:

{ "AuthorizerId": "a1b2c3", "AuthorizerType": "JWT", "IdentitySource": [ "$request.header.Authorization" ], "JwtConfiguration": { "Audience": [ "123456abc" ], "Issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_abc123" }, "Name": "my-jwt-authorizer" }

有关更多信息,请参阅 Amazon API Gatew HTTP APIs ay 开发者指南中的使用JWT授权者控制访问权限

以下代码示例演示如何使用 update-deployment

AWS CLI

更改部署的描述

以下update-deployment示例更新了部署的描述。

aws apigatewayv2 update-deployment \ --api-id a1b2c3d4 \ --deployment-id abcdef \ --description 'Manual deployment to fix integration test failures.'

输出:

{ "AutoDeployed": false, "CreatedDate": "2020-02-05T16:21:48+00:00", "DeploymentId": "abcdef", "DeploymentStatus": "DEPLOYED", "Description": "Manual deployment to fix integration test failures." }

有关更多信息,请参阅 Amazon APIGate HTTP API way 开发者指南中的在API网关中开发。

以下代码示例演示如何使用 update-domain-name

AWS CLI

更新自定义域名

以下update-domain-name示例为api.example.com自定义域名指定了新ACM证书。

aws apigatewayv2 update-domain-name \ --domain-name api.example.com \ --domain-name-configurations CertificateArn=arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678

输出:

{ "ApiMappingSelectionExpression": "$request.basepath", "DomainName": "regional.example.com", "DomainNameConfigurations": [ { "ApiGatewayDomainName": "d-id.execute-api.us-west-2.amazonaws.com", "CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678", "EndpointType": "REGIONAL", "HostedZoneId": "123456789111", "SecurityPolicy": "TLS_1_2", "DomainNameStatus": "AVAILABLE" } ] }

有关更多信息,请参阅 Amazon Gateway 开发者指南中的在 API Gatewa API y 中设置区域自定义域名

以下代码示例演示如何使用 update-integration

AWS CLI

更新 Lambda 集成

以下update-integration示例将现有的 AWS Lambda 集成更新为使用指定的 Lambda 函数。

aws apigatewayv2 update-integration \ --api-id a1b2c3d4 \ --integration-id a1b2c3 \ --integration-uri arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:my-new-function/invocations

输出:

{ "ConnectionType": "INTERNET", "IntegrationId": "a1b2c3", "IntegrationMethod": "POST", "IntegrationType": "AWS_PROXY", "IntegrationUri": "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:my-new-function/invocations", "PayloadFormatVersion": "2.0", "TimeoutInMillis": 5000 }

有关更多信息,请参阅 A mazon Gate API way 开发者指南中的配置 WebSocket API集成HTTPAPIs和设置集成

以下代码示例演示如何使用 update-route

AWS CLI

示例 1:更新路径的集成

以下update-route示例更新了指定路径的集成。

aws apigatewayv2 update-route \ --api-id a1b2c3d4 \ --route-id a1b2c3 \ --target integrations/a1b2c6

输出:

{ "ApiKeyRequired": false, "AuthorizationType": "NONE", "RouteId": "a1b2c3", "RouteKey": "ANY /pets", "Target": "integrations/a1b2c6" }

示例 2:向路径添加授权者

以下update-route示例更新指定路径以使用JWT授权方。

aws apigatewayv2 update-route \ --api-id a1b2c3d4 \ --route-id a1b2c3 \ --authorization-type JWT \ --authorizer-id a1b2c5 \ --authorization-scopes user.id user.email

输出:

{ "ApiKeyRequired": false, "AuthorizationScopes": [ "user.id", "user.email" ], "AuthorizationType": "JWT", "AuthorizerId": "a1b2c5", "OperationName": "GET HTTP", "RequestParameters": {}, "RouteId": "a1b2c3", "RouteKey": "GET /pets", "Target": "integrations/a1b2c6" }

有关更多信息,请参阅 Amazon API Gatew HTTP APIs ay 开发者指南中的使用JWT授权者控制访问权限

以下代码示例演示如何使用 update-stage

AWS CLI

配置自定义限制

以下update-stage示例为的指定阶段和路径配置自定义限制。API

aws apigatewayv2 update-stage \ --api-id a1b2c3d4 \ --stage-name dev \ --route-settings '{"GET /pets":{"ThrottlingBurstLimit":100,"ThrottlingRateLimit":2000}}'

输出:

{ "CreatedDate": "2020-04-05T16:21:16+00:00", "DefaultRouteSettings": { "DetailedMetricsEnabled": false }, "DeploymentId": "shktxb", "LastUpdatedDate": "2020-04-08T22:23:17+00:00", "RouteSettings": { "GET /pets": { "ThrottlingBurstLimit": 100, "ThrottlingRateLimit": 2000.0 } }, "StageName": "dev", "StageVariables": {}, "Tags": {} }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPI中的保护您的。

以下代码示例演示如何使用 update-vpc-link

AWS CLI

更新VPC链接

以下update-vpc-link示例更新了VPC链接的名称。创建VPC链接后,您无法更改其安全组或子网。

aws apigatewayv2 update-vpc-link \ --vpc-link-id abcd123 \ --name MyUpdatedVpcLink

输出:

{ "CreatedDate": "2020-04-07T00:27:47Z", "Name": "MyUpdatedVpcLink", "SecurityGroupIds": [ "sg1234", "sg5678" ], "SubnetIds": [ "subnet-aaaa", "subnet-bbbb" ], "Tags": {}, "VpcLinkId": "abcd123", "VpcLinkStatus": "AVAILABLE", "VpcLinkStatusMessage": "VPC link is ready to route traffic", "VpcLinkVersion": "V2" }

有关更多信息,请参阅 Amazon API Gateway 开发者指南HTTPAPIs中的使用VPC链接