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代码示例会很有帮助。

1 Antwort
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
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen