AWS - 找不到 Cloudfront 堆栈
Posted
技术标签:
【中文标题】AWS - 找不到 Cloudfront 堆栈【英文标题】:AWS - Cannot find a Cloudfront stack 【发布时间】:2020-08-17 17:15:10 【问题描述】:我在使用 AWS CLI 时遇到了一个非常奇怪的问题。我从我的主配置文件中创建了一个新的 IAM 用户,并为该用户提供了AdministratorAccess
,以便允许该用户使用 CloudFormation 脚本创建 AWS 资源。
我刚刚创建了一个包含 VPC 资源的新堆栈。堆栈应该是在eu-west-2
中创建的,因为我收到以下消息:
"StackId": "arn:aws:cloudformation:eu-west-2:350027292717:stack/emajarstack/a3b07fd0-8d1e-11ea-9ac5-060e4e394d84"
如果我使用我的主要 AWS 配置文件登录,我看不到在 eu-west-2
区域中创建的任何堆栈。
我什至尝试运行几个 CLI 命令来列出或描述我的堆栈,但显然没有创建堆栈:
$ aws cloudformation list-stacks
"StackSummaries": []
$ aws cloudformation describe-stacks --stack-name emajarstack
An error occurred (ValidationError) when calling the DescribeStacks operation: Stack with id emajarstack does not exist
有趣的事实是我无法创建相同的堆栈,因为我收到以下消息:
An error occurred (AlreadyExistsException) when calling the CreateStack operation: Stack [emajarstack] already exists
问题是:
你知道我怎样才能找到我的堆栈或者我做错了什么吗? 有没有办法通过 id 搜索堆栈?【问题讨论】:
堆栈中是否存在您要创建的 VPC? 您的 AWS CLI 默认区域是什么?当您运行aws cloudformation list-stacks
时,它使用默认区域,因此如果它是例如us-east-1
,那么输出是正确的 - 该区域中没有具有该名称的堆栈。还要仔细检查哪个 AWS 账户是 CLI 操作的默认账户,可能是您正在创建资源并检查它们在不同账户中的存在。
@OleksiiDonoha 该区域是us-west-2
与我在创建堆栈后收到的消息中报告的完全相同。 @Marcin 不,不存在 VPC
您没有像@OleksiiDonoha 建议的那样拥有不同的帐户?
【参考方案1】:
此消息不保证堆栈将成功创建:
"StackId": "arn:aws:cloudformation:eu-west-2:350027292717:stack/emajarstack/a3b07fd0-8d1e-11ea-9ac5-060e4e394d84"
这里有两种可能性:
1 - 99% 确定您的堆栈创建失败是因为模板或其他问题(例如限制、依赖项),这就是它没有显示的原因,请在控制台中查看更多详细信息。它可能处于 roll_back 完成状态,因此如果您无法查看控制台,请使用此标志:
aws cloudformation list-stacks --stack-status-filter ROLLBACK_COMPLETE
2 - 使用您的 list 命令指定正确的区域,因为您的 CLI 将在默认区域中查找,该区域可能与您的堆栈所在的区域不同。
编辑:另外,运行 aws sts get-caller-identity 以确保您使用具有足够权限的正确用户。
【讨论】:
感谢您的回复。您是对的:“此消息不保证堆栈将成功创建”。我不知道 示例:aws cloudformation list-stacks --region us-east-1 --stack-status-filter CREATE_COMPLETE以上是关于AWS - 找不到 Cloudfront 堆栈的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Cloudfront 设置 AWS Elastic Beanstalk 以在 PHP 堆栈上托管图像和视频
如何使用 Terraform 使 AWS CloudFront Distribution 缓存失效?
AWS CDK - 多个堆栈 - 找不到 Lambda 代码位置的参数
aws_cloudfront_distribution forwarded_values (Terraform) 中标头的语法是啥?