标签: aws-lambda

如何从AWS lambda java中的类路径加载属性文件

我编写了AWS lambda函数,因为我想从属性文件中读取数据库连接详细信息,并且在我的类路径中,但是我无法加载该文件.这是我的代码:

InputStream input = DBConfiguartion.class.getResourceAsStream("appsettings");

        Reader r = new InputStreamReader(input, "UTF-8");
        Properties prop = new Properties();
        prop.load(r);
Run Code Online (Sandbox Code Playgroud)

如果我通过普通的java控制台应用程序运行此代码,那时它正在运行,但每当我将其作为AWS lambda函数运行时, InputStream将变为null.

amazon-s3 aws-sdk aws-lambda aws-java-sdk

8
推荐指数
1
解决办法
6747
查看次数

如何使用云信息模板创建cloudwatch事件?

我使用cloudwatch预定事件在特定时间间隔后触发我的lambda函数.我想使用云形成模板在cloudwatch中添加此规则.我已经浏览了cloudformation模板文档,但我无法找到使用云形成模板配置事件的方法.任何人都可以建议如何使用云形成模板实现它.

我正在使用下面的模板.

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "Provision environment specific",
  "Resources": {
    "lambdaScheduler": {
      "Type": "AWS::CloudWatch::Event",
      "Properties": {
        "detail-type": "Scheduled Event",
        "source": "aws.events",
        "name": "TEST_EVENT_10_MINS_RULE",
        "schedule-expression": "rate(5 minutes)"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

A client error (ValidationError) occurred when calling the ValidateTemplate operation: Template format error: Unrecognized resource type: AWS::CloudWatch::Event当我使用aws cli验证它时,我收到错误消息.

amazon-web-services aws-cloudformation amazon-cloudwatch aws-lambda amazon-cloudwatchlogs

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

在无服务器框架1.0中使用path params

我想使用的路径PARAM /customer/{customerId}一个的GET请求,以便使用AWS LAMBDA查询客户:

functions:
  createCustomer:
    handler: handler.createCustomer
    events:
    - http:
        path: customer
        method: post
  readCustomer:
    handler: handler.readCustomer
    events:
    - http:
        path: customer
        method: get
Run Code Online (Sandbox Code Playgroud)

我如何定义路径参数以便使用无服务器框架1.0将其传递给我的AWS Lambda函数?

amazon-web-services aws-lambda serverless-framework

8
推荐指数
1
解决办法
5098
查看次数

MoonMail Lambda架构与无服务器

我一直在研究这个项目,因为让整个系统成为Lambda函数集合的想法似乎非常有吸引力.事实上,几年前我写了一些与MoonMail几乎完全相同的软件,并且由于某些规格已经改变而需要更新.我正在评估将我的软件移植到Lambda或只是调整使用MoonMail的东西.

我有以下问题:

在我使用Serverless的测试中,我注意到当我更改资源名称(如DynamoDb表的名称)并重新部署时,没有警告,旧表及其内容被销毁.我认为像配置文件中的额外字符这样的简单错误导致删除数据库中的所有数据是非常危险的.你是如何处理这类问题的?

关于通过SES发送电子邮件.当您达到特定帐户的发送限制时,如何处理限制?你做指数退避吗?我似乎无法在代码库中找到它.如果你能指出我在回购的一般区域发生这种情况,我将非常感激.

node.js aws-lambda serverless-framework moonmail

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

AWS Lambda:ClassNotFoundException

当前,每当尝试在AWS Lambda上测试Lambda函数时,我都会收到ClassNotFoundException。异常显示在这里:

https://i.imgur.com/nD2OUOJ.jpg

我已经在线搜索过,包括此处的以下链接:AWS Lambda:class java.lang.ClassNotFoundException,无济于事。

我正在Android Studio中工作,并创建了一个JAR文件(使用此链接:如何从Android Studio项目中制作一个.jar),用于将类上传到AWS Lambda控制台。

下面是我的项目的结构:

https://i.imgur.com/CFC8cA4.jpg

当我将JAR文件上传到AWS Lambda控制台时,“配置”选项卡如下所示:[https://i.imgur.com/s9kovF7

以前有人告诉我,这可能是因为我的JAR文件不是带有MANIFEST.MF文件的可执行JAR文件,但是我绝对有。

还有其他原因导致此错误持续出现以及如何解决?

java android aws-lambda

8
推荐指数
1
解决办法
1万
查看次数

Go程序的项目结构在AWS Lambda上运行

我在AWS Compute Blog中找到了以下代码示例:

package main

import (
    "github.com/aws/aws-lambda-go/events"
    "github.com/aws/aws-lambda-go/lambda"
)

func handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
    return events.APIGatewayProxyResponse{
        StatusCode: 200,
        Body:       "Hello World",
    }, nil
}

func main() {
    lambda.Start(handler)
}
Run Code Online (Sandbox Code Playgroud)

由于lambda.Start只接受一个处理程序而Go程序的入口点是主函数,这是否意味着一个CodeStar项目只能由一个处理程序组成?

我理解lambda函数的大小应该很小,最好处理一个功能,但似乎需要创建很多项目并且很难管理.我理解正确吗?

go aws-lambda

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

调整大小时,锐利图像库会旋转图像吗?

对于node.js 使用清晰图像调整大小库https://github.com/lovell/sharp时,图像正在旋转.

我没有代码说.rotate(),为什么它被旋转,我怎么能阻止它旋转?

我使用的是由AWS提供的无服务器,图像缩放例如: https://github.com/awslabs/serverless-image-resizing使用拉姆达在飞行中调整图像如果缩略图不存在

S3.getObject({Bucket: BUCKET, Key: originalKey}).promise()
.then(data => Sharp(data.Body)
      .resize(width, height)
      .toFormat('png')
      .toBuffer()
    )
.then(buffer => S3.putObject({
        Body: buffer,
        Bucket: BUCKET,
        ContentType: 'image/png',
        Key: key,
      }).promise()
    )
.then(() => callback(null, {
        statusCode: '301',
        headers: {'location': `${URL}/${key}`},
        body: '',
      })
    )
.catch(err => callback(err))
Run Code Online (Sandbox Code Playgroud)

原始大图:

在此输入图像描述

已调整大小的图片:请注意它已被旋转:

在此输入图像描述

amazon-s3 image-resizing node.js aws-lambda sharp

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

Lambda函数处理程序C#中的取消令牌

C#中的AWS Lambda函数处理程序是否提供取消令牌?

我已经阅读了AWS网站上的文档(https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html),但在任何提及取消的地方都看不到令牌。我还检查了ILambdaContext传递给执行方法的,但是那里什么也没有。

我以前使用过Azure Functions,它们只是将它作为本文所述的函数的另一个参数传递给了我:https : //docs.microsoft.com/zh-cn/azure/azure-functions/functions-dotnet-类别库#取消令牌

c# amazon-web-services cancellation-token aws-lambda

8
推荐指数
1
解决办法
286
查看次数

在AWS lambda函数中两次获取日志

我正在尝试创建一个集中模块来设置我的日志格式化程序,以便在我的lambda函数中的多个python模块之间共享.此功能最终将在本地内部部署设备上的AWS Greengrass上运行.

出于某种原因,当我添加自己的处理程序来格式化消息时,日志将被输出两次 - 一次是在正确的日志级别,第二次是在错误的级别.

如果我使用标准的python记录器而不设置任何处理程序,它可以正常工作,例如

main.py:

import logging

logging.debug("test1")
Run Code Online (Sandbox Code Playgroud)

cloudwatch logs:

12:28:42 [DEBUG]-main.py:38,test1
Run Code Online (Sandbox Code Playgroud)

我的目标是在我的代码上有一个格式化程序,它将这些日志消息格式化为JSON.然后它们将被摄入集中式日志记录数据库.但是,当我这样做时,我得到两次日志消息.

loghelper.py:

def setup_logging(name):

    formatter = logging.Formatter("%(name)s, %(asctime)s, %(message)s")

    handler = logging.StreamHandler(sys.stdout)
    handler.setFormatter(formatter)

    logger = logging.getLogger(name)

    if logger.handlers:
        for handler in logger.handlers:
            logger.removeHandler(handler)

    logger.setLevel(logging.DEBUG)
    logger.addHandler(handler)
    return logger
Run Code Online (Sandbox Code Playgroud)

main.py:

import logging

logger = loghelper.setup_logging('main.test_function')

def test_function():
    logger.debug("test function log statement")

test_function()
Run Code Online (Sandbox Code Playgroud)

现在运行lambda函数时,我在云监视日志中收到两次调试消息,如下所示:

cloudwatch logs:

12:22:53 [DEBUG]-main.py:5, test function log statement
12:22:53 [INFO]-__init__.py:880,main.test_function,2018-06-18 12:22:53,099, test function log statement
Run Code Online (Sandbox Code Playgroud)

请注意:

  • 第一个条目处于正确的级别,但格式错误.
  • 第二个条目报告错误的级别,错误的模块但格式正确.

我无法解释这种行为,并会对可能导致这种行为的任何想法表示感谢.我也不知道第880行存在哪个构造函数.这可能会对正在发生的事情有所了解.

参考文献: …

python logging amazon-web-services aws-lambda greengrass

8
推荐指数
1
解决办法
1863
查看次数

AWS Lambda的Unicode字符集问题

我正在使用AWS Lambda生成pdf,其中html-pdf是npm包.一切都完美无瑕,但问题在于Hindi性格.这些角色显得胡言乱语,可以理解,如附图中所示.在此输入图像描述

使用的包

  1. HTML,PDF格式
  2. EJS

我试过的事情:

我在我的本地机器上使用了基于nodejs的相同代码,它按预期工作.但不适用于Lambda(nodejs v6.10/8.10)

amazon-web-services node.js aws-sdk aws-lambda html-pdf

8
推荐指数
1
解决办法
531
查看次数