当前位置: 首页 > 知识库问答 >
问题:

如何临时切换AWS CLI的配置文件?

汪信鸥
2023-03-14

更新答案(2021年10月7日):对于AWS CLI v1,请执行以下操作:

export AWS_DEFAULT_PROFILE=user2

对于AWS CLI v2,以下操作将起作用:

export AWS_PROFILE=user2

以下是完整问题的背景:

(1.)成功为AWS CLI配置第二个配置文件后,我尝试在bash会话中使用以下命令将配置文件设置为user2,但未成功:

export AWS_PROFILE=user2

... 根据此处的建议:https://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html

(2.)以下命令工作:

aws s3 ls --profile user2

所以我知道AWS CLI和user2配置文件都在我的电脑上工作。

(3.)但是,当我随后(即,在输入导出AWS_PROFILE=user2之后)尝试类似的东西:

aws s3 ls

... AWS的响应假设我想作为默认用户(而不是user2)查询它

(4.)因此,我可以从命令行使用user2配置文件的唯一方法是继续在每个命令中附加“--file user2”,这很乏味。

(5.)

echo $AWS_PROFILE

产量:

>> user2

,正如所料。

知道这是怎么回事吗?我肯定我在某个地方犯了一些愚蠢的错误。

共有3个答案

谭志用
2023-03-14

接受的答案假设您使用的是Linux或Mac终端。我添加了两个操作系统的命令。

set AWS\u PROFILE=PROFILE\u name

导出AWS_PROFILE=profile_name

这些将设置您的aws配置文件,您将在每次执行aws命令时使用该配置文件。但是如果你只是想暂时切换配置文件为一个aws命令。

aws[命令][子命令]--file[配置文件名]

易星纬
2023-03-14

你可以看到它是如何工作的

$ export AWS_PROFILE=myprofile
$ aws s3 ls --debug 2>&1 | grep profile
2018-04-08 19:19:17,990 - MainThread - botocore.session - DEBUG - Loading variable profile from environment with value 'myprofile'.

我怀疑这对你有不同的效果。

您还可以验证这一点

$ AWS_PROFILE=myprofile aws s3 ls --debug 2>&1 | grep profile

$ aws s3 ls --profile myprofile --debug 2>&1 | grep profile

都给出相同的结果。

呼延珂
2023-03-14

对于AWS CLI v1,最干净的解决方案是:

export AWS_DEFAULT_PROFILE=user2

之后,命令如下:

aws s3 ls

... 由适当的账户处理。

对于AWS CLI v2,以下操作将起作用:

export AWS_PROFILE=user2
 类似资料:
  • 问题内容: 我有一些代码使用包含大量硬编码常量的类。看起来是这样的: 这些常量在像这样的代码中随处可见。 我现在需要做的是使在配置文件(可能是文件)中为这些常量指定值成为可能。 我的问题是:最好的方法是什么,而必须重写尽可能少的代码? 我想到了使用单个配置类,该类在实例化时会从文件中读取属性,但是随后我将必须将值的所有静态调用替换为对该类实例的调用,并且我将不得不更改现有方法以将其传递给配置实例到

  • 我们的简介如下: 对于我们的测试环境,我们有两个属性文件(在src/main/test/resources下)应用程序本地。性质和应用。属性文件。计划是使用本地应用程序。“本地”配置文件模式下的属性(在我们的开发windows系统上)和应用程序。其他配置文件模式的属性。在spring上下文(spring context.xml)中,目前,我们正在根据使用的配置文件在两个属性文件之间手动切换。正在寻

  • 问题内容: 我在Java中使用Selenium Web Driver API。每次我想调试测试用例时,都会在临时文件目录中为Firefox创建一个临时配置文件。这在两个方面令人头疼。 创建配置文件肯定会花费不必要的时间,并且会占用不必要的空间。 我无法安装下次启动测试用例时可用的任何插件。 我该如何解决? 问题答案: 您可以控制Firefox驱动程序如何选择配置文件。将属性设置为要使用的配置文件的

  • 我有一个redis哨兵配置,有一个主,两个从和3个哨兵运行。我注意到,在某个时候,哨兵可能会更换主人,选择一个奴隶作为主人。这给作为独立客户机连接到主节点的应用程序带来了问题(我正在修改代码以使用哨兵)。我想知道是否可以通过连接到sentinel客户机来切换主服务器,即通过'' 有人能让我知道是否有一个命令,我可以用来切换主IP吗?

  • 我有以下Redis/Sentinel配置: Redis主服务器+从服务器 监视的哨兵,名为 客户端应用程序查询,然后查询和修改 现在,假设过时了,我想用一个名为的新Redis master来替换它(停机时间/数据丢失最少)。在手术的最后,我想要这样: Redis主服务器+从服务器 客户端应用程序查询和修改 我可以这样做: 让哨兵开始监视,名为 让的每个从属都成为的从属 从那以后,我被困住了,因为客

  • 主要内容:su 和 su - 的区别su 是最简单的用户切换命令,通过该命令可以实现任何身份的切换,包括从普通用户切换为 root 用户、从 root 用户切换为普通用户以及普通用户之间的切换。 普通用户之间切换以及普通用户切换至 root 用户,都需要知晓对方的密码,只有正确输入密码,才能实现切换;从 root 用户切换至其他用户,无需知晓对方密码,直接可切换成功。 su 命令的基本格式如下: [root@localhost ~]