Lambda别名作为ApiGatewayToLambda构造函数的输入

0

【以下的问题经过翻译处理】 背景: 我们使用CDK来创建基础架构。我们使用rest api网关和lambda并将它们集成在一起。我们使用"software.amazon.awsconstructs.services.apigatewaylambda.ApiGatewayToLambda"构造函数来进行这种集成。下面是示例代码。

apiGatewayToLambda = ApiGatewayToLambda.Builder
            .create(this, stageId + names.componentName + "RestApi")
            .existingLambdaObj(lambdaFunction)
            .apiGatewayProps(
                mapOf(
                    "proxy" to false,
                    "restApiName" to "${waveId}${stageId}${names.componentName}RestApi",
                    "deployOptions" to deployOptions
                )
            ).build()
    }

问题: 我们想要配置lambda,因为我们从API网关得到了"504-gateway timeout"。调查后发现,由于冷启动,lambda会超时。

阻碍: 只能在lambda别名上进行lambda配置。当我们分析ApiGatewayToLambda时,它不接受lambda别名作为输入。

我们该怎么办?有任何解决方法吗?能否有人从支持方面帮助我前进的路径? 一些Java CDK代码示例会很有帮助。

profile picture
专家
已提问 5 个月前76 查看次数
1 回答
0

【以下的回答经过翻译处理】 请注意,使用getLambda()方法从别名中提取IFunction接口,然后需要将其强制转换为Function对象。

[1] - existingLambdaObj源代码 https://github.com/awslabs/aws-solutions-constructs/blob/main/source/patterns/%40aws-solutions-constructs/aws-apigateway-lambda/lib/index.ts#L32

[2] - 允许在构造函数中使用Lambda别名#208 https://github.com/awslabs/aws-solutions-constructs/issues/208

[3] - getLambda() https://docs.aws.amazon.com/cdk/api/v2/java/software/amazon/awscdk/services/lambda/Alias.html#getLambda

在AWS支持的帮助下解决了这个问题,在这个公共论坛中分享解决方案,希望能帮助其他人。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则