【问题标题】:Invoke S3 sync from a Python lambda with boto3使用 boto3 从 Python lambda 调用 S3 同步
【发布时间】:2019-01-17 01:23:06
【问题描述】:

这是我对earlier question 的后续跟进。如果可能,我不想从 Python lambda 调用 AWS CLI,而是使用 Boto3(它具有 S3 功能)。但是,我在Boto3 S3 documentation 中看不到任何同步功能(我预计它在BucketBucketLifecycle 下,但我也到处检查了)。

那么是否可以从 Boto 调用 S3 同步?

【问题讨论】:

    标签: amazon-web-services amazon-s3 boto3


    【解决方案1】:

    Boto3 不包含s3 sync 功能。这只能通过 AWS CLI 工具获得。您可以按照this answer 中列出的步骤将 AWS CLI 工具与您的 Python Lambda 函数打包。

    【讨论】:

    • 谢谢,马克。我在过去几分钟内尝试过,调用command = ["aws", "s3", "sync", source_bucket, destination_bucket]results = subprocess.check_output(command, stderr=subprocess.STDOUT) 给出"errorMessage": "[Errno 2] No such file or directory: 'aws': 'aws'", 我是否需要在aws 前面加上任何硬编码路径或环境变量?再次感谢。
    • 对不起,我读到它是可用的,但实际上并没有尝试过。另一篇文章说它默认不可用,所以我不确定哪个是真的。不过,您可以相当轻松地将其与您的 Python Lambda 函数打包:stackoverflow.com/questions/33513604/…
    • 确实,我刚刚在docs.aws.amazon.com/lambda/latest/dg/… 上看到 Boto3 可用,但不是整个 AWS CLI 开发工具包。我会打包它,或者为了方便起见尝试使用 Javascript。
    • 如果您使用最新的 cmets 编辑答案,以便将来的读者正确,我会接受它作为答案。
    猜你喜欢
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 2016-01-12
    • 2018-08-21
    • 2019-12-05
    • 2017-04-21
    相关资源
    最近更新 更多