AWS Облачный файл YML со встроенным JSON Сильным для корпуса приборной панели - PullRequest
1 голос
/ 06 февраля 2020

Попытка сделать нашу панель инструментов в виде кода при использовании CloudFormation. Ошибка при проверке шаблона с помощью встроенной строки JSON внутри файла YML. Возникают проблемы с полями "SEARCH ('{AWS / EC2, InstanceId)", указывающими, что это недопустимые строки. Я провел его через JSON Linter и работает нормально. Я также развернул консоль CloudWatch Dashboard просто отлично с JSON.

Вопрос:

Можно ли просто обернуть этот раздел как строку для CloudFormation в YML-файле, чтобы он не сработал содержимое строки JSON?

Пример:

 DetailedDashboard:
    Type: "AWS::CloudWatch::Dashboard"
    Properties:
      DashboardName: "DetailedDashboard"
      DashboardBody: !Sub
      ...,
                  {
                       "type": "metric",
                       "x": 6,
                       "y": 18,
                       "width": 6,
                       "height": 6,
                       "properties": {
                           "metrics": [
                               [ { "expression": "SEARCH('{AWS/EC2,InstanceId} NetworkIn', 'Average', 300)", "id": "network_in", "period": 300, "region": "us-east-1", "label": "net_in" } ],
                               [ { "expression": "SEARCH('{AWS/EC2,InstanceId} NetworkOut', 'Average', 300)", "id": "network_out", "period": 300, "region": "us-east-1", "label": "net_out" } ]
                            ],
                        "view": "timeSeries",
                        "stacked": false,
                        "region": "us-east-1",
                        "title": "Network in/out by Host",
                        "stat": "Average",
                        "period": 300,
                        "yAxis": {
                          "left": {
                            "label": "bytes"
                          }
                        }
                      }
                      },

1 Ответ

0 голосов
/ 06 февраля 2020
DetailedDashboard:
Type: 'AWS::CloudWatch::Dashboard'
Properties:
  DashboardName: 'DetailedDashboard'
  DashboardBody: !Sub |
    {
         "type": "metric",
         "x": 6,
         "y": 18,
         "width": 6,
         "height": 6,
         "properties": {
             "metrics": [
                 [ { "expression": "SEARCH('{AWS/EC2,InstanceId} NetworkIn', 'Average', 300)", "id": "network_in", "period": 300, "region": "us-east-1", "label": "net_in" } ],
                 [ { "expression": "SEARCH('{AWS/EC2,InstanceId} NetworkOut', 'Average', 300)", "id": "network_out", "period": 300, "region": "us-east-1", "label": "net_out" } ]
              ],
          "view": "timeSeries",
          "stacked": false,
          "region": "us-east-1",
          "title": "Network in/out by Host",
          "stat": "Average",
          "period": 300,
          "yAxis": {
            "left": {
              "label": "bytes"
            }
          }
        }
        },

...