根据文章步骤测试:https://aws.amazon.com/blogs/storage/auto-sync-files-from-amazon-s3-to-amazon-workdocs/,但中间遇到很多坑,靠自己摸索一步步填平,特作此文记录。
主要步骤:
1.- 创建workdocs文件夹,获取文件夹id
2.- 创建Parameter Store,存放workdocs文件夹名和id的对应关系,同时可设定文件格式过滤
3.- 创建Lambda,关键是自制python requests library,并添加为layer
4.- 创建SQS
5.- 创建S3 bucket和设定notification
第一步 创建workdocs文件夹,获取对应id,如下
第二步 创建parameter store,名字如下要一样,因为后续python里引用的是这个名字
/dl/workdocs/folderids
第三步 创建Lambda,这个我花时间最多,主要是这个requests的库,作者在文章中只是简单的描述如下,这可将我这个对python不熟的家伙给搞懵了,后来查了资料才明白这个要自己弄,而且不一定要这个2.2.4
具体过程,在已安装python的机器,我用的是windows,打开CMD,切换到对应目录,创建一个叫python的文件夹,然后cd到这个python文件夹下,输入命令:pip install requests -t ./
相关requests library的文件下载之后,打包成zip文件,注意这里一定要叫python.zip, 不然lambda不认,我之前叫了Requests-Library.zip, 传上后,lambda跑时去Cloudwatch看提示:[ERROR] Runtime.ImportModuleError: Unable to import module ‘lambda_function’: No module named ‘requests’,后来通过ChatGPT查询,这里给GPT点个赞,我才知道这个zip文件要叫python
第四步创建SQS,并添加到Lambda Trigger
第五步 创建S3 bucket和文件夹,然后设定notification
第六步 测试
上传文件到S3的其中一个文件夹,然后看对应的Workdocs文件夹里是否会自动出现,Workdocs这里可以看到,这个文件是由lambda传过来的,说明没问题了
如果文件无法自动同步,可以去Cloudwatch那里看log来debug
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net