在NodeJS中使用AWS-SDK调用本地Lambda

时间:2018-08-10 09:34:46

标签: node.js amazon-web-services aws-lambda

我使用Docker和Sam在本地设置Lambda。我可以命中一个端点并在本地运行Lambda方法,但是如果我想测试以下代码,则由于我不确定如何使aws-sdk在本地环境中工作,因此必须实际部署Lambda。

    const payload = JSON.stringify({
      "bucket": process.env.AWS_S3_ENV_BUCKET,
      "region": process.env.AWS_REGION,
      "folder": 'somePath/',
      "files": ['somefile.jpg', 'anotherfile.jpg'],
      "zipFileName": 'zipZippedFile.zip'
    })

    const params = {
      FunctionName: 'zippidyDoDah',
      Payload: payload
    }

    global.Lambda.invoke(params, function (error, data) {
      console.log('error: ', error)
      console.log('data: ', data)
    })
    

有人对此有任何见识吗?

1 个答案:

答案 0 :(得分:1)

如果您安装AWS Command Line Interface并运行aws configure,则可以输入您希望执行此代码的用户的访问密钥和秘密密钥。这些凭据存储在~/.aws/credentials中。您应该能够将AWS CLI和这些凭证注入到您的docker容器中,并且(假设它们是您的[default])应该由您的流程自动获取。您还应该阅读有关AWS CLI Profiles的信息。