我有一个问题,我有一个用于lambda的python脚本。当我直接从终端压缩并上传时,一切都没有问题。但是,我正在尝试使用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}
"""
这能够在Jenkins中成功部署。但是,当我测试我的lambda时,出现错误:
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报告RequestId: e3bab32c-1f8e-485c-933b-e67eda95d2f5时长:62.64 ms已结算 持续时间:100 ms内存大小:800 MB已使用的最大内存:34 MB模块 初始化错误[Errno 13]权限被拒绝: '/var/task/internal/lambda/get_cluster_arn.py'
我看着https://docs.aws.amazon.com/lambda/latest/dg/deployment-package-v2.html,但是我的詹金斯无法识别$
shell命令(因为它们被包装在字符串““”中)。我也看到了{{ 3}},并尝试进行后续操作,但这似乎也不起作用。如何才能从Jenkins成功部署我的Lambda?