【问题标题】:Invoke Local Lambda using AWS-SDK in NodeJS在 NodeJS 中使用 AWS-SDK 调用本地 Lambda
【发布时间】:2018-08-11 19:51:55
【问题描述】:

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

    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)
    })
    

有人对此有任何见解吗?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • Jarred,您似乎在建议我可以在我的计算机上本地为 AWS Lamba 方法创建一个新的 AWS CLI 配置文件。这是否意味着我将拥有不同的区域、密钥等来在本地运行 Lamba?我想我可能没有正确理解某些内容。
    • 您的区域将与您部署的名为“zippidyDoDah”的 lambda 相同。在本地(或在 docker conainter 内)设置您的凭证将允许您从本地调用在 AWS 中运行的 lambda 'zippidyDoDah'。这有帮助吗?
    • 这很有帮助!当我重新开始工作时,我将为将来需要帮助的人发布更详细的解决方案。非常感谢!
    猜你喜欢
    • 2022-01-17
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多