运行任何 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 命令 - 指定输出保存位置时出现“错误参数”