我试图找出如何使用CloudFormation在AWS中自动创建多个云资源。
现在我需要创建SES(简单电子邮件服务)域名,但无法找到文档,但我已经检查过:
AWS是否支持CloudFormation中的SES?
答案 0 :(得分:6)
不幸的是,目前不支持,但谁知道Re:Invent 2017即将来临,
Question asked on AWS Developer Forum
可以通过创建一个自定义函数,一些关于SES和cloudformation的blog。
答案 1 :(得分:2)
虽然目前不支持AWS Cloudformation,但请使用AWS软件开发工具包(例如Node SDK)来配置所需的SES资源。
通常的做法是将自定义代码与AWS SDK和AWS CLI命令结合使用以配置CloudFormation来配置资源AWS,因为每种方法都可以根据参数,资源数量,重复次数等优势。
答案 2 :(得分:0)
我还需要在CloudFormation中进行SES域身份管理,并最终实现了Custom::SES_Domain
资源类型:https://gitlab.com/medmunds/aws-cfn-ses-domain。
这是Python 3中实现的CloudFormation custom resource。使用它的方式如下:
MySESDomain:
Type: Custom::SES_Domain
Properties:
ServiceToken: !GetAtt CfnSESDomain.Outputs.Arn
Domain: "example.com"
EnableSend: true
EnableReceive: false
MyRoute53RecordsForSES:
Type: AWS::Route53::RecordSetGroup
Properties:
HostedZoneName: "example.com."
RecordSets: !GetAtt MySESDomain.Route53RecordSets
有关使用它(并根据需要进行定制)的完整说明,请参见存储库。 Custom::SES_Domain
具有properties用于控制几个常见的SES域选项,并公开attributes馈入您的CloudFormation DNS资源:以上所示的标准AWS::Route53::RecordSetGroup
资源,或其他(外部)通过区域文件条目的DNS提供程序。
如果我的Custom::SES_Domain
不能满足您的需求,您可能需要查看cfn-ses-provider(类似,但直接管理Route 53记录本身),或this blog article来描述创建自己的自定义SES域资源。
答案 3 :(得分:-1)
不支持。但是,你可以让它由lambda处理。
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: >-
A simple email example
Resources:
FunctionEmailHandler:
Type: 'AWS::Serverless::Function'
Properties:
Handler: email.handler
Runtime: nodejs6.10
CodeUri: ..
Description: >-
...
Tags:
App: your app
MemorySize: 128
Timeout: 10
Policies:
- Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- 's3:GetObject'
Resource: '*'
LambdaInvokePermission:
Type: "AWS::Lambda::Permission"
Properties:
Action: 'lambda:InvokeFunction'
FunctionName: !GetAtt FunctionEmailHandler.Arn
Principal: ses.amazonaws.com
SESEmailRecievedRule:
Type: "AWS::SES::ReceiptRule"
Properties:
RuleSetName: your default rule set name
After: store-email-to-s3
Rule:
Name: email-recieved-rule
Enabled: true
Actions:
- LambdaAction:
FunctionArn: !GetAtt FunctionEmailHandler.Arn
InvocationType: Event
答案 4 :(得分:-1)
这是SES Resource Types supported by CloudFormation的当前列表:
AWS :: SES :: ConfigurationSet
AWS :: SES :: ConfigurationSetEventDestination
AWS :: SES :: ReceiptFilter
AWS :: SES :: ReceiptRule
AWS :: SES :: ReceiptRuleSet
AWS :: SES :: Template