标签: serverless

如何在 serverless.yml 中配置 eventbridge 规则(使用无服务器框架)以在特定时间调用 lambda

我们已经在 AWS eventbridge 上运行了 python lambda 函数,该函数是使用控制台手动配置的,以便每天晚上 9 点触发 lambda。目前,我们还有 eventbridge 的规则 arn。

计划:

因此,我们正在将所有内容迁移到无服务器框架,以自动化整个 lambda 部署,并使用 serverless.yml 配置 eventbridge 以在晚上 9 点调用 lambda。

谁能告诉我该怎么做?

示例代码:

functions:
  myFunction:
    handler: index.handler
    events:
      - eventBridge:
          --------
          --------
          --------
Run Code Online (Sandbox Code Playgroud)

aws-lambda serverless-framework serverless aws-serverless aws-event-bridge

4
推荐指数
1
解决办法
6609
查看次数

如何在没有 lambda 的情况下访问/调用 sagemaker 端点?

根据 aws 文档,api 网关中的最大超时限制小于 30 秒。因此,如果请求/响应需要超过 30 秒,则将 sagemaker 端点与 api 网关连接起来就没有意义。有什么解决方法吗?在 api 网关和 sagemaker 端点之间添加 lambda 将增加更多时间来处理请求/响应,这是我想避免的。此外,还会增加 lambda 冷启动时间,并且 sagemaker 无服务器端点构建在 lambda 之上,因此也会增加冷启动时间。有没有一种方法可以调用无服务器 sagemaker 端点,而无需这些开销?

serverless amazon-sagemaker

4
推荐指数
1
解决办法
4600
查看次数

在无服务器lambda中返回HTTP错误代码的正确方法是什么

我有一个用Node.JS编写的无服务器lambda函数.

返回错误代码的最佳/正确方法是什么?

我现在使用的模式(它的工作原理!)是:

module.exports.endpoint = (event, context, callback) => {
    const response = {
        statusCode: 404,
        body: JSON.stringify({ message: 'Hello World!' })
    };
    callback(null, response);
}
Run Code Online (Sandbox Code Playgroud)

当我拨打电话时,例如从POSTMAN到我的终端,我得到:

Status: 404 Not Found正是我所期待的.

而且,在日志中我可以看到:

Serverless: GET / (?: get)
Serverless: [404] {"statusCode":404,"body":"{\"message\":\"Hello World!\"}"}
Run Code Online (Sandbox Code Playgroud)

这很好用.

令我困扰的是,我正在传递null错误.看看其他一些教程/示例我发现了以下模式:

https://aws.amazon.com/blogs/compute/error-handling-patterns-in-amazon-api-gateway-and-aws-lambda/

https://serverless.com/framework/docs/providers/aws/events/apigateway/

callback ("the sky is falling!");

callback("[BadRequest] Validation error: Missing field 'name'");

callback("[404] Not Found");

callback(new Error('[404] Not found'));

callback(JSON.stringify(myErrorObj));

所有这些都很有意义,你可以指定HTTP状态代码 - 但我最终获得的是HTTP状态代码200.当我查看日志时,我可以看到错误是在200之后:

Serverless: GET / (?: get)
Serverless: …
Run Code Online (Sandbox Code Playgroud)

node.js aws-lambda aws-api-gateway serverless-framework serverless

3
推荐指数
1
解决办法
4260
查看次数

使用DeletionPolicy保留创建的无服务器服务更新Dynamodb表

我在使用无服务器框架时遇到一些问题,因为我不小心在另一个服务上使用了相同名称的服务。

An error occurred: tableX - TableX already exists.

假设我有两个“ serverless.yml ”文件,两个文件的服务名称相同。其中一个(我们称其为“ test1 ”)具有资源(DynamoDB表),而另一个则没有(“ test2 ”)。像以下片段一样:

测试1

service: sandbox-core
provider:
  name: aws
  stage: core
  runtime: nodejs6.10
  region: sa-east-1
  memorySize: 128
  timeout: 300

resources:
  Resources:

    table3:
      Type: 'AWS::DynamoDB::Table'
      DeletionPolicy: Retain
      Properties:
        TableName: SandboxTable3
        AttributeDefinitions:
          -
            AttributeName: provider
            AttributeType: S
          -
            AttributeName: appId
            AttributeType: S
        KeySchema:
          -
            AttributeName: provider
            KeyType: HASH
          -
            AttributeName: appId
            KeyType: RANGE

        ProvisionedThroughput:
          ReadCapacityUnits: 1
          WriteCapacityUnits: 1

    table4:
      Type: 'AWS::DynamoDB::Table'
      DeletionPolicy: Retain
      Properties:
        TableName: SandboxTable4
        AttributeDefinitions:
          -
            AttributeName: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation amazon-dynamodb serverless-framework serverless

