通过CDK验证SES电子邮件地址

5
我希望能够在我的CDK中验证电子邮件地址,这样当我的堆栈部署到其他区域时,该验证将自动触发,而不是手动前往AWS控制台进行操作。
1个回答

10
你可以使用来自 `@aws-cdk/custom-resources` 的 `AwsCustomResource` 实现此操作,它类似于这里的示例,用于验证域名:Custom Resource Examples。 使用 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:,你需要提供自己的策略。但是下面有一个备选方案。

使用已存在的带TypeScript的CDK构造函数

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

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

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


2
这就是惯用形式不起作用的原因。https://github.com/aws/aws-cdk/issues/4533 - Aishwarya Singhal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接