Вызвать лямбда-функцию из AWS cli - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь вызвать лямбда-функцию AWS из cli с помощью сценария оболочки.Я хочу отправить текущее зарегистрированное имя пользователя лямбда-функции в качестве параметра.Это код, который я пробовал:

 #!/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 голосов
/ 19 декабря 2018

Чтобы вызвать лямбда-функцию с помощью AWS CLI, напишите следующий код, который отлично работает:

#!/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
0 голосов
/ 18 декабря 2018

Поскольку ваша переменная 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"}
...