gpt4 book ai didi

amazon-web-services - 在 CloudFormation 模板中设置可变数量的 CloudWatch 警报

转载 作者:行者123 更新时间:2023-12-03 07:25:54 24 4
gpt4 key购买 nike

我们有一个 ElastiCache 复制组 (AWS::ElastiCache::ReplicationGroup),其 NumCacheClusters 目前在 CloudFormation 模板中设置为 2,并且想要设置一组 CloudWatch CloudFormation 作为复制组的一部分为我们创建的每个 CacheClusterId 的警报。

我面临两个障碍:

  1. 如何在 CloudFormation 模板中设置可变数量的资源(需要 N 个 AWS::CloudWatch::Alarm,其中 N == NumCacheClusters)
  2. CloudWatch 警报需要 Dimensions 属性中的 CacheClusterId,如何获取 CloudFormation 为我们创建的每个缓存集群的该值。

顺便说一句,我对 CloudFormation 非常陌生,因此有关该主题的任何资源也会很有帮助。

谢谢。

最佳答案

  1. 遗憾的是,您无法在 CloudFormation 中设置真正可变数量的资源。您能做的最好的事情就是支持固定数量的条件资源(例如,编写一个可以创建具有 1-3 个节点的缓存集群的模板)。如果您有缓存集群数量 NumCacheClusters 的参数,您可以编写如下条件:

    Conditions:

    TwoCacheClusters:
    Fn::Or:
    - Fn::Equals:
    - Ref: NumCacheClusters
    - 2
    - Fn::Equals:
    - Ref: NumCacheClusters
    - 3

    ThreeCacheClusters:
    Fn::Equals:
    - Ref: NumCacheClusters
    - 3

    然后您将有条件地创建 CloudWatch 警报:

    Resources:

    ...

    SecondCloudWatchAlarm:
    Type: AWS::CloudWatch::Alarm
    Condition: TwoCacheClusters
    Properties:
    ...

    ThirdCloudWatchAlarm:
    Type: AWS::CloudWatch::Alarm
    Condition: ThreeCacheClusters
    Properties:
    ...

    请参阅 CloudFormation 条件文档:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/conditions-section-structure.html

  2. 您可以使用 Ref 内部函数引用您在模板中其他位置创建的资源。我相信 Ref 默认返回 AWS::ElastiCache::ReplicationGroup 的集群 ID,因此您需要使用的就是: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html

    如果默认情况下 Ref 未返回您想要的资源值,请考虑使用 Fn::GetAtt 来返回特定属性。可用的备用值取决于资源类型,它们都在文档中列出:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html

关于amazon-web-services - 在 CloudFormation 模板中设置可变数量的 CloudWatch 警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39986218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com