小编gre*_*Tea的帖子

使用 AWS CDK 将 Lambda 触发器添加到导入的 Cognito 用户池

我正在尝试使用 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 中导入它,但似乎我无法修改它?为什么?

amazon-web-services amazon-cognito aws-lambda aws-cdk

6
推荐指数
1
解决办法
781
查看次数

Scala3“as”和“with”关键字与“given”一起使用

目前正在学习 Scala 3 隐式,但我很难理解 \xe2\x80\x8baswith关键字在如下定义中的作用:

\n
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]](就像正在进行某种类型的打字或类型转换?),但如果能找到它背后的真正含义那就太好了。

\n

至于with,我只在 Scala 2 中使用它来继承多个特征(class A extends B with C with D),但在上面的代码中,它似乎以不同的方式使用......

\n

非常感谢任何解释或为我指明查看文档的正确方向!

\n

另外,如果用 Scala 2 编写上面的代码会是什么样子?也许这可以帮助我弄清楚发生了什么事......

\n

syntax scala implicit scala-3 given

5
推荐指数
1
解决办法
1401
查看次数