【问题标题】:Access S3 in Amplify from Lambda从 Lambda 在 Amplify 中访问 S3
【发布时间】:2019-05-05 08:12:33
【问题描述】:

我正在使用 Amplify 构建一个应用程序,其中一个功能会生成 PDF。我想将此 PDF 保存在 S3 中,它也是通过 Amplify 创建的。从前端访问 S3 有据可查,但没有提到从 Lambda 进行访问。在那个 Lambda 函数中,我可以毫无问题地访问 DynamoDB,因此配置了 aws-sdk。

我可以手动配置 IAM 角色和存储桶,但是否有使用 Amplify 的正确方法?

【问题讨论】:

标签: amazon-web-services amazon-s3 aws-lambda aws-amplify


【解决方案1】:

如果您想在同样由 amplify 创建的 lambda 函数中访问由 amplify 创建的 s3 存储桶,

您可以在 lambda 环境变量中找到您的存储桶名称。

# index.py

import os

def index():
    print(os.environ)

这会打印出类似的东西

AWS_LAMBDA_FUNCTION_VERSION: "$LATEST",
AWS_SESSION_TOKEN:"Your Token",
STORAGE_{YOUR_STORAGE_NAME_IN_AMPLIFY}_BUCKETNAME: "ACTUAL_BUCKETNAME_CREATED_BY_AMPLIFY",
LAMBDA_TASK_ROOT: "/var/task",
...

获得存储桶名称后,剩下的过程就是使用您的配置设置 boto3 客户端并执行您想要的任务。

【讨论】:

    猜你喜欢
    • 2016-01-11
    • 2017-02-08
    • 2018-09-23
    • 2021-07-16
    • 2019-06-04
    • 2021-03-09
    • 2021-04-01
    • 2021-12-06
    • 2021-06-09
    相关资源
    最近更新 更多