我尝试通过上传模板来创建堆栈。
失败的是错误标题为空。
我有权创建存储桶,上传文件,创建EC2实例等。 我什至尝试切换到我的根帐户,但这无济于事。
我尝试了不同的YAML文件和示例,但似乎都没有用。 没有可操作项的有意义的错误消息,我被困住了。
{
"AWSTemplateFormatVersion": "2010-09-09",
"Metadata": {
"AWS::CloudFormation::Designer": {
"213de823-ad0a-4f4c-af04-e3c9e565eef8": {
"size": {
"width": 60,
"height": 60
},
"position": {
"x": 581,
"y": 148
},
"z": 0
}
}
},
"Resources": {
"EC2I4PJFK": {
"Type": "AWS::EC2::Instance",
"Properties": {},
"Metadata": {
"AWS::CloudFormation::Designer": {
"id": "213de823-ad0a-4f4c-af04-e3c9e565eef8"
}
}
}
}
}
答案 0 :(得分:3)
尝试上载我创建的template.yml
文件时遇到相同的问题。我的解决方案是在S3中创建一个公共对象,然后将对象URL复制到Cloudformation中。
作者提出的解决方案对我没有帮助。
不幸的是,检查控制台和http请求并没有导致很多事情。
要求:https://console.aws.amazon.com/cloudformation/service/upload/uploadSuccess?bucket=cf-templates-jcexs078zt-us-east-1&key=somekey-template.yml&etag=someetag
返回200。
请求标头:
Host: console.aws.amazon.com
Referer: https://console.aws.amazon.com/cloudformation/home?region=us-east-1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36
响应标题:
Cache-Control: private, no-cache, no store
Connection: keep-alive
Content-Length: 0
Date: Sun, 31 May 2020 00:05:20 GMT
Expires: Sat, 30 May 2020 00:05:20 GMT
Pragma: no-cache
Server: Server
Strict-Transport-Security: max-age=47304000; includeSubDomains
Vary: Accept-Encoding,X-Amzn-CDN-Cache,X-Amzn-AX-Treatment,User-Agent
x-amz-rid: {sensitive-info?}
X-CloudFormation-RequestId: 885b8352-3178-4658-8326-b6a696a89579
我希望文件自动上传到s3,如果失败,我希望返回并显示有意义的错误消息。
答案 1 :(得分:2)
来自AWS支持。...
如果您正在使用“ Chrome”浏览器并看到此问题,请尝试清除cookie /浏览器缓存,退出浏览器并再次登录到AWS Console,然后尝试创建堆栈[1]。此外,请在禁用浏览器扩展后尝试。 [2]
解决方法: -您可以尝试使用任何其他浏览器,查看堆栈创建是否成功。 -您可以手动将模板上传到S3存储桶,并在创建堆栈时引用S3 URL。 -您也可以使用AWS CLI创建堆栈。[3]
[1]:清除Chrome上的缓存和Cookie:https://support.google.com/accounts/answer/32050?co=GENIE.Platform%3DDesktop&hl=en
[2]:在Chrome上管理扩展程序:https://support.google.com/chrome_webstore/answer/2664769?hl=en
[3]:用于创建堆栈的CLI命令参考:https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html
答案 2 :(得分:0)
一旦我在管理控制台本身中切换到us-east-1(Virginia),所有这些问题就消失了。当我切换到另一个区域时,它们会返回。该模板还引用us-east-1中的资源。因此,这说明了如何避免错误,但是不良(甚至空白)的错误消息非常无用。我仍然不确定其他地区的AMI参考是否是问题,或者您是否只需要在弗吉尼亚北部就可以运行cd。
有一次,我什至可以使用为模板文件创建的S3存储桶(而不是上传文件功能)来执行模板(尽管创建的资源仍然失败)。当我使用“从S3存储桶加载”方法时,它实际上已上载,但是由于错误的区域问题(例如AMI特定于区域)而导致堆栈创建失败。调试问题时,这只会增加混乱。
答案 3 :(得分:0)
为我的角色添加以下策略(在您的情况下,可能是角色或用户)对我有用:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::cf-template*"
}
]
}
答案 4 :(得分:0)
我认为将文件上传到s3并粘贴s3 URI是目前唯一的解决方法。