AWS CloudFormation: «Параметр [subnetIds] недействителен»

У меня есть AWS CodePipeline для развертывания стека в CloudFormation с использованием шаблона YAML, а также JSON-файла конфигурации шаблона.

Соответствующий фрагмент шаблона:

AWSTemplateFormatVersion: '2010-09-09'
...
Parameters:
  subnetIds:
    Type: List<AWS::EC2::Subnet::Id>
...

Соответствующий фрагмент файла конфигурации:

{
    "Parameters": {
      ...
      "subnetIds": [
        "subnet-a",
        "subnet-b",
        "subnet-c"
      ]
    },
    ...
}

По какой-то причине этап развертывания (CloudFormation) продолжает давать сбой с Parameter [subnetIds] is invalid, поэтому мой вопрос заключается в том, как передать список идентификаторов подсетей в шаблон из файла конфигурации?

Шаблон указывает, что значение записи в массиве должно быть таким: AWS::EC2::Subnet::I'd (:: является разделителем), но вы предоставляете только 1 строковое значение

Tamir Klein 09.04.2019 19:27

Возможно, вы захотите изменить свой вопрос, чтобы четко указать, что вы используете AWS CodePipeline. Я сделал вывод об этом из формата шаблона, который вы упомянули.

Alex Harvey 10.04.2019 04:52
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
2
1 396
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это объясняется здесь в документах о типах данных списка, таких как:

List<AWS::EC2::Subnet::Id>

An array of subnet IDs, such as subnet-123a351e, subnet-456b351e.

То есть все типы List в CloudFormation также являются строками, разделенными запятыми.

Поскольку вы используете CodePipeline Файл конфигурации шаблона, у вас будет что-то вроде:

{
  "Parameters": {
    "subnetIds": "subnet-a,subnet-b,subnet-c"
  }
}

Другие вопросы по теме