在Jenkins pipelin中部署压缩的lambda python脚本

2024-10-04 01:36:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,我有一个python脚本,我正在使用lambda。当我直接从我的终端压缩和上传一切运行没有问题。然而,我正试图使用Jenkins将所有的东西放入CI/CD管道中,这就是问题所在。在

我有一个脚本(1)压缩python代码(2)将zip文件上载到s3(3)使用lambda部署一个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}
"""

这是能够成功部署在詹金斯。但是,当我去测试我的lambda时,我得到了一个错误:

START RequestId: e3bab32c-1f8e-485c-933b-e67eda95d2f5 Version: $LATEST module initialization error: [Errno 13] Permission denied: '/var/task/internal/lambda/get_cluster_arn.py'

END RequestId: e3bab32c-1f8e-485c-933b-e67eda95d2f5 REPORT RequestId: e3bab32c-1f8e-485c-933b-e67eda95d2f5 Duration: 62.64 ms Billed Duration: 100 ms Memory Size: 800 MB Max Memory Used: 34 MB module initialization error [Errno 13] Permission denied: '/var/task/internal/lambda/get_cluster_arn.py'

我查看了https://docs.aws.amazon.com/lambda/latest/dg/deployment-package-v2.html,但无法让Jenkins识别$shell命令(因为它们被包装在字符串文本“”)中。我也看过Permission denied after uploading AWS Lambda python zip from S3并试着跟随,但似乎也没用。我怎样才能成功地部署我的詹金斯的lambda?在


Tags: lambdapyawsyamlgets3部署template