标签: aws-lambda

测量 AWS Lambda 启动持续时间

我目前正在收集和记录我的函数的性能指标,我缺少的唯一指标是启动持续时间(我的函数非常大,压缩了大约 35MB)。我真的需要知道启动需要多长时间,更重要的是,它发生的频率(我感觉它发生的频率更高,因为我的并发执行限制已经提高)。

有没有办法在 Lambda 中检索这些信息?或者有人可以想到通过例如映射模板传递 API 网关调用的当前时间戳的可能性,以便我可以自己计算启动时间?

amazon-web-services aws-lambda aws-api-gateway

2
推荐指数
2
解决办法
1682
查看次数

在 AWS API Gateway 中,如何在 Lambda(节点)中包含阶段参数作为事件变量的一部分?

我有一个名为“环境”的阶段变量设置。

我想将它POST作为 JSON 的一部分在请求中传递。

例子:

阶段变量

  • 环境:“发展”

JSON

{
  "name": "Toli",
  "company": "SomeCompany"
}
Run Code Online (Sandbox Code Playgroud)

event 变量应该看起来像;

{
  "name": "Toli",
  "company": "SomeCompany",
  "environment": "development"
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能想到的最好的是以下映射模板(在集成请求下):

{
    "body" : $input.json('$'),
    "environment" : "$stageVariables.environment"
}
Run Code Online (Sandbox Code Playgroud)

然后在节点我做

exports.handler = function(event, context) {
    var environment = event.environment;
    // hack to merge stage and JSON
    event = _.extend(event.body, {
      environment : environment
    });
    ....
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-lambda aws-api-gateway

2
推荐指数
1
解决办法
1167
查看次数

在 ruby​​ 代码中调用 AWS lambda 函数

我是 AWS 的新手,并试图弄清楚如何使用 ruby​​ 调用 lambda 函数。有人可以向我提供示例代码以使用 ruby​​ 调用 AWS lambda 函数吗

谢谢

编辑1:尝试代码后,我收到以下错误

nil:NilClass 的未定义方法“匹配”

这是我的代码:

require 'aws/decider'
require 'aws-sdk'

class U_Act
extend AWS::Flow::Activities
activity :b_u do
    {
        version: "1.0"
    }
end

def b_u(c_id)
    lambda=Aws::Lambda::Client.new(
    access_key_id: “XxXXXXXXXXX”,
    secret_access_key: “XXXXXXXXXX”
        )
        resp = lambda.invoke(
    function_name: “s_u_1” # required
    )
        print "#{resp}"
end
Run Code Online (Sandbox Code Playgroud)

结尾

ruby amazon-web-services aws-lambda

2
推荐指数
1
解决办法
2081
查看次数

批量大小 - Lambda / Kinesis

我有一个由 Kinesis 流触发的 lambda。考虑到我已将批处理大小设置为 5,流会在发送 5 条消息时触发 lambda 吗?还是会触发 5 个不同的 lambda 线程?

amazon-web-services aws-lambda

2
推荐指数
1
解决办法
3851
查看次数

AWS 发布/订阅消息模式

有人可以向我解释使用 SNS -> Lambda 与 SNS -> SQS -> Lambda 的优缺点。

我正在寻找为发布/订阅微服务消息传递设置架构,但是在每个 Lambda 前面都有一个队列似乎过多。

amazon-sqs amazon-web-services microservices aws-lambda

2
推荐指数
1
解决办法
1968
查看次数

使用 AWS API Gateway 进行 API 版本控制

我在使用 API Gateway + Lambda 实现可行的版本控制方案时遇到问题。我的要求是在 API 级别进行主要版本控制,然后在服务级别进行次要版本控制。我的环境也分布在各个帐户中,因此暂存不是 env 传播的选项。有没有人使用 AWS API Gateway 成功实现 API 管理?

amazon-web-services aws-lambda api-versioning aws-api-gateway

2
推荐指数
1
解决办法
4826
查看次数

How to trigger lambda with some delay when message published to SQS?

I have a lambda configured to be triggered when messages are published to SQS queue. Here is the SAM template for deployment.

  MyQueue:
    Type: AWS::SQS::Queue
    Properties:
        VisibilityTimeout: 180
        DelaySeconds: 90

  MyLambda:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: ../pathToCode
      Handler: index.handler
      Events:
        MySQSEvent:
          Type: SQS
          Properties:
              Queue: !GetAtt MyQueue.Arn
Run Code Online (Sandbox Code Playgroud)

I am using DelaySeconds property of AWS::SQS::QUEUE which apparently doesn't work. My lambda get executed as soon as the message is published to queue. How can I put delay in it?

triggers delay amazon-sqs aws-lambda aws-sam

2
推荐指数
2
解决办法
650
查看次数

如何通过IP限制AWS Lambda或API网关?

我目前正在尝试使用S3静态网站,API Gateway和AWS Lambda设计无服务器应用程序。我想将此网站公开,所以每个用户没有API密钥。

我想防止将这些端点滥用到非常低的水平,例如给定的公共IP每5秒发出1个请求。

AWS Shield或其中任何一种服务都可能吗?

throttling amazon-web-services aws-lambda aws-api-gateway

2
推荐指数
2
解决办法
356
查看次数

.Net Core(2.1)-Lambda函数可以正常工作,而在2.2中却不能工作吗?

我使用.Net Core 2.1创建了一个简单的空AWS Lambda函数:

在此处输入图片说明

这是文件夹结构:

在此处输入图片说明

(这是csproj)

还有一个FunctionHandler,它获取DI并调用一些虚拟方法:

在此处输入图片说明

现在运行“ Mock Lambda测试工具”,我们可以看到它有效:

在此处输入图片说明

那么问题出在哪里呢?

我在这里阅读到支持2.2:

这意味着您现在可以使用.NET Core 2.2和.NET Core 3.0预览编写Lambda函数。Amazon.Lambda.RuntimeSupport可作为GitHub上的源代码或NuGet包提供。

因此,我创建了一个新的空lambda项目,但使用2.2:

在此处输入图片说明

相同的代码。但是现在当我运行“ Mock Lambda测试工具”时,出现了一个错误:

AWS .NET Mock Lambda测试工具(0.9.2)发生未知错误,导致进程退出:无法在E:\ JenkinsWorkspaces \ Lam中的Amazon.Lambda.TestTool.Runtime.LocalLambdaRuntime.Initialize(String directory)上找到deps.json文件。 \ E:JenkinsWorkspaces \ Lam \ LambdaSandboxCoreCLRApi \ Tools \ LambdaSandboxCoreCLRApi \ Tools \ LambdaTestTool \ Amazon.Lambda.TestTool \ Runtime \ LocalLambdaRuntime.cs:Amazon.Lambda.TestTool.Program.Main(String [] args)处的第50行\ Amazon.Lambda.TestTool \ Program.cs:line 46按任意键退出

这是错误:

在此处输入图片说明

题:

这是为什么?我deps.json在2.1中没有任何文件。

那么,为什么在2.2中需要它?另外,此路径在错误中显示的是什么:E:\JenkinsWorkspaces...?我没有詹金斯,也没有类似的东西。

c# amazon-web-services .net-core aws-lambda

2
推荐指数
1
解决办法
412
查看次数

带有selenium-webdriver的AWS Lambda Node.js 10.x运行时错误

几天前,我们收到了有关“ Lambda操作通知”的通知,将我们的Node.js 8.10运行时更新为Node.js 10.x运行时。

响应此通知,我们在开发系统中安装了Node.js版本v10.16.3,并测试了现有代码。我们发现代码在我们的开发系统中运行良好,但是当我们在带有Node.js 10.x运行时的AWS Lambda中测试相同的代码时,出现以下错误:

2019-10-28T12:03:31.771Z 8e2472b4-a838-4ede-bc70-a53aa41d9b79 INFO错误:服务器在EarlyTermination.catch.e(/ var / task / node_modules / selenium-webdriver / remote / index。 js:251:52)在process._tickCallback(内部/进程/next_tick.js:68:7)

'aws-sdk','selenium-webdriver'npm软件包和google chrome二进制文件是我们项目中唯一使用的依赖项。

我们的项目具有以下文件结构。

/var/task/
??? index.js
??? lib
?   ??? chrome
?   ??? chromedriver
?   ??? libgconf-2.so.4
?   ??? libORBit-2.so.0
?   ??? libosmesa.so
??? node_modules
    ??? selenium-webdriver
    ??? ...
Run Code Online (Sandbox Code Playgroud)

由于此代码不会在我们的开发系统中引发任何错误,因此我们怀疑它与新的运行时有关。

我们尝试使用setChromeBinaryPath()设置二进制路径

这是我们正在使用的代码。调用build()方法时发生错误。

var webdriver = require('selenium-webdriver');
var chrome = require('selenium-webdriver/chrome');
var builder = new webdriver.Builder().forBrowser('chrome');
var chromeOptions = new chrome.Options();
const defaultChromeFlags = [
    '--headless',
    '--disable-gpu',
    '--window-size=1280x1696', // …
Run Code Online (Sandbox Code Playgroud)

node.js selenium-chromedriver selenium-webdriver aws-lambda

2
推荐指数
1
解决办法
132
查看次数