【问题标题】:AWS CloudFormation: Cognito LambdaTrigger CustomEmailSender - Property "Not currently supported by AWS CloudFormation." and CDK usageAWS CloudFormation:Cognito LambdaTrigger CustomEmailSender - 属性“AWS CloudFormation 目前不支持。”和 CDK 的使用
【发布时间】:2021-12-12 15:51:06
【问题描述】:

对于 CDK 实施,通常意味着“AWS CloudFormation 目前不支持”属性,具体而言:

在 Cognito 用户池 Lambda 配置的 CloudFormation 属性中,它说: CustomEmailSender - AWS CloudFormation 目前不支持。 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html

在 Cognito.CfnUssrPool 的 CDK 中描述了此属性: https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.CfnUserPool.LambdaConfigProperty.html#customemailsender

我现在的问题是这是否可以用 CDK 实现?目前,我们的 Cognito 完全通过 CDK 提供,我希望保持这种方式。


编辑:

我找到了一个链接 (Using CustomEmailSender with CFN),它说与文档相反,它似乎确实有效,只有文档没有更新,我将对此进行测试并提供反馈。

【问题讨论】:

  • CDK 归结为 CloudFormation 模板,如果 CloudFormation 不支持某个属性,则 CDK 也无法使用它。如果您不需要该属性,那很好 - 如果您需要它,那么您就有问题了。
  • @luk2302 感谢您的评论,您知道为什么在 CDK 文档中对其进行了描述吗?您对解决方法有任何想法吗?
  • 解决方法是不使用 CDK / CloudFormation :D 我不明白第一个问题,CDK 文档在属性和功能文档方面基本上是 cloudformation 文档的副本。
  • @luk2302 好的,你知道通过基础设施即代码设置 Cognito 的任何其他方法吗,我想防止手动执行配置步骤。为了澄清我的“第一个问题”,为什么 AWS 在 CDK 文档中添加一个不可用的属性,但将此视为一个反问;)
  • 您始终可以在 CloudFormation 中设置和使用自定义资源。另一种选择是使用另一个 IaC 工具,例如 terraform,但这是一个重大变化/转变。

标签: amazon-web-services amazon-cloudformation amazon-cognito aws-cdk


【解决方案1】:

在测试 CustomEmailSender CDK 实施之后,我不得不说 AWS CloudFormation 文档没有当前状态。所以CFN和CDK可以使用这个功能。 AWS Doc CFN Cognito CustomEmailSender

CDK 中的待办事项:

  • 配置 Cognito:您必须使用 lambdaConfig,而不是使用属性 emailConfiguration
lambdaConfig: {
        customEmailSender: { lambdaArn: customSenderEmailLambdaArn, lambdaVersion: 'V1_0' }, 
        // the version is an ENUM so be careful when you set it
        kmsKeyId: kmsKeyArn,
      },
  • 正如您在此处看到的,您还必须设置 KMS 密钥(您可以调整现有密钥或创建新的 KMS 密钥)。这里最重要的是您允许操作 kms:CreateGrant 到 Cognito 和 Lambda 函数!
  • 另一个重要的 ToDo 是为您的 Lambda 添加 Cognito 的权限,操作 cognito-idp:InvokeFunction
  • 使用 CustomEmailSender 而不是常见的 Lambda 触发器的一大优势在于,您不必在 CDK 代码或 Cognito 控制台中设置所有触发器(所有电子邮件事件都将自动发送到您的 lambda)。李>

【讨论】:

    猜你喜欢
    • 2018-08-11
    • 2018-10-13
    • 1970-01-01
    • 2019-09-15
    • 2020-09-03
    • 2018-03-30
    • 2021-05-31
    • 1970-01-01
    • 2020-09-29
    相关资源
    最近更新 更多