【发布时间】:2020-09-01 02:29:14
【问题描述】:
我正在尝试使用 AWS CDK 创建一个新的 lambda,该 lambda 与现有的 AWS 资源相关联,这些资源不是使用 CDK 创建的,并且是不同堆栈的一部分。
我可以使用 CDK 从现有的用户池中触发我的 lambda 吗?我已使用以下方法将用户池导入新堆栈:
const userPool = UserPool.fromUserPoolArn(this, 'poolName, 'arn:aws:cognito-idp:eu-west-1:1234567890:userpool/poolName')
但是,这给了我一个IUserPool,它没有addTrigger 方法。有没有办法将其转换为 UserPool 以便能够触发 lambda(因为我可以看到 UserPool 具有 addTrigger 方法)?
我已经看到有可能,例如授予我的新 lambda 使用 CDK 读取/写入现有 DynamoDB 表的权限。而且我不太了解这里的区别:DynamoDB 是现有的 AWS 资源,我使用 CDK 将其导入新堆栈,然后允许我的新 lambda 对其进行修改。 Cognito 用户池也是现有的 AWS 资源,我可以将其导入 CDK,但似乎无法修改它?为什么?
【问题讨论】:
-
我正面临同样的问题。您找到解决方案了吗?
-
很遗憾没有。我不得不手动添加触发器:(
-
在那里引发了一个问题:github.com/aws/aws-cdk/issues/10002
-
你可以试试这个:-
const userPool:UserPool = UserPool.fromUserPoolArn(this,"poolName", "arn:aws:cognito-idp:eu-west-1:1234567890:userpool/poolName") as UserPool;
标签: amazon-web-services aws-lambda amazon-cognito aws-cdk