使用 boto3 ssm 时,基本工作目录和 conda 环境与我通过 EC2 实例连接连接时不同

问题描述 投票:0回答:2

我正在尝试使用 boto3 send_command 函数,现在它已经可以工作了,但我注意到基本工作目录和我的一些 conda 设置与我通过 EC2 实例连接命令行界面进行连接时不同.

当我在其中任何一个中使用“who”命令时,他们会告诉我我是同一个用户。但这些设置还是不同的。

有什么方法可以让我的环境通过 SSM 与 EC2 实例连接 CLI 中的环境完全相同?

更新:我发现当我使用“whoami”而不是who时,它们将返回不同的用户(分别为“ubuntu”和“root”)

amazon-web-services amazon-ec2 boto3
2个回答
0
投票

我是这样解决的:

我发现,即使它使用“who”命令将我列为同一用户,但如果我使用“whoami”,我会注意到我的 ssh 客户端位于用户“root”而不是 ubuntu 中。

因此,在 EC2 实例连接命令行上,我使用“sudo su root”切换到 root 用户,并在那里正确设置环境。

现在我的 python 脚本在通过 SSM 调用时运行


0
投票

您可以使用以下命令作为不同网络用户运行命令:

f"runuser -l ubuntu -c '{cmd}'"

您还可以选择为 ssm 会话设置工作目录:

    'Parameters': {
        'commands': commands,
        'workingDirectory': ['/home/user'],
    }
© www.soinside.com 2019 - 2024. All rights reserved.