简体   繁体   English

如何执行 AWS SSM 发送命令以从 Lambda 运行带有 arguments 的 shell 脚本?

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

Currently working on a AWS Lambda function to execute shell script (with arguments) remotely on EC2 instance.目前正在使用 AWS Lambda function 在 EC2 实例上远程执行 shell 脚本(带参数)。

Shell script argument values are stored as environment variables in Lambda. Shell 脚本参数值作为环境变量存储在 Lambda 中。

How to reference the env variables of Lambda inside SSM send command?如何在SSM发送命令中引用Lambda的env变量?

Have a code snippet like this: (but it doesn't work)有这样的代码片段:(但它不起作用)

   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"
    )

Request you to please help me here.请你在这里帮助我。

Thanks谢谢

All you need to do is simple string formatting.您需要做的就是简单的字符串格式化。 Using Python's f-strings:使用 Python 的 f 字符串:

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"
    )

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM