使用 aws-cli 创建 api-gateway lambda 集成
Create api-gateway lambda integration using aws-cli
我需要使用 aws 客户端创建一个 api 网关。我使用 Web 控制台成功创建并集成了我的 aws-lambda 函数。但我对 aws-client 感到困惑。这些是我遵循的步骤。
- 创建 api 网关并使用 Web 控制台与我的示例 lambda 函数集成。
- 部署创建的 api 并导出为 json 文件。
使用 aws-cli 使用导出的 json 文件创建新的 api 网关。像这样命令。
aws apigateway import-rest-api --body file://tmpfile.json --region us-east-1;
但它只创建了资源和方法。
为了将 api 方法与我的 lambda 函数集成,我执行这样的命令
aws apigateway put-integration --rest-api-id 42ku123id8u3a --resource-id core-api-dev --http-method DELETE --type AWS --integration-http-method POST --uri 'arn:aws:lambda:us-east-1:my-lambda-function-arn' --region us-east-1
但是它会产生这样的错误信息
An error occurred (NotFoundException) when calling the PutIntegration operation: Invalid Resource identifier specified
是否可以使用 aws 客户端将 api 网关方法与现有的 lambda 函数集成?什么是资源标识符?
您可以 运行 aws apigateway get-resources
获得 resource-id
aws apigateway get-resources --rest-api-id 42ku123id8u3a --region us-east-1
它将return一个JSon喜欢
{
"items": [
{
"path": "/resource/xxx",
"resourceMethods": {
"POST": {}
},
"id": "_yourresourceid_",
"pathPart": "xxx",
"parentId": "ai5b02"
}
]
}
您可以从这个 JSon 中获取 id 并将其用于 aws apigateway put-integration
的命令
理想情况下,您应该在步骤 2 'with integration extensions' 中导出为 JSON。在控制台中有 3 个导出类型选项,中间的选项将包括导出中的集成和授权方。然后当您导入时,您将已经有了集成。
我需要使用 aws 客户端创建一个 api 网关。我使用 Web 控制台成功创建并集成了我的 aws-lambda 函数。但我对 aws-client 感到困惑。这些是我遵循的步骤。
- 创建 api 网关并使用 Web 控制台与我的示例 lambda 函数集成。
- 部署创建的 api 并导出为 json 文件。
使用 aws-cli 使用导出的 json 文件创建新的 api 网关。像这样命令。
aws apigateway import-rest-api --body file://tmpfile.json --region us-east-1;
但它只创建了资源和方法。
为了将 api 方法与我的 lambda 函数集成,我执行这样的命令
aws apigateway put-integration --rest-api-id 42ku123id8u3a --resource-id core-api-dev --http-method DELETE --type AWS --integration-http-method POST --uri 'arn:aws:lambda:us-east-1:my-lambda-function-arn' --region us-east-1
但是它会产生这样的错误信息
An error occurred (NotFoundException) when calling the PutIntegration operation: Invalid Resource identifier specified
是否可以使用 aws 客户端将 api 网关方法与现有的 lambda 函数集成?什么是资源标识符?
您可以 运行 aws apigateway get-resources
获得 resource-id
aws apigateway get-resources --rest-api-id 42ku123id8u3a --region us-east-1
它将return一个JSon喜欢
{
"items": [
{
"path": "/resource/xxx",
"resourceMethods": {
"POST": {}
},
"id": "_yourresourceid_",
"pathPart": "xxx",
"parentId": "ai5b02"
}
]
}
您可以从这个 JSon 中获取 id 并将其用于 aws apigateway put-integration
理想情况下,您应该在步骤 2 'with integration extensions' 中导出为 JSON。在控制台中有 3 个导出类型选项,中间的选项将包括导出中的集成和授权方。然后当您导入时,您将已经有了集成。