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
Amazon s3 尝试在无服务器框架中为AWS Lambda函数创建多个s3存储桶时,Yaml文件出错_Amazon S3_Aws Lambda_Yaml_Amazon Cloudformation_Serverless Framework - Fatal编程技术网

Amazon s3 尝试在无服务器框架中为AWS Lambda函数创建多个s3存储桶时,Yaml文件出错

Amazon s3 尝试在无服务器框架中为AWS Lambda函数创建多个s3存储桶时,Yaml文件出错,amazon-s3,aws-lambda,yaml,amazon-cloudformation,serverless-framework,Amazon S3,Aws Lambda,Yaml,Amazon Cloudformation,Serverless Framework,所以我对CloudFormation和无服务器框架都是新手。我一直在尝试通过一些练习(比如自动缩略图生成器),然后创建一些简单的项目,希望能为我自己的目的进行推广 现在,我正在尝试创建一个堆栈/函数,该堆栈/函数创建两个S3存储桶,并使Lambda函数从一个CSV文件中获取一个CSV文件,执行一些简单的转换,然后将其放在另一个接收存储桶中 在尝试构建我所做的练习时,我使用以下代码创建了一个Yaml文件: provider: name: aws runtime: python3.8 r

所以我对CloudFormation和无服务器框架都是新手。我一直在尝试通过一些练习(比如自动缩略图生成器),然后创建一些简单的项目,希望能为我自己的目的进行推广

现在,我正在尝试创建一个堆栈/函数,该堆栈/函数创建两个S3存储桶,并使Lambda函数从一个CSV文件中获取一个CSV文件,执行一些简单的转换,然后将其放在另一个接收存储桶中

在尝试构建我所做的练习时,我使用以下代码创建了一个Yaml文件:

provider:
  name: aws
  runtime: python3.8
  region: us-east-1
  profile: serverless-admin
  timeout: 10
  memorySize: 128
  iamRoleStatements:
   - Effect: "Allow"
     Action:
       - "s3:*"
     Resource: "*"


custom:
  assets:
    targets:
    - bucket1: csvbucket1-08-16-2020
      pythonRequirements:
      dockerizePip: true
    - bucket2: csvbucket2-08-16-2020
      pythonRequirements:
      dockerizePip: true

functions:
  protomodel-readcsv:
    handler: handler.readindata
    events:
      s3:
      - bucket: ${self:custom.bucket1}
        event: s3:ObjectCreated:*
        suffix: .csv
      - bucket: ${self:custom.bucket2}
        

     

plugins:
  - serverless-python-requirements
  - serverless-s3-deploy
但是,当我从命令提示符执行无服务器部署时,我会得到:

 Serverless Warning --------------------------------------

  A valid service attribute to satisfy the declaration 'self:custom.bucket1' could not be found.


 Serverless Warning --------------------------------------

  A valid service attribute to satisfy the declaration 'self:custom.bucket2' could not be found.


  Serverless Error ---------------------------------------

  Events for "protomodel-readcsv" must be an array, not an object
我试图通过添加-使protohandler中的events对象成为readcsv:但由于某种原因,我得到了一个错误的缩进错误,无法协调。但是,更根本的是,我不确定为什么该项无论如何都需要一个数组,而且我也不清楚桶的警告

关于这个问题,我很抱歉问了一个新手,但是在线运行教程/示例在尝试概括/自定义这些示例时,还有很多问题需要解决。

custom:
资产:
目标:
-巴克特1
我想您需要
self:custom.assets.targets.bucket1
,不确定这个嵌套的资产是否可以工作

请检查下面的示例是否有效

service:MyService
自定义:
部署桶:s3_我的_桶
供应商:
名称:aws
deploymentBucket:${self:custom.deploymentBucket}
阶段:发展

Ok,那么我需要在provider部分添加bucket引用吗?然后添加多个bucket,我把它作为一个数组?我用缩略图重新调整大小的例子没有这个。