我正在尝试使用 AWS CDK 创建一个与现有 AWS 资源相关联的新 lambda,这些资源不是使用 CDK 创建的并且属于不同堆栈的一部分。
我可以使用 CDK 从已经存在的用户池中触发我的 lambda 吗?我已使用以下方法将用户池导入到我的新堆栈中:
const userPool = UserPool.fromUserPoolArn(this, 'poolName, 'arn:aws:cognito-idp:eu-west-1:1234567890:userpool/poolName')
但是,这给了我一个IUserPool
没有addTrigger
方法的方法。有没有办法将其转换为 aUserPool
以便能够触发 lambda(因为我可以看到它UserPool
具有该addTrigger
方法)?
我已经看到,例如可以使用 CDK 授予我的新 lambda 读取/写入现有 DynamoDB 表的权限。而且我不太明白这里的区别:DynamoDB 是一个现有的 AWS 资源,我正在使用 CDK 将其导入新堆栈,然后允许我的新 lambda 对其进行修改。Cognito 用户池也是一个现有的 AWS 资源,我可以在 CDK 中导入它,但似乎我无法修改它?为什么?
目前正在学习 Scala 3 隐式,但我很难理解 \xe2\x80\x8bas
和with
关键字在如下定义中的作用:
given listOrdering[A](using ord: Ordering[A]) as Ordering[List[A]] with\n \xe2\x80\x8bdef compare(a: List[A], b: List[A]) = ...\n
Run Code Online (Sandbox Code Playgroud)\n我尝试谷歌搜索,但没有找到任何好的解释。我已经检查了 Scala 3 参考指南,但我发现的唯一一件事as
是它是一个“软修饰符”,但这并不能真正帮助我理解它的作用......我猜as
在上面的代码以某种方式用于澄清这listOrdering[A]
是一个Ordering[List[A]]
(就像正在进行某种类型的打字或类型转换?),但如果能找到它背后的真正含义那就太好了。
至于with
,我只在 Scala 2 中使用它来继承多个特征(class A extends B with C with D
),但在上面的代码中,它似乎以不同的方式使用......
非常感谢任何解释或为我指明查看文档的正确方向!
\n另外,如果用 Scala 2 编写上面的代码会是什么样子?也许这可以帮助我弄清楚发生了什么事......
\n