【问题标题】:Flask-ASK & Amazon S3Flask-ASK 和 Amazon S3
【发布时间】:2018-07-31 00:06:47
【问题描述】:

尝试部署 Alexa Skill。我之前使用过node.js来部署技能,但从来没有使用过python。我使用 Flask-ASK 框架开发代码并使用 HTTPS enpoint 和 ngrok 进行测试。测试代码是成功的,所以我正在尝试部署。我按照 AWS 的说明将 python 文件和依赖项压缩到同一个根文件夹中,并且只压缩内容,而不是文件夹本身。 .zip 文件太大,我无法直接上传到 lamda(16.1 MB - 尝试上传超时),所以我尝试使用 Amazon S3 云服务。这是非常直截了当的,所以我认为我在这方面没有犯任何错误。创建了我的存储桶并上传了我的 zip。将路径输入 lambda。 下一步是我不确定什么是对/错的地方。我必须定义 lambda_handler。我唯一编辑和创建的 python 脚本的标题是 ma​​in.py --> ma​​in.lambda_handler 我假设是 {How do I add python libraries to an AWS lambda function for Alexa?}。 Alexa Developer Portal 已正确配置为 lambda 函数 ID。我保存它,构建函数,切换到测试,调用技能,然后我得到“出现问题......等等”。回应。

显示 zip 的根目录(文件夹只是解压缩以显示内容预览) -- ma​​in.py 文件和依赖项位于同一文件夹级别

显示 S3 路径和上传名称(实际上是上传的 - 我只是在上传新版本之前抓取了图片)

显示开发者控制台设置

【问题讨论】:

    标签: python amazon-s3 flask-ask


    【解决方案1】:

    问题在于权限。很难找到,但是 IAM 角色需要从 S3 读取的权限(我刚刚授予它完全 S3 访问权限,但您可以限制读取)

    1. 导航到 console.aws.amazon.com -> 登录
    2. 滚动到安全、身份和合规性
    3. 选择 IAM -> 角色(在窗口左侧)
    4. 创建角色 -> 选择 Lambda 作为将使用该角色的 AWS 服务
    5. 附加 S3 的权限 -> 添加和 AWSLambdaExecute 以及以下之一:AmazonS3ReadOnlyAccess 或 AmazonS3FullAccess
    6. 为角色命名
    7. 切换到 Lambda 控制台并将此角色用于 lambda 函数

    我已经做了几个月了。因此,如果这对您不起作用,请告诉我,稍后我将深入研究文档。但据我记得,这应该是你需要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 2020-12-01
      • 2018-08-28
      • 2010-11-24
      相关资源
      最近更新 更多