как вызвать bash скрипт с aws лямбда-функцией в python? - PullRequest
1 голос
/ 26 мая 2020

Я хочу вызвать сценарий bash с именем myScript.sh во вновь созданной лямбда-функции.

Шаг 1. Я создал лямбда-функцию с именем myLambda.py и исходным кодом, например:

import subprocess
print("start") 
subprocess.call("./myScript.sh")"

Шаг 2: Создайте сценарий bash с именем myScript.sh по тому же пути с myLambda.py

Шаг 3: Нажмите кнопку тестирования и получите ответ:

{
  "errorMessage": "[Errno 13] Permission denied: './myScript.sh'"
}

Кто-нибудь знает, как справиться с проблемой отказа в разрешении в aws lambda function env?

Поскольку файлы добавляются в качестве ориентира в https://docs.aws.amazon.com/lambda/latest/dg/code-editor.html, бесполезно использовать linux команду "chmod + x" для изменения прав доступа к файлу.

Это разрешается перемещением myScript. sh в папку / tmp и добавлением команды изменения прав доступа:

subprocess.run(["chmod", "+x", "/tmp/myScript.sh"])

1 Ответ

1 голос
/ 26 мая 2020

Вы не можете выполнять сценарии, у которых нет разрешения на выполнение. Вы можете предоставить разрешения на выполнение, используя некоторый вариант:

chmod +x /somepath/myScript.sh

Вы можете запустить это, используя ваш текущий подход подпроцесса. Запустите chmod перед запуском myScript. sh.

...