Amazon web services cfn init指定自定义json

Amazon web services cfn init指定自定义json,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,有没有办法告诉cfn init使用从磁盘加载的自定义JSON文件?这样我就可以快速解决问题,否则更改AWS::CloudFormation::Init部分的唯一方法就是删除堆栈并重新创建它 我宁愿对template.json进行更改,然后告诉类似cfn init-f C:\template.json的内容。。。因此,它使用C:\template.json而不是从169.254.169.254或以任何方式获取模板。证明cfn init确实接受一个文件,但该文件需要将元数据键作为根键 因此,如果我们

有没有办法告诉cfn init使用从磁盘加载的自定义JSON文件?这样我就可以快速解决问题,否则更改AWS::CloudFormation::Init部分的唯一方法就是删除堆栈并重新创建它


我宁愿对template.json进行更改,然后告诉类似cfn init-f C:\template.json的内容。。。因此,它使用C:\template.json而不是从169.254.169.254或以任何方式获取模板。

证明cfn init确实接受一个文件,但该文件需要将元数据键作为根键

因此,如果我们将其保存到template.json:

然后我们可以执行cfn init-v-region us-east-2 template.json

注意:不包括堆栈或资源,如果使用cfn init-v-s my_stack-r my_instance-region us-east-2 template.json,您将获得:

错误:不能为元数据指定多个输入源

如果将整个模板文件(而不仅仅是元数据)放在根目录下,您将得到:

在template.json中找不到“AWS::CloudFormation::Init”键

{
    "AWS::CloudFormation::Init": {
        "config": {
            "files": {
                "C:\\Users\\Administrator\\Desktop\\test-file": {
                    "source": "https://s3.us-east-2.amazonaws.com/example-bucket/example-file"
                }
            }
        }
    },
    "AWS::CloudFormation::Authentication": {
        "S3AccessCreds": {
            "type": "S3",
            "buckets": ["example-bucket"],
            "roleName": "s3access"
        }
    }
}