3
推荐指数
1
解决办法
1840
查看次数

使用SAM与无服务器框架有哪些优缺点?

我想知道使用/探索更多的方法,我目前正在探索选择最佳/合适的框架来构建AWS Lambda上的微服务的选项,并且canary部署是一个巨大的功能(SAM支持它,但现在没有服务器).以下是我的问题:

  1. 一般来说,选择SAM而无服务器的优缺点是什么,反之亦然?
  2. 你能在serverless.yaml中写SAM吗?像SAM有一些有用的功能,如果我们可以在无服务器中使用它们会很棒

谢谢

aws-lambda serverless-framework serverless

3
推荐指数
1
解决办法
2844
查看次数

AWS-无服务器脱机框架上是否提供API密钥?

我使用无服务器脱机开发Web项目。

我需要API密钥才能访问无服务器 AWS Lamda上的资源。

我的服务提供者都有一个serverless.yml 。

Postman中,我访问了我的路由(http://127.0.0.1:3333/segments/UUID/test),并且没有任何错误(如Forbidden message),Lambda已执行...

test:
  handler: src/Api/segment.test
  events:
    - http:
        path: segments/{segmentUuid}/test
        method: post
        request:
          parameters:
            paths:
              segmentUuid: true
        private: true
Run Code Online (Sandbox Code Playgroud)

该路由不受私有保护。

yaml aws-lambda serverless-framework serverless serverless-framework-offline

3
推荐指数
1
解决办法
756
查看次数

持久功能中只有扇出(忘了)

我有一个具有2个功能和一个存储队列的现有功能应用程序。F1由服务总线主题中的消息触发。对于收到的每个味精,F1计算一些子任务(T1,T2,...),这些子任务必须以不同的延迟量执行。例如-T1将在3分钟后触发,T2将在5分钟后触发,依此类推。F1将消息发布到具有适当可见性超时(以模拟延迟)的存储队列中,并且只要队列中可见消息,就会触发F2。一切正常。

我现在想将此应用程序迁移为使用“耐用功能”。F1现在仅启动协调器。协调器代码如下:

    public static async Task Orchestrator([OrchestrationTrigger] DurableOrchestrationContext context, TraceWriter log)
    {
        var results = await context.CallActivityAsync<List<TaskInfo>>("CalculateTasks", "someinput");
        List<Task> tasks = new List<Task>();
        foreach (var value in results)
        {
            var pnTask = context.CallActivityAsync("PerformSubTask", value);
            tasks.Add(pnTask);
        }

        //dont't await as we want to fire and forget. No fan-in!
        //await Task.WhenAll(tasks);
    }

    [FunctionName("PerformSubTask")]
    public async static Task Run([ActivityTrigger]TaskInfo info, TraceWriter log)
    {
         TimeSpan timeDifference = DateTime.UtcNow - info.Origin.ToUniversalTime();
         TimeSpan delay = TimeSpan.FromSeconds(info.DelayInSeconds);
         var actualDelay = timeDifference > delay ? TimeSpan.Zero : delay …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-functions serverless azure-durable-functions

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

怎么跑 AWS Lambda服务器中的Rails Web应用程序

AWS(亚马逊网络服务)推出了无服务器计算,通常称为AWS Lamda,我们可以将资产存储在S3中,然后部署lambda函数来处理我们的业务逻辑.Lamda将支持ruby脚本.

有没有办法在Lambda服务器中运行像rails或Sinatra这样的动态Web框架?

ruby-on-rails amazon-web-services aws-lambda serverless

3
推荐指数
1
解决办法
933
查看次数

允许Lambda访问无服务器配置中的特定s3存储桶

如何允许特定的lambda访问serverless.yml中的特定s3存储桶?

例如,我正在使用无服务器将文件上传功能移植到lambda。要将文件上传到特定的s3存储桶,我需要允许lambda访问该s3存储桶。如何在serverless.yml中执行此操作?

amazon-s3 amazon-web-services aws-lambda amazon-policy serverless

3
推荐指数
1
解决办法
2279
查看次数

如何从AWS SAM获取堆栈输出?

我想对我的无服务器项目执行自动集成测试。为此,我需要以某种方式获取api端点。已经有用于Serverless框架的插件serverless-stack-output服务。但是我想知道在部署应用程序后如何通过AWS SAM实现类似的目标?

同时,如果我能以某种方式获取我的api的基本URL以及各个端点,那么我就可以连接它们并针对它们执行测试。

aws-sam-cli serverless aws-sam

3
推荐指数
1
解决办法
1287
查看次数