首先创建lambda函数:

const AWS = require('aws-sdk')const s3Zip = require('s3-zip')exports.handler = function (event, context) {  console.log('event', event)    const region = event.region  const bucket = event.bucket  const folder = event.folder  const files = event.files  const zipFileName = event.zipFileName  // Create body stream  try {    const body = s3Zip.archive({ region: region, bucket: bucket}, folder, files)    const zipParams = { params: { Bucket: bucket, Key: folder + zipFileName } }    const zipFile = new AWS.S3(zipParams)    zipFile.upload({ Body: body })      .on('httpUploadProgress', function (evt) { console.log(evt) })      .send(function (e, r) {         if (e) {          const err = 'zipFile.upload error ' + e          console.log(err)                   context.fail(err)        }         console.log(r)         context.succeed(r)      })  } catch (e) {    const err = 'catched error: ' + e    console.log(err)        context.fail(err)  }}

调用lambda函数:

const AWS = require('aws-sdk')const region = 'bucket-region'const bucket = 'name-of-s3-bucket'const folder = 'name-of-bucket-folder/'const file1 = 'Image A.png'const file2 = 'Image B.png'const file3 = 'Image C.png'const file4 = 'Image D.png'AWS.config.update({  region: region})const lambda = new AWS.Lambda()const files = [file1, file2, file3, file4]const payload = JSON.stringify({   'region'     : region,  'bucket'     : bucket,  'folder'     : folder,  'files'      :  files,  'zipFileName': 'bla.zip'})const params = {  FunctionName : 'NAME_OF_YOUR_LAMBDA_FUNCTION',   Payload      : payload}lambda.invoke(params, function (err, data) {  if (err) console.log(err, err.stack) // an error occurred  else     console.log(data)           // successful response})

使用go来调用lambda函数:

https://docs.aws.amazon.com/s...