AWS是否支持CloudFormation中的SES?

时间:2017-10-31 01:20:42

标签: amazon-web-services amazon-cloudformation amazon-ses

我试图找出如何使用CloudFormation在AWS中自动创建多个云资源。

现在我需要创建SES(简单电子邮件服务)域名,但无法找到文档,但我已经检查过:

AWS是否支持CloudFormation中的SES?

5 个答案:

答案 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