配置Cognito用户池以在ap-southeast-2发送带有SES的电子邮件

时间:2020-06-19 07:55:47

标签: amazon-cloudformation serverless-framework amazon-ses

我具有以下cloudformation模板(它是serverless.yml模板的一部分),以创建一个使用SES发送电子邮件的Cognito UserPool。

我正在ap-southeast-2上部署我的无服务器项目,并且我想使用相同的区域来发送电子邮件。我已经在ap-southeast-2中预先验证了SES中模板中的帐户,但是如果我将下面(最后一行)模板中的SourceArn替换为ap-southeast-2(或无服务器伪变量{{1} })区域出现错误:

#{AWS::Region}

当我用An error occurred: CognitoUserPool - Unable to send email message, please try again (Service: AWSCognitoIdentityProviderService; Status Code: 400; Error Code: InvalidParameterException; Request ID: ...).替换区域时(如下面的模板所示),它可以工作。如果us-west-2不支持我使用该地区的SES,为什么不支持?

ap-southeast-2

3 个答案:

答案 0 :(得分:2)

ap-southeast-2不支持。在AWS在新区域提供该支持之前,无法做很多事情。

来自docs

Amazon SES的可用区域是美国东部(弗吉尼亚北部)us-east-1,美国西部(俄勒冈)us-west-2和欧洲(爱尔兰)eu-west-1。 Amazon SES 不支持在以下地区的电子邮件接收:亚太地区(孟买),亚太地区(悉尼),加拿大(中部),欧洲(法兰克福),欧洲(伦敦),南美(圣保罗)和AWS GovCloud(美国)。

答案 1 :(得分:0)

您是否在 SES 控制台中验证了要从中发送电子邮件的电子邮件?验证后,您将看到要设置的正确 arn。

我还有一个奇怪的错误。我不得不删除 EmailConfiguration.From 字段。当我设置此字段时,即使与已验证的电子邮件相同,也导致了类似的错误。

答案 2 :(得分:0)

我还没有测试过这个(虽然即将测试),但我不明白为什么你不能使用基于 Lambda 的“自定义电子邮件发件人”来路由悉尼地区,根据此处的说明:Configure Cognito to send emails through third party such as SendGrid the proper way