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
專家
已提問 6 個月前檢視次數 86 次
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
專家
已回答 6 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南

相關內容