Запуск git в AWS lambda

Я пытаюсь запустить git в AWS lambda, чтобы проверить хранилище.

Это моя установка:

Я использую nodejs 4.3Я не пользуюсьnodegit потому что я хочу использовать параметр --depth = 1, который не поддерживается nodegit.Я скопировал исполняемый файл git и ssh из правильного AMI AWS и поместил его в папку «bin» в zip-файле, который я загружаю.Я добавил их в PATH с этим:

->

process.env['PATH'] = process.env['LAMBDA_TASK_ROOT'] + "/bin:" + process.env['PATH'];

Входные переменные установлены так:

"checkout_url": "git@...",
"branch":"master

Теперь я делаю это (для краткости я смешал некоторый псевдокод):

downloadDeploymentKeyFromS3Sync('/tmp/ssh_key');
fs.chmodSync("/tmp/ssh_key",0600);
process.env['GIT_SSH_COMMAND'] = 'ssh -o StrictHostKeyChecking=no -i /tmp/ssh_key';
execSync("git clone --depth=1 " + checkout_url + " --branch " + branch + " /tmp/checkout");

Запуск этого на моем локальном компьютере с помощьюлямбда-местный все работает отлично! Но когда я проверяю это в лямбде, я получаю:

warning: templates not found /usr/share/git-core/templates
PRIV_END: seteuid: Operation not permitted\r
fatal: Could not read from remote repository.
«Предупреждение», конечно, потому что я не установил git, а просто скопировал бинарный файл. Это причина, почему это не должно работать?Почему git нужен setuid? Я читал, что в некоторых оболочках это отключено по соображениям безопасности. Так что имеет смысл, что он не работает в лямбде. Можно ли как-нибудь проинструктировать git, чтобы эта команда не «нуждалась»?

Ответы на вопрос(3)

Ваш ответ на вопрос