标签: aws-lambda

在AWS Lambda中将DynamoDB数据格式化为普通JSON

我正在使用AWS Lambda扫描DynamoDB表中的数据.这是我得到的回报:

{
  "videos": [
    {
      "file": {
        "S": "file1.mp4"
      },
      "id": {
        "S": "1"
      },
      "canvas": {
        "S": "This is Canvas1"
      }
    },
    {
      "file": {
        "S": "main.mp4"
      },
      "id": {
        "S": "0"
      },
      "canvas": {
        "S": "this is a canvas"
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我的前端应用程序正在使用Ember Data Rest Adapter,它不接受此类响应.有什么方法可以获得正常的JSON格式吗?有一个NPM模块被调用dynamodb-marshaler来将DynamoDB数据转换为普通的JSON.如果可能的话,我正在寻找原生解决方案.

json amazon-web-services amazon-dynamodb aws-lambda

36
推荐指数
6
解决办法
3万
查看次数

aws api gateway&lambda:多个端点/功能与单个端点

我有一个AWS api代理lamba函数.我目前使用不同的端点和单独的lambda函数:

api.com/getData --> getData
api.com/addData --> addData
api.com/signUp --> signUp
Run Code Online (Sandbox Code Playgroud)

管理所有端点和功能的过程变得很麻烦.当我将一个端点用于一个lambda函数时,是否有任何缺点,该函数根据查询字符串决定做什么?

api.com/exec&func=getData --> exec --> if(params.func === 'getData') { ... }
Run Code Online (Sandbox Code Playgroud)

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

36
推荐指数
5
解决办法
2万
查看次数

AWS Lambda:任务超时

我们已经要求我的学校项目编写一个在AWS Lambda中运行的Java代码.它应该获取特定URL的源代码,然后将其上载到S3存储桶.Java代码应该在AWS Lambda上运行.

我在Java中获取String变量的源代码.然后我有while循环尝试将String写入/ tmp目录中的文件.然后将文件上传到S3.

一切正常,但我遇到了一个特定的URL.我已经跟踪了这个问题:

try {
    BufferedWriter out = new BufferedWriter(new FileWriter("/tmp/url.txt"));
    out.write(source_code);  //Replace with the string 
    //you are trying to write  
    out.close();
}
catch (IOException e) {
    System.out.println("Exception ");
}
Run Code Online (Sandbox Code Playgroud)

最奇怪的是,当我在本地测试代码时,一切正常.文件在我的计算机上的/ tmp目录中创建,然后上传到S3存储桶.但是,当我在Lambda中运行代码时,我收到以下错误:

Task timed out after 15.00 seconds
Run Code Online (Sandbox Code Playgroud)

知道为什么Lambda在这个特定情况下无法将文件写入临时目录并且与其他人一起使用?

java amazon-web-services aws-lambda

36
推荐指数
7
解决办法
5万
查看次数

从AWS Lambda调用aws-cli

有没有办法在AWS Lambda中执行aws-cli?它似乎没有预先安装.(我通过Node.js子进程检查了"which aws",但它不存在.)

amazon-web-services aws-cli aws-lambda aws-sdk-nodejs

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

如何为Alexa的AWS lambda函数添加python库?

我按照教程使用Python创建了一个Alexa应用程序:

Python Alexa教程

我能够成功地遵循所有步骤并使应用程序工作.我现在想要修改python代码并使用外部库,例如import requests 我使用pip安装的任何其他库.如何设置我的lambda函数以包含我在本机上本地安装的任何pip包?

python pip amazon-web-services aws-lambda alexa-skills-kit

35
推荐指数
4
解决办法
6万
查看次数

你如何写入aws lambda实例的文件系统?

我没有成功写入aws lambda实例的文件系统. 文档说标准的lambda实例有512mb的可用空间/tmp/.但是,在本地计算机上运行的以下代码在lambda实例上根本不起作用:

  var fs = require('fs');
  fs.writeFile("/tmp/test.txt", "testing", function(err) {
      if(err) {
          return console.log(err);
      }
      console.log("The file was saved!");
  });
Run Code Online (Sandbox Code Playgroud)

匿名回调函数中的代码永远不会在lambda实例上调用.这有什么成功的吗?非常感谢你的帮助.

这可能是一个相关的问题.是否有可能在s3代码和我正在尝试用fs回调函数之间发生某种冲突?下面的代码是当前正在运行的代码.

console.log('Loading function');

var aws = require('aws-sdk');
var s3 = new aws.S3({ apiVersion: '2006-03-01' });
var fs = require('fs');

exports.handler = function(event, context) {
    //console.log('Received event:', JSON.stringify(event, null, 2));

    // Get the object from the event and show its content type
    var bucket = event.Records[0].s3.bucket.name;
    var key = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, ' '));
    var params …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-s3 amazon-web-services node.js aws-lambda

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

AWS Lambda:如何为具有VPC访问权限的lambda函数设置NAT网关

根据此文档,如果我需要通过VPC访问从我的Lambda函数访问Internet资源,我需要设置NAT网关.

所以我按照本指南设置了NAT网关.但是,在我需要编辑子网的路由表以添加目的地:0.0.0.0/0和目标作为我的NAT网关的id的条目的阶段,我收到一个错误

An entry with this destination already exists
Run Code Online (Sandbox Code Playgroud)

我检查并注意到,对于现有条目,目标是我的VPC的互联网网关.如果我用NAT网关ID替换该条目,我无法通过SSH从外部访问该VPC中的任何EC2实例.如何实现此VPC中所有EC2实例的情况

  • 只能通过SSH访问,其余流量被阻止
  • 能够完全访问同一VPC中的其他EC2实例
  • 可以访问此VPC的Lambda函数可以访问SQS和Kinesis等外部资源.

amazon-web-services aws-lambda

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

如何使用CloudFormation创建新版本的Lambda函数?

我正在尝试使用CloudFormation创建一个新版本的Lambda函数.

我想拥有相同Lambda函数的多个版本,以便我可以(a)指向不同版本的别名 - 比如DEV和PROD - 以及(b)能够回滚到早期版本

这是我的Lambda版本的定义:

LambdaVersion:
  Type: AWS::Lambda::Version
  Properties:
    FunctionName:
      Ref: LambdaFunction
Run Code Online (Sandbox Code Playgroud)

运行"aws cloudformation create-stack"时会创建一个版本,但随后的"aws cloudformation update-stack"命令不会执行任何操作.没有创建新的Lambda版本.

我正在尝试在将新的zip文件上传到S3然后运行"update-stack"之后创建一个新版本的Lambda函数.我可以使用CloudFormation做到吗?AWS :: Lambda :: Version真的坏了吗(如https://github.com/hashicorp/terraform/issues/6067#issuecomment-211708071所述)或者我只是没有得到什么?

更新1/11/17 亚马逊支持的官方回复:"...对于要发布的任何新版本,您需要定义一个添加(原文如此) AWS :: Lambda :: Version资源......"

AWS CloudFormation/Lambda团队,如果您正在阅读此内容 - 这是不可接受的.修理它.

amazon-web-services aws-cloudformation aws-lambda

34
推荐指数
6
解决办法
2万
查看次数

AWS:为什么我关闭后我的RDS实例会继续启动?

我在AWS上有一个RDS数据库实例,暂时将其关闭.但是,它每隔几天就会自行启动.我现在没有任何其他服务.

我的RDS日志中存在此事件:"数据库实例正在启动,因为它超过了停止的最大允许时间."

为什么我的RDS实例可以停止多长时间?我只想暂停我的项目几周,但AWS不会让我关闭我的数据库?让它闲置成本为12.50美元/月,所以我不想为此付费,而且我当然不希望AWS为我启动一个不习惯的实例.

请帮忙!

database amazon-web-services aws-lambda

34
推荐指数
1
解决办法
4405
查看次数

无服务器功能和Lambda功能之间有什么区别

我正在玩Cloudformation无服务器转换,并试图弄清楚如何以及何时使用AWS::Serverless::FunctionAWS::Lambda::Function.出于某种原因,Lambda版本用于AWS中的SAM示例.这非常令人困惑.SAM github.然后还有servlerless框架本身,它实际上是一个nodejs框架.所有这些让我非常困惑.

amazon-web-services aws-lambda serverless

34
推荐指数
3
解决办法
8644
查看次数