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개 답변
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달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