Развертывание zambd-кода на лямбда-языке в конвейере Jenkins - PullRequest
0 голосов
/ 01 июля 2019

У меня есть проблема, когда у меня есть скрипт на python, который я использую для лямбда-выражения.Когда я архивирую и загружаю прямо из моего терминала, все работает без проблем.Тем не менее, я пытаюсь собрать все в конвейер CI / CD с помощью Jenkins, и вот тут возникают проблемы.

У меня есть скрипт, который (1) архивирует код Python (2) загружает ZIPфайл в s3 (3) развернуть шаблон CF с лямбда-выражением.

Это выглядит так:

 sh """
    chmod 644 ./internal/lambda/get_cluster_arn.py
    zip ./internal/lambda/get_cluster_arn.zip ./internal/lambda/get_cluster_arn.py
    aws s3 cp ./internal/lambda/get_cluster_arn.zip s3://${s3Bucket}/lambda/ --sse
    # Deploy app
    aws cloudformation package --template-file template.yaml --s3-bucket ${s3Bucket} --s3-prefix sam-template --output-template-file packaged-template.yaml
    aws cloudformation deploy --template-file packaged-template.yaml --stack-name test-stack-${deployEnv} --parameter-overrides Env=${deployEnv} ReleaseTag=${version}
"""

Это может успешно развернуться в Jenkins.Однако, когда я иду, чтобы проверить мою лямбду, я получаю ошибку:

START RequestId: e3bab32c-1f8e-485c-933b-e67eda95d2f5 Версия: $ LATEST Ошибка инициализации модуля: [Errno 13] В доступе отказано:'/var/task/internal/lambda/get_cluster_arn.py'

END RequestId: e3bab32c-1f8e-485c-933b-e67eda95d2f5 ID отчета-отчета: e3bab32c-1f8e-485c-995: 100 мс Размер памяти: 800 МБ Макс. Используемая память: ошибка инициализации модуля 34 МБ [Errno 13] Отказано в доступе: '/var/task/internal/lambda/get_cluster_arn.py'

Я посмотрелhttps://docs.aws.amazon.com/lambda/latest/dg/deployment-package-v2.html но не смог заставить мой Jenkins распознавать команды оболочки $ (потому что они заключены в строковый литерал "" "). Я также видел Отказано в доступе после загрузки AWS LambdaPython Zip из S3 и попытался выполнить следующие действия, но это также, похоже, не сработало. Как я могу успешно развернуть свою лямбду из Jenkins?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...