amazon-web-services - 从参数文件中读取创建更改集

标签 amazon-web-services aws-cloudformation

问题 我正在运行 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 的 CLI 创建了堆栈,并将其转换为 Cloudformation,然后进行部署。

我确实通过 CLI 运行了该命令,但这也不起作用 ParameterKey=字符串,ParameterValue=字符串,UsePreviousValue= bool 值,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 新手。

谢谢

最佳答案

编辑:再想一想,这可能不是您的问题 - 但请尝试看看错误是否发生变化。希望其他人可以提供更好的答案。

在你的 teststackupdate.json 中,你有:

"UsePreviousValue": "true"

你的 true 用引号引起来,使其成为一个字符串。 该错误告诉您它需要是 bool 值,即 true/false。

取消引用所有“true”,使其看起来像:

"UsePreviousValue": true

关于amazon-web-services - 从参数文件中读取创建更改集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55693427/

相关文章:

python - AWS boto 和 boto3 有什么区别

amazon-web-services - Lambda 函数中的 DynamoDB BatchGetItem 动态表名

angular - 如何在 S3 上上传预渲染文件并在我们的网页初始加载时访问它?

amazon-web-services - AWS secret 管理器, 'A previous rotation isn’ t complete' 轮换 secret 时

aws-lambda - AWS CloudFormation 更新 Lambda 代码以使用 S3 存储桶中的最新版本

node.js - Cloudformation awssdk InsufficientCapabilityException : Requires capabilities : [CAPABILITY_IAM]

json - 从 AWS Lambda 函数解析 JSON 答案

amazon-ec2 - AWS Cloudfoundation 选择 Redhat Linux AMI

amazon-web-services - AWS ECS 集群容量提供商

amazon-web-services - CloudFormation模板中的错误到底在哪里?