gpt4 book ai didi

amazon-web-services - 如何从 CDK API 网关访问 AWS::Lambda::Permissions 资源逻辑 ID

转载 作者:行者123 更新时间:2023-12-03 07:32:48 25 4
gpt4 key购买 nike

我需要覆盖一些 HttpLambdaIntegration CDK 资源的逻辑 ID(上下文不在本文范围内,但是,我知道不建议这样做)。

在资源下的 CloudFormation 堆栈中,我看到节点树如下所示:

| Logical Id                                                | Physical ID| Type 
| ----------------------------------------------------------| -----------| -----------------------------
| MyFrontendHttpApi | |
| - Default Route | |
| - HttpIntegration-123 | |
| |- MyFrontendHttpAPIDefaultRouteHttpIntegration123 | abcde | AWS::ApiGatewayV2::Integration
| - Resource | |
| |- MyFrontendHttpApiDefaultRouteDDEEFF | fghij | AWS::ApiGatewayV2::Route
| |- MyFrontendHttpApiDefaultRouteMyFronte...Permission | klmnop | AWS::Lambda::Permission

要覆盖 HttpIntegration 逻辑 ID,我使用此代码(建议 here )

const defaultRoute = httpApi.node.findChild('DefaultRoute');
const myInt = defaultRoute.node.findChild('apiGatewayLambdaIntegration'); // apiGatewayLambdaIntegration is an ID that I specify in my code
const resource = myInt.node.findChild('Resource') as CfnIntegration;
resource.overrideLogicalId(myDesiredLogicalId);

但是,如何访问最后一个(Lambda 权限)?

它没有显示为默认子项,而且我似乎也找不到在 findChild() 中使用的 ID。我不是这段代码的原始作者,但它没有在代码中的任何地方显式创建:我想它似乎是自动生成的权限。但它位于 Cloudformation 的这个节点树中,所以我认为它必须能够以某种方式访问​​......

最佳答案

CfnPermission 资源是该路由的子项。权限的构造 ID 是集成的名称,后跟 -Permission

const cfnPermission = defaultRoute.node.findChild("apiGatewayLambdaIntegration-Permission") as lambda.CfnPermission;
cfnPermission.overrideLogicalId("OveriddenPermissionId")

关于amazon-web-services - 如何从 CDK API 网关访问 AWS::Lambda::Permissions 资源逻辑 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76995478/

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