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

Ais*_*hal 5 amazon-web-services amazon-ses aws-cdk

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

s.h*_*sse 11

您可以使用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 :-(
});
Run Code Online (Sandbox Code Playgroud)

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

将现有 CDK 构造与 TypeScript 结合使用

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

new VerifySesEmailAddress(this, 'SesEmailVerification', {
  emailAddress: 'hello@example.org'
});
Run Code Online (Sandbox Code Playgroud)

如果您有兴趣,可以在此处找到 CDK 构造的源代码。验证域也可以采用同样的方法。

  • 这就是惯用形式不起作用的原因。https://github.com/aws/aws-cdk/issues/4533 (2认同)