13

新しいを作成せずに、AWS CloudFormation JSON テンプレートで「サブスクリプション」リソースを作成することは可能AWS::SNS::Topicですか?

私の場合、トピックは CloudFormation スクリプトの外部で作成され、スクリプト内で作成されたリソースを含むいくつかのサブスクリプションを作成したいと考えています。

IE

   "DbfExtractQueue": {
        "Type": "AWS::SQS::Queue"
    },

    "EtlSubscription": {
        "Type": "AWS::SNS::Subscription",
        "Properties": {
            "Endpoint": { "Fn::GetAtt": ["DbfExtractQueue", "Arn"] },
            "Protocol": "sqs",
            "TopicArn": { "Ref": "EtlNotificationTopicARN" }
        }
    },

EtlNotificationTopicARN がスクリプトに渡され、SNS トピック ARN を表します。

4

3 に答える 3

14

2016 年 11 月の時点で、これをネイティブの CloudFormation で直接実行できるようになりました。

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html

上記のドキュメントのサンプル。

YAML:

MySubscription:
  Type: AWS::SNS::Subscription
  Properties:
    Endpoint: test@email.com
    Protocol: email
    TopicArn: !Ref 'MySNSTopic'

JSON:

"MySubscription" : {
  "Type" : "AWS::SNS::Subscription",
  "Properties" : {
    "Endpoint" : "test@email.com",
    "Protocol" : "email",
    "TopicArn" : {"Ref" : "MySNSTopic"}
  }
}
于 2016-11-22T22:45:23.043 に答える
3

CloudFormation が Lambda 関数でカスタム リソース タイプをサポートしているため、これが可能になりました。

ここで CloudFormation タンプレートを使用して Gist を作成しました: https://gist.github.com/martinssipenko/4d7b48a3d6a6751e7464.js

于 2015-11-06T14:18:21.727 に答える
0

すでに発見したように、AWS CloudFormationは期待されるAWS::SNS::Subscriptionリソースを (まだ) 提供しておらず、残念ながら他の方法でこれが可能であることに気づいていません。理論的根拠は、両方がテンプレート内または外部で管理されていることだと思いますが、あなたのユースケースは健全であり、これが利用可能であってはならない根本的な理由はわかりません (おそらく、ある時点で追加される可能性があります。AWS は通常、そのような不一致/欠落に対処するために時間の経過とともに API を拡張しています)。

于 2013-09-05T20:46:48.297 に答える