如何使用来自 Lambda 的参数向 运行 shell 脚本执行 AWS SSM 发送命令?

How to execute AWS SSM send command to run shell script with arguments from Lambda?

目前正在使用 AWS Lambda 函数在 EC2 实例上远程执行 shell 脚本(带参数)。

Shell 脚本参数值在 Lambda 中存储为环境变量。

如何在SSM发送命令中引用Lambda的env变量?

有这样的代码片段:(但它不起作用)

   response = ssm_client.send_command(
        InstanceIds=instances,
        DocumentName="AWS-RunShellScript",
        Parameters={
            "commands": ["sh /bin/TEST/test.sh -v {{os.environ:tar_version}}"]
        },
        OutputS3BucketName="tar",
        OutputS3Region="eu-west-1"
    )

请您在这里帮帮我。

谢谢

您需要做的只是简单的字符串格式化。使用 Python 的 f-strings:

import os

tar_version = os.environ['TAR_VERSION']

response = ssm_client.send_command(
        InstanceIds=instances,
        DocumentName="AWS-RunShellScript",
        Parameters={
            "commands": [f"sh /bin/TEST/test.sh -v {tar_version}"]
        },
        OutputS3BucketName="tar",
        OutputS3Region="eu-west-1"
    )