【问题标题】:AWS invoke local Lambda Endpoint with Node.js SDKAWS 使用 Node.js 开发工具包调用本地 Lambda 端点
【发布时间】:2021-01-20 12:56:28
【问题描述】:

SAM documentation 中显示了部署您自己的 lambda 端点并使用 Python SDK 调用它的可能性。

您只需使用 sam local start-lambda 启动本地 lambda 端点,然后继续

# USING AWS SDK
 -------------
 #You can also use the AWS SDK in your automated tests to invoke your functions programatically.
 #Here is a Python example:

     self.lambda_client = boto3.client('lambda',
                                  endpoint_url="http://127.0.0.1:3001",
                                  use_ssl=False,
                                  verify=False,
                                 config=Config(signature_version=UNSIGNED,
                                               read_timeout=0,
                                                retries={'max_attempts': 0}))
    self.lambda_client.invoke(FunctionName="HelloWorldFunction")

我现在的问题是,如何使用 Javascript SDK 做同样的事情?我总是收到关于缺少区域、未找到主机和不受支持的参数的不同错误。 你有我的解决方案吗?

【问题讨论】:

  • 而不是说“我在尝试时遇到这些错误”显示实际代码和实际错误消息,以便我们提供帮助。我们是来帮助解决问题的,我们不是来提供免费的代码转换服务的。
  • 是的,我知道,我昨天有点着急。通常我会提供足够的代码来更好地理解我的问题。我发誓要改进。

标签: javascript node.js amazon-web-services aws-lambda serverless-application-model


【解决方案1】:

AWS JavaScript SDK 需要区域和凭证才能发出请求。但是对于本地端点,您可以使用任意值。

以下示例对我有用:

const AWS = require('aws-sdk');

const lambda = new AWS.Lambda({
  apiVersion: '2015-03-31',
  endpoint: 'http://127.0.0.1:3001',
  sslEnabled: false,
  region: 'us-east-1',
  accessKeyId: 'any',
  secretAccessKey: 'any'
});

lambda.invoke({
  FunctionName: 'HelloWorldFunction'
}, (err, res) => {
  console.log(res);
});

【讨论】:

  • 非常感谢。我的代码看起来几乎一样,但有些东西根本不起作用。
猜你喜欢
  • 1970-01-01
  • 2022-07-14
  • 1970-01-01
  • 2019-05-04
  • 2021-10-29
  • 1970-01-01
  • 2017-05-02
  • 2023-03-26
  • 2017-07-27
相关资源
最近更新 更多