Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python flaskask&amazons3_Python_Amazon S3_Flask Ask - Fatal编程技术网

Python flaskask&amazons3

Python flaskask&amazons3,python,amazon-s3,flask-ask,Python,Amazon S3,Flask Ask,尝试使用Alexa技能。我以前使用过node.js来部署技能,但从未使用过python。我使用Flask ASK框架开发代码,并使用HTTPS enpoint和ngrok进行测试。测试代码是成功的,所以我正在尝试部署。我按照AWS的说明在同一根文件夹中压缩python文件和依赖项,并且只压缩内容,而不是文件夹本身。zip文件太大,我无法直接上传到lamda 16.1MB,上传时超时,所以我尝试使用AmazonS3云服务。这是非常直截了当的,所以我认为我在这方面没有犯任何错误。创建了我的bucke

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

Show的zip文件夹根目录刚刚解压以显示内容预览-main.py文件和依赖项位于同一文件夹级别

显示S3路径和上传名称,它实际上是上传的-我只是抓取了图片,然后上传了一个新版本

显示开发人员控制台设置
问题在于权限。很难找到,但是IAM角色需要从S3读取权限我刚刚给了它完全的S3访问权限,但是您可以限制读取

导航到console.aws.amazon.com->Login 滚动至安全性、标识和法规遵从性 在窗口左侧选择IAM->角色 创建角色->选择Lambda作为将使用该角色的AWS服务 附加对S3->Add和AWSLambdaExecute以及以下各项之一的权限:AmazonS3ReadOnlyAccess或AmazonS3FullAccess 命名角色 切换到Lambda控制台,并将此角色用于Lambda功能 我已经有几个月没有这样做了。因此,如果这对您不起作用,请让我知道,稍后我将深入研究文档。但据我记忆所及,这应该是你需要的