Я использую комбинацию шаблонов YAML jinja и CloudFormation для определения моего стека инфраструктуры.Я пытаюсь создать CloudWatch для глобальных таблиц DynamoDB.Имя метрики: ReplicationLatency.Я искал в этой вики ссылку для начала - https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables_monitoring.html
Теперь, просмотрев метрики в консоли CloudWatch, я понял, что ReceivingRegion - это всегда все остальные регионы, кроме самого исходного региона.например, если вы откроете консоль CW в us-east-2 (штат Огайо), показатели ReplicationLatency появятся для каждого другого региона, кроме us-east-2.Я подтвердил это предположение, посмотрев на одну и ту же метрику в нескольких регионах.
Теперь, чтобы создать сигнал тревоги для таблицы DDB в us-east-2, мне потребуется список всех других регионов, где существует глобальная таблица.Я пытаюсь понять, как я смогу получить эту часть в шаблоне CF / jinja.
Первоначально я думал, что у меня будет макрос jinja, подобный следующему:
{% macro cw_alarms(current_region) %}
{% set global_table_all_regions = ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'eu-west-1', 'eu-west-2', 'eu-central-1', 'ap-northeast-1', 'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2']
{% set alarm_region_suffix_list = ddb_global_table_regions | reject(current_region %}
{% for alarm_region_suffix in alarm_region_suffix_list %}
SomeAlarmName:
Type: AWS::CloudWatch::Alarm
Properties:
Namespace: "AWS/DynamoDB"
MetricName: "ReplicationLatency"
Dimensions:
- Name: TableName
Value: Ref TableName
- Name: Receiving-Region
Value: alarm_region
Statistic: p90
Period: '300'
EvaluationPeriods: '1'
Threshold: 5000
ComparisonOperator: GreaterThanThreshold
{% endmacro %}
Но здесь возникает проблема, что сейчас у меня есть возможность вызывать этот макрос с набором переменных current_regionдолжным образом.Например, я не думаю, что в любом случае можно сделать что-то вроде:
set my_variable_region = Ref 'AWS::Region'
Я пытаюсь понять, есть ли другая альтернатива для этого?Кто-нибудь сталкивался с этой проблемой?