создание-изменение-набор чтения из файла параметров - PullRequest
0 голосов
/ 15 апреля 2019

Вопрос Я выполняю команду create-change-set, которая будет искать файл параметров, но получаю сообщение об ошибке CLI

Код

aws cloudformation create-change-set --stack-name  arn:aws:cloudformation:eu-west-1:xxxxxxxxxxxxxx:stack/JM-MachineLearning/0846dff0-5f91-11e9-8422-0a9391483dc6 --template-body packaged.yaml --parameters teststackupdate.json --change-set-name SampleChangeSet2 

Сообщение об ошибке

Parameter validation failed:
Invalid type for parameter Parameters[0].UsePreviousValue, value: true, type: <type 'unicode'>, valid types: <type 'bool'>
Invalid type for parameter Parameters[1].UsePreviousValue, value: true, type: <type 'unicode'>, valid types: <type 'bool'>
Invalid type for parameter Parameters[2].UsePreviousValue, value: true, type: <type 'unicode'>, valid types: <type 'bool'>
Invalid type for parameter Parameters[3].UsePreviousValue, value: true, type: <type 'unicode'>, valid types: <type 'bool'>
Invalid type for parameter Parameters[4].UsePreviousValue, value: true, type: <type 'unicode'>, valid types: <type 'bool'>

Файл

cat teststackupdate.json
[
        {
                "ParameterKey": "DeploymentName",
                "UsePreviousValue": "true"
        },
        {
                "ParameterKey": "KinesisName",
                "UsePreviousValue": "true"
        },
        {
                "ParameterKey": "serverName",
                "UsePreviousValue": "true"
        },
        {
                "ParameterKey": "LambdaFunctionName",
                "UsePreviousValue": "true"
        },
        {
                "ParameterKey": "LambdaTimeout",
                "UsePreviousValue": "true"
        },
        {
                "ParameterKey": "payloadBucketName",
                "UsePreviousValue": "true"
        },
        {
                "ParameterKey": "nameTableEvent",
                "UsePreviousValue": "true"
        }
]

Что я пытаюсь сделать, обновитьстек в AWS Cloudformation.Я создал стек с помощью интерфейса командной строки из SAM, сконвертировал его в Cloudformation и затем развернул.

Я выполнил команду через CLI, но это также не сработало ParameterKey = string, ParameterValue = string, UsePreviousValue = boolean,ResolvedValue = строка

Запуск параметров через CLI

aws cloudformation create-change-set --stack-name arn:aws:cloudformation:eu-west-1:xxxxxxxxxxx:stack/JM-MachineLearning/0846dff0-5f91-11e9-8422-0a9391483dc6 --change-set-name SampleChangeSet2  --parameter LambdaFunctionName=MachineLearningMementoDynamoDBSaver nameTableEvent=MachineLearningEvent nameTableCountersEvent=MachineLearningCountersEventId nameTableCountersEventRowId=MachineLearningCountersEventRowId serverName=LambdaMachineLearning KinesisName=MachineLearningDataStream payloadBucketName=redcloud-machinelearning-6888/memento/error-payload --profile DEV  --region eu-west-1

Parameter validation failed:
Unknown parameter in Parameters[0]: "LambdaFunctionName", must be one of: ParameterKey, ParameterValue, UsePreviousValue, ResolvedValue
Unknown parameter in Parameters[1]: "nameTableEvent", must be one of: ParameterKey, ParameterValue, UsePreviousValue, ResolvedValue
Unknown parameter in Parameters[2]: "nameTableCountersEvent", must be one of: ParameterKey, ParameterValue, UsePreviousValue, ResolvedValue
Unknown parameter in Parameters[3]: "nameTableCountersEventRowId", must be one of: ParameterKey, ParameterValue, UsePreviousValue, ResolvedValue
Unknown parameter in Parameters[4]: "serverName", must be one of: ParameterKey, ParameterValue, UsePreviousValue, ResolvedValue
Unknown parameter in Parameters[5]: "KinesisName", must be one of: ParameterKey, ParameterValue, UsePreviousValue, ResolvedValue
Unknown parameter in Parameters[6]: "payloadBucketName", must be one of: ParameterKey, ParameterValue, UsePreviousValue, ResolvedValue

Любой совет будет оценен.

Я новичок в Cloudformation / SAM.

Спасибо

1 Ответ

0 голосов
/ 15 апреля 2019

Редактировать: Если подумать, это может не быть вашей проблемой, но попробуйте и посмотрите, изменится ли ошибка. Надеюсь, кто-то другой может дать лучший ответ.

В вашем testtackupdate.json у вас есть:

"UsePreviousValue": "true"

Ваша истина в кавычках, что делает ее строкой. Ошибка говорит вам, что она должна быть логической, что является истинным / ложным.

Удалите все слова "true", чтобы они выглядели так:

"UsePreviousValue": true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...