从AWS cli

时间:2018-12-18 07:36:54

标签: shell aws-lambda aws-cli

我正在尝试通过shell脚本从cli调用AWS lambda函数。我想将当前登录的用户名发送给lambda函数作为参数。 这是我尝试的代码:

 #!/bin/bash
    user=$(whoami)
    echo "=START="
    echo "$user"
    aws lambda invoke --invocation-type RequestResponse --function-name shell_lambda_invoke --region ap-south-1 --log-type Tail --payload '{"bashuser":"${user}", "InstanceId":"'i-0c4869ec747845b99'"}'

谢谢。

2 个答案:

答案 0 :(得分:2)

由于您的bash变量位于单引号内,因此不会被填充。

测试:

$ echo "${user}"
root

您的样本:

$ echo '{"bashuser":"${user}", "InstanceId":"'i-0c4869ec747845b99'"}'
{"bashuser":"${user}", "InstanceId":"i-0c4869ec747845b99"}

您需要像这样中断报价:

$ echo '{"bashuser":"'"${user}"'", "InstanceId":"'i-0c4869ec747845b99'"}'
{"bashuser":"root", "InstanceId":"i-0c4869ec747845b99"}

答案 1 :(得分:2)

要使用AWS CLI调用lambda函数,请编写正常运行的以下代码:

#!/bin/bash
user=$(whoami)
echo Please Enter the InstanceId
read InstanceId
aws lambda invoke --invocation-type RequestResponse --function-name wu_core_auto_start_stop_lambdainvoke --region us-east-1 --log-type Tail --payload '{"bashuser":"'"${user}"'", "InstanceId":"'"${InstanceId}"'"}' outputfile.txt