运行任何 aws CLI 命令时出现错误“您必须指定一个区域”

Posted

技术标签:

【中文标题】运行任何 aws CLI 命令时出现错误“您必须指定一个区域”【英文标题】:Error "You must specify a region" when running any aws CLI command 【发布时间】:2015-05-23 21:18:09 【问题描述】:

我正在尝试按照 http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_GetStarted.html 中的文档使用 aws 容器服务

运行命令时抛出以下错误:

aws ecs list-container-instances --cluster default

You must specify a region. You can also configure your region by running "aws configure".

文档没有提到任何关于指定默认区域的内容。我们如何在控制台中做到这一点?

【问题讨论】:

【参考方案1】:

我认为你需要使用例如:

aws ecs list-container-instances --cluster default --region us-east-1

这当然取决于您所在的地区。

【讨论】:

【参考方案2】:

“您必须指定一个区域”不是 ECS 特定的错误,它可能发生在任何 AWS API/CLI/SDK 命令中。

对于 CLI,设置 AWS_DEFAULT_REGION 环境变量。例如

export AWS_DEFAULT_REGION=us-east-1

或将其添加到命令中(每次使用特定于区域的命令时都需要它)

AWS_DEFAULT_REGION=us-east-1 aws ecs list-container-instances --cluster default

或设置在CLI configuration file: ~/.aws/config

[default]
region=us-east-1

或使用 CLI 调用传递/覆盖它:

aws ecs list-container-instances --cluster default --region us-east-1

【讨论】:

对于所有可用变量,请参阅:AWS CLI Configuration Variables 我遇到了类似的问题,我已经正确设置了AWS_REGION,但我收到了这个错误。添加AWS_DEFAULT_REGION 解决了它。 就我而言,我使用aws-azure-login 登录,随后aws <foo> <bar> 还需要同时提供区域 配置文件,例如--region us-east-1 --profile my-login-profile。只是想提一下,以防其他人遇到同样的情况。 如果要调用通过无服务器在本地运行的 lambda,为什么需要一个区域?【参考方案3】:

#1- 运行此命令以一劳永逸地配置区域:

aws configure set region us-east-1 --profile admin

更改个人资料旁边的admin(如果不同)。

如果您所在的地区不同,请更改 us-east-1

#2- 再次运行您的命令:

aws ecs list-container-instances --cluster default

【讨论】:

这不是运行aws configure 或编辑.aws/config,是唯一对我有用的东西 在这个 https 证书管理生态系统中,服务器、权限、浏览器和客户端之间的信息污染非常密集。这是一个 rube Goldberg 机器,到处都有演员将错误信息的沙子扔进齿轮里,让你失望。我花了几天的时间研究只是为了找到这些东西如何工作的可靠信息,更不用说设置 HTTPS 的简单可靠的说明了。我想这就是未来计算的样子,谷歌搜索不再返回关于如何执行重要操作的可靠和真实的说明。【参考方案4】:

只是为了添加 Dimitrov 和 Jason 先生的答案,如果您使用的是特定配置文件并且您已将您的区域设置放在那里,那么对于您需要添加的所有请求

“--profile”选项。

例如:

假设您有 AWS Playground 配置文件,而 ~/.aws/config 有 [profile playground] 进一步有类似的东西,

[profile playground] region=us-east-1

然后,使用类似下面的东西

aws ecs list-container-instances --cluster default --profile playground

【讨论】:

【参考方案5】:

我发布得太早了,但是下面的链接给出了配置方法

http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html

获取访问密钥的方法在下面的链接中给出

http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html#cli-signup

【讨论】:

它是否仅适用于完成它的特定 ec2 实例?【参考方案6】:

如果您已在 .aws/config.aws/credentials 中配置了所有需要的内容,但仍然出现此错误 - 请仔细检查方括号中的名称。

config 中应该是[profile myLovelyAccName],在credentials 中应该是[myLovelyAccName]

注意两点:

仅在 config 文件中的“配置文件”一词和后面的一个空格 acc 名称中没有拼写错误!

【讨论】:

以上是关于运行任何 aws CLI 命令时出现错误“您必须指定一个区域”的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 AWS CLI 运行 ECS 任务时出现资源:内存错误

AWS Elastic Beanstalk 使用 CLI 部署时出现 Botocore 错误

使用 AWS CLI 时发布的错误中更新 cloudformation 堆栈时出现回滚错误

QProcess CLI 命令 - 指定输出保存位置时出现“错误参数”

使用带反斜杠的sed命令时出现AWS CloudFormation模板验证错误

运行 Vue 应用程序时出现错误“vue-cli-service: command not found”