无法使用localstack触发AWS Lambda S3触发器吗?

问题描述

在本地堆栈中发生s3事件时,我的lambda函数没有触发吗?

但是在使用“ sls invoke -f hello --stage local”直接触发时会调用

帮我解决这个问题吗? 我已经安装了handler.js和serverless.yml文件

SERVERLESS.yml

service: ls-node

frameworkVersion: '2'

plugins:
  - serverless-plugin-typescript
  - serverless-localstack
  - serverless-dotenv-plugin
  - serverless-offline

provider:
  name: aws
  runtime: nodejs12.x
  stage: ${opt:stage,'development'}
  region: us-east-1
  profile: iamjai


  iamRoleStatements:
      - Effect: Allow
        Action:
          - s3:PutBucketNotification
          - s3:Getobject
        Resource: ["arn:aws:s3:::iamjai-dev/*"]

functions: 
  hello:
    handler: handler.hello
    events:
      - s3:
          bucket: iamjai-dev
          events: 
            - s3:ObjectCreated:*
    environment:
      TEST_NAME: "iamjai"
      TEST_MAIL: "jai@jai.com"



custom:
  localstack:
    stages:
      - local
  bucket: iamjai-dev
  dotenv:
    path: ../.env
    basePath: ../
    logging: false
    # include:
    #   - CLIENT
    #   - DATE

handler.js

'use strict';
'use strict';

const AWS = require('aws-sdk');
const s3 = new AWS.S3({ accessKeyId: "1234",secretAccessKey: "5678",endpoint: 'http://localhost:4566',s3ForcePathStyle: true,bucketName: "iamjai-dev" });

const csv=require('csvtojson')

module.exports.hello = async event => {
  console.log("Executed!!!!!")
  const Bucket = event.Records[0].s3.bucket.name;
  const Key = event.Records[0].s3.object.key;
  const data = await s3.getobject({ Bucket,Key }).promise();
  const params = {
            Bucket: Bucket,Key: Key,};
  const stream = s3.getobject(params).createReadStream();
  // convert csv file (stream) to JSON format data
  const jsonArray = await csv().fromStream(stream);
  console.log(JSON.stringify(stream))
  console.log(jsonArray.length);
  // console.log('NAME: ',process.env.NAME);
  // console.log('EMAIL: ',process.env.MAIL);
  console.log("Raw text:\n" + data.Body.toString('ascii'));
  
};

当使用localstack在s3存储桶中上传文件时,我需要触发我的lambda函数吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)