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) 中标头的语法是啥?

为 Django 堆栈设置 Route 53->CloudFront->Elastic Beanstalk 基础设施

AWS S3和Cloudfront单个文件带宽?