gpt4 book ai didi

amazon-web-services - 部署 lambda 函数时如何从无服务器获取 API 网关 ID 作为输出部分

转载 作者:行者123 更新时间:2023-12-05 07:01:21 24 4
gpt4 key购买 nike

我想在无服务器的输出部分获取 API 网关的 ID,然后将其转换为 API URL“https://fgh5t4tjm2.execute-api.us-east-1.amazonaws.com/dev”我在另一个无服务器中使用它。

下面是我通过无服务器脚本中的 lambda 创 build 置的 api 网关。我认为这是无服务器所做的更隐藏的创作之一,只需在 lambda 上设置一个事件,它就会为您创建一个 api 网关。我不确定它是否在 serverless.yml 的输出部分输出 API 网关 ID。

这就是我的无服务器的样子。

service: my-service

provider:
name: aws
stage: ${opt:stage, 'dev'}
runtime: nodejs12.x
region: ${env:AWS_REGION}
stackName: my-stack-name

plugins:
- serverless-dotenv-plugin

functions:
GetCallHistory:
handler: lambdas/getCallHistory.GetCallHistory
environment:
CH_CW_LOG_GROUP_NAME: ${env:CH_CW_LOG_GROUP_NAME}
description: This lambda queries cloudwatch logs and retrieves the call history using a contactId.
role: GetCallHistoryRole
events:
- http:
path: callhistory/{contactId}
method: get
cors: true
authorizer:
name: CognitoPoolAuthorizer
type: COGNITO_USER_POOLS
arn: ${env:COGNITO_USER_POOL_ARN}
resources:
#Lambda Roles
- ${file(resources/lambdaRoles.yml)}

我不确定输出部分在我的无服务器中的位置以及为了获取 API ID 或 URL 应该写什么。

最佳答案

好问题:我还有一个可用的 template.yml(虽然它是 JSON 但只是假装它是 yml)!

只需引用您资源中的“ApiGateWay”

"ApiGatewayApi": {
"Type": "AWS::Serverless::Api",
"Properties": {
"StageName": { "Ref": "environment" },
"DefinitionBody": "",
"EndpointConfiguration": "REGIONAL"
}
},

下面是我如何在 url 中引用并输出资源的示例:

"Outputs" : {
"ApiURL" : {
"Description" : "API endpoint URL for ${environment} environment",
"Value" : { "Fn::Sub" : "https://${ApiGatewayApi}.execute-api.${AWS::Region}.amazonaws.com/${environment}/" }
},
"RestApiId" : {
"Value" : { "Ref" : "ApiGatewayApi" }

关于amazon-web-services - 部署 lambda 函数时如何从无服务器获取 API 网关 ID 作为输出部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63891299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com