在AWS lambda

时间:2017-11-20 20:13:55

标签: amazon-web-services aws-lambda boto3 serverless-framework botocore

我想在lambda函数中使用Boto3 put_bucket_encryption,但当前的Lambda execution enviornment是在botocore版本1.7.37,而put_bucket_encryption是在botocore中引入的1.7.41

所以我想打包我的本地版本的boto3 / botocore。

我使用serverless frameworkserverless-python-requirements在lambda函数中包含了pip包,但它似乎不适用于boto3 / botocore。

该功能响应CreateBucket事件并尝试put_bucket_encryption,但失败

'S3' object has no attribute 'put_bucket_encryption': AttributeError

如何强制我的lambda函数使用更新的botocore?

1 个答案:

答案 0 :(得分:0)

能够通过kichik的帮助解决

我错过的是omitting packages文档中关于serverless-python-requirements的部分。具体做法是:

  

默认情况下,这不会安装已在Lambda上安装的AWS开发工具包。

所以在serverless.yml我添加了

custom:
  pythonRequirements:
    noDeploy:
      - pytest

部署后,它使用的是我的打包版本的boto3 / botocore