【问题标题】:AWS - Cannot find a Cloudfront stackAWS - 找不到 Cloudfront 堆栈
【发布时间】: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 建议的那样拥有不同的帐户?

标签: amazon-web-services amazon-cloudformation aws-cli


【解决方案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
猜你喜欢
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 2021-02-18
  • 1970-01-01
  • 2013-10-02
  • 2022-01-10
  • 1970-01-01
  • 2021-02-02
相关资源
最近更新 更多