我似乎无法使用 AWS Cloud Formation 堆栈创建新的 AWS SES 配置集。错误显示“YAML 格式不正确”
下面是我的 CF 堆栈的 json 模板:
"Resources" : {
"ConfigSet": {
"Type": "AWS::SES::ConfigurationSet",
"Properties": {
"Name": "CS_EMAIL_TRACKING"
}
},
"CWEventDestination": {
"Type": "AWS::SES::ConfigurationSetEventDestination",
"Properties": {
"ConfigurationSetName": "CS_EMAIL_TRACKING",
"EventDestination": {
"Name": "CS_EMAIL_TRACKING_CW_DESTINATION",
"Enabled": true,
"MatchingEventTypes": ["bounce", "complaint", "delivery", "open", "reject", "renderingFailure", "send"],
"CloudWatchDestination": {
"DimensionConfigurations": [{
"DimensionName": "AGS",
"DimensionValueSource": "messageTag",
"DefaultDimensionValue": "MY_AGS"
}, {
"DimensionName": "Component",
"DimensionValueSource": "messageTag",
"DefaultDimensionValue": "Mail"
}, {
"DimensionName": "ses:caller-identity",
"DimensionValueSource": "messageTag",
"DefaultDimensionValue": "shouldbeautoset"
}]
}
}
}
},
"SNSEventDestination": {
"Type": "AWS::SES::ConfigurationSetEventDestination",
"Properties": {
"ConfigurationSetName": "CS_EMAIL_TRACKING",
"EventDestination": {
"Name": "CS_EMAIL_TRACKING_SNS_DESTINATION",
"Enabled": true,
"MatchingEventTypes": ["bounce", "complaint", "delivery", "reject", "send"],
"SNSDestination": {
"TopicARN": "arn:aws:sns:us-east-1:99999999:SES-STATUS_TRACKING_TOPIC"
}
}
}
}
}
上面的 json 对我来说看起来不错,但是......
有人可以帮忙吗?我错过了什么吗?
谢谢!
编辑:我让堆栈使用参数。现在,虽然我面临另一个问题,SNSDestination 是 EventDestination。它说 EventDestination 的属性不受支持,即使 AWS 文档说它是一个有效的属性:
下面是我的最终代码:
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "AWS SES ConfigurationSet ${CRED_AGS} Template",
"Parameters": {
"ConfigSetName": {
"Type" : "String",
"Default" : "${CONFIGSET_NAME}"
},
"EventCWDestinationName" : {
"Type" : "String",
"Default" : "${CW_DESTINATION_NAME}"
},
"EventSNSDestinationName" : {
"Type" : "String",
"Default" : "${SNS_DESTINATION_NAME}"
},
"EventTypeBounce" : {
"Type" : "String",
"Default" : "bounce"
},
"EventTypeComplaint" : {
"Type" : "String",
"Default" : "complaint"
},
"EventTypeDelivery" : {
"Type" : "String",
"Default" : "delivery"
},
"EventTypeOpen" : {
"Type" : "String",
"Default" : "open"
},
"EventTypeReject" : {
"Type" : "String",
"Default" : "reject"
},
"EventTypeRenderingFailure" : {
"Type" : "String",
"Default" : "renderingFailure"
},
"EventTypeSend" : {
"Type" : "String",
"Default" : "send"
},
"DimensionValueSourceMsgTag" : {
"Type" : "String",
"Default" : "messageTag"
},
"DimensionNameAGS" : {
"Type" : "String",
"Default" : "AGS"
},
"DefaultDimensionValueAGS" : {
"Type" : "String",
"Default" : "${CRED_AGS}"
},
"DimensionNameComponent" : {
"Type" : "String",
"Default" : "Component"
},
"DefaultDimensionValueComponent" : {
"Type" : "String",
"Default" : "Mail"
},
"DimensionNameIdentity" : {
"Type" : "String",
"Default" : "ses:caller-identity"
},
"DefaultDimensionValueIdentity" : {
"Type" : "String",
"Default" : "shouldbeautoset"
}
},
"Resources": {
"ConfigSet" : {
"Type" : "AWS::SES::ConfigurationSet",
"Properties" : {
"Name" : {
"Ref" : "ConfigSetName"
}
}
},
"CWEventDestination" : {
"Type" : "AWS::SES::ConfigurationSetEventDestination",
"Properties" : {
"ConfigurationSetName" : {
"Ref": "ConfigSetName"
},
"EventDestination" : {
"Name" : {
"Ref" : "EventCWDestinationName"
},
"Enabled" : true,
"MatchingEventTypes" : [
{
"Ref" : "EventTypeBounce"
},
{
"Ref" : "EventTypeComplaint"
},
{
"Ref" : "EventTypeDelivery"
},
{
"Ref" : "EventTypeOpen"
},
{
"Ref" : "EventTypeReject"
},
{
"Ref" : "EventTypeRenderingFailure"
},
{
"Ref" : "EventTypeSend"
}
],
"CloudWatchDestination" : {
"DimensionConfigurations" : [
{
"DimensionName" : {
"Ref" : "DimensionNameAGS"
},
"DimensionValueSource" : {
"Ref" : "DimensionValueSourceMsgTag"
},
"DefaultDimensionValue" : {
"Ref": "DefaultDimensionValueAGS"
}
},
{
"DimensionName" : {
"Ref" : "DimensionNameComponent"
},
"DimensionValueSource" : {
"Ref" : "DimensionValueSourceMsgTag"
},
"DefaultDimensionValue" : {
"Ref" : "DefaultDimensionValueComponent"
}
},
{
"DimensionName" : {
"Ref" : "DimensionNameIdentity"
},
"DimensionValueSource" : {
"Ref" : "DimensionValueSourceMsgTag"
},
"DefaultDimensionValue" : {
"Ref" : "DefaultDimensionValueIdentity"
}
}
]
}
}
}
},
"SNSEventDestination" : {
"Type" : "AWS::SES::ConfigurationSetEventDestination",
"Properties" : {
"ConfigurationSetName" : {
"Ref": "ConfigSetName"
},
"EventDestination" : {
"Name" : {
"Ref" : "EventSNSDestinationName"
},
"Enabled" : true,
"MatchingEventTypes" : [
{
"Ref" : "EventTypeBounce"
},
{
"Ref" : "EventTypeComplaint"
},
{
"Ref" : "EventTypeDelivery"
},
{
"Ref" : "EventTypeReject"
},
{
"Ref" : "EventTypeSend"
}
],
"SNSDestination" : {
"TopicARN" : "${SNS_DELIVERY_TOPIC}"
}
}
}
}
}
}
有人可以帮忙吗?顺便说一句,我有最新的 AWS cli。