首页 > 解决方案 > 通过 CDK 验证 SES 电子邮件地址

问题描述

我想验证来自我的 CDK 本身的电子邮件地址,以便当我的堆栈部署到其他一些区域时,此验证会自动触发,而不是转到 AWS 控制台并手动进行。

标签: amazon-web-servicesamazon-sesaws-cdk

解决方案


您可以使用AwsCustomResourcefrom来执行此操作@aws-cdk/custom-resources,它看起来类似于您可以在此处找到的用于验证域的示例:自定义资源示例

使用 TypeScript 验证电子邮件

我正在为您的用例调整此处的示例:

const verifyDomainIdentity = new AwsCustomResource(this, 'VerifyDomainIdentity', {
  onCreate: {
    service: 'SES',
    action: 'verifyEmailIdentity',
    parameters: {
      EmailAddress: 'your@example.com'
    },
    physicalResourceId: PhysicalResourceId.of('verify-email-address')
  },
  policy: AwsCustomResourcePolicy.fromSdkCalls({resources: AwsCustomResourcePolicy.ANY_RESOURCE}) // This does not work somehow with SES or maybe I did something wrong :-(
});

不幸的是,这不是开箱即用的,因为生成的策略以某种方式包含email:前缀而不是ses:您需要提供自己的策略。但是下面有一个替代方案。

将现有的 CDK 构造与 TypeScript 一起使用

另一种选择是使用已经为您执行此操作的 CDK 构造。我最近遇到了和你一样的问题,我为此发布了一个 CDK 构造:ses-verify-identities. 然后你可以这样做:

new VerifySesEmailAddress(this, 'SesEmailVerification', {
  emailAddress: 'hello@example.org'
});

如果您有兴趣,可以在此处找到 CDK 构造的源代码。验证域也是如此。


推荐阅读