标签: aws-lambda

用于部署Backend的AWS服务是哪种?

我有一个网站(静态坐在s3),内容从s3提供.我打算写一个休息api(节点或对建议开放).当前端进行角度$ http调用时,例如,如果我的网站名为example.com,那么调用将是类似相对url(/ Update)的解决方案.

我不确定,我应该使用什么类型的aws服务来部署我的后端代码.

更新

我正在使用Codestar,使用Express Web服务.这是我的template.yml.和路线.代码星构建很好,但部署失败.

template.yml

    AWSTemplateFormatVersion: 2010-09-09
Transform:
- AWS::Serverless-2016-10-31
- AWS::CodeStar

Parameters:
  ProjectId:
    Type: String
    Description: AWS CodeStar projectID used to associate new resources to team members

Resources:
  HelloWorld:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.handler
      Runtime: nodejs4.3
      Role:
        Fn::ImportValue:
          !Join ['-', [!Ref 'ProjectId', !Ref 'AWS::Region', 'LambdaTrustRole']]
      Events:
        GetEvent:
          Type: Api
          Properties:
            Path: /
            Method: get
        PostEvent:
          Type: Api
          Properties:
            Path: /
            Method: post
  GetItemsBylId:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.handler
      Runtime: nodejs4.3
      Role:
        Fn::ImportValue:
          !Join ['-', [!Ref 'ProjectId', …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-ec2 amazon-web-services angularjs aws-lambda

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

Alexa日历:亚马逊Lambda本地与UTC时区不匹配

我经历了构建Alexa技能的练习,以便从日历中阅读本地事件.这一切都很好,除了每当美国东部时间晚上7点或之后的事件开始时,技能会在第二天将其读出.

这似乎是一个时区问题.我在Amazon Lambda上托管逻辑,我认为它设置为UTC.将我的Google日历设置为UTC无济于事.添加process.env.TZ = 'America/New_York'到我的JavaScript node.js代码也无济于事.

我被告知,出于隐私原因,我无法发现Alexa用户的时区.但我不需要发现技能用户的时区,因为这是一个安全的假设,他们都与我的本地事件日历,东部日光在同一时区.我需要做的就是让lambda知道第二天晚上7点到当地时间午夜之间的事件不会发生.任何想法我能做什么?谢谢.

amazon-web-services alexa node.js aws-lambda

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

使用Api Gateway和Lambda导出CSV

我想做什么:

我想要做的是有一个url,它会向调用者返回一个CSV文件,该文件本质上是一个数据导出.我希望这仍然是一个无服务器的解决方案.

我做了什么:

我用我想要的URL创建了一个AWS API Gateway.我创建了一个lambda,它将查询数据库并创建该数据的CSV字符串.该数据放在JSON对象中并返回.然后,API网关从json对象获取CSV数据,并使用适当的标头将CSV返回给调用者,以指示它是CSV和附件.从浏览器测试我会像我预期的那样自动下载.

我看到的问题:

这很有效,直到有大量的数据,我开始得到"体型太长".

我试图解决:

我做了一些谷歌搜索,我看到其他人有类似的问题.在一个解决方案中,我看到他们返回了他们创建的文件的链接.这个解决方案似乎对他们可行,因为他们有一台服务器 对于我的无服务器架构,它似乎有点棘手.我可以把文件存储到S3然后我必须返回一个链接到S3.这似乎可以工作,但感觉不像我错过配置选项.它也感觉就像通过返回s3 url来暴露实现.

我一直在寻找教程和人们做类似事情的例子,我没有找到任何东西.

我的问题:

有没有办法做到这一点?还有其他我不知道的解决方案吗?如何从较大尺寸的API网关返回文件,在本例中为CSV

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

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

使用AWS Lambda创建代理解决方案

我有一个案例,我想删除请求中的cookie并将请求发送到另一个服务器并显示对最终用户的响应.

例: client -> x.website.com -> remove cookie -> y.website.com

当前解决方案 client -> x.website.com -> ec2 instance, nginx proxy, remove cookie -> y.website.com

我想在中间删除ec2实例,因为它很昂贵.

我可以使用AWS Resources实现任何方式吗?

reverse-proxy amazon-web-services aws-lambda

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

发送SQS消息时调用Lambda

我想在每次发送SQS消息时调用lambda.我尝试使用以下模式设置Cloudwatch事件的规则:

{
  "source": [
    "aws.sqs"
  ]
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,lambda永远不会被调用.我已经确保lambda的角色具有SQS策略.我怎样才能做到这一点?

amazon-sqs amazon-web-services amazon-cloudwatch aws-lambda

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

如何访问AWS Lambda函数中的最后n个参数

我正在接收AWS IoT上的感知数据,并使用规则将这些值传递给Lambda函数.在用Python编码的Lambda函数中,我需要根据最新的n值进行计算.

访问先前参数的最佳方法是什么?

amazon-web-services aws-lambda aws-iot

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

从AWS lambda返回超过6mb的数据

我有,我想返回从AWS拉姆达数据ATLEAST 10MB价值的情况下,因为知道AWS拉姆达的限制,我们不能给予回复超过6MB以上.

任何解决方案将不胜感激?

amazon-web-services aws-lambda

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

将消息从AWS Lambda发布到AWS IoT

我正在尝试使用Nodejs将AWS Lamba的消息发布到AWS IoT。我已将项目压缩并上传到下面的AWS IoT,这是代码片段

 var awsIot = require('aws-iot-device-sdk');

 var device = awsIot.device({
  keyPath: 'keyfilepath',
  certPath: 'pem file path',
  caPath: 'root-CA.crt',
  clientId: 'iotTest7526532135',
  host: 'host id'
 });


device
  .on('connect', function() {
     console.log('connect');
     device.subscribe('topic_3');

     device.publish('topic_1', JSON.stringify({ message_id:23,Message:'HelloWorld'}));
    });

     device
     .on('message', function(topic, payload) {
console.log('message', topic, payload.toString());
 });
Run Code Online (Sandbox Code Playgroud)

我收到以下错误
“ errorMessage”:“找不到模块'aws-iot-device-sdk'”,

我知道缺少物联网sdk,我不确定如何在AWS Lambda上安装它。

任何建议都会非常有帮助

amazon-web-services node.js mqtt aws-lambda aws-iot

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

无法从我的lambda代码中添加记录到aws弹性搜索

我使用以下内容将我在dynamodb中的数据添加到弹性搜索中:

https://aws.amazon.com/it/blogs/aws/category/amazon-elasticsearch-service/?nc1=h_ls


var AWS = require('aws-sdk');
var path = require('path');

//Object for all the ElasticSearch Domain Info
var esDomain = {
region: process.env.RegionForES,
endpoint: process.env.EndpointForES,
index: process.env.IndexForES,
doctype: 'onboardingrecords'
};
//AWS Endpoint from created ES Domain Endpoint
var endpoint = new AWS.Endpoint(esDomain.endpoint);
//The AWS credentials are picked up from the environment.
var creds = new AWS.EnvironmentCredentials('AWS');

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

event.Records.forEach((record) => {
    console.log(record.eventID);
    console.log(record.eventName);
    console.log('DynamoDB Record: %j', record.dynamodb); …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-lambda

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

AWS Lambda中的API超时?

我正在尝试在AWS中创建一个lambda函数,它将创建一个新的Stripe标记:

import stripePackage from 'stripe';
const stripe = stripePackage('...');

module.exports.create = (event, context, callback) => {
    stripe.tokens.create({
      card: {
        "number": 4242424242424242,
        "exp_month": '02',
        "exp_year": '22',
        "cvc": '123'
      }
    }, (err, token) => {
      if (err) {
        console.log(err);
        callback(null, {
          statusCode: 400,
          body: "error"
        });
      }
      callback(null, {
        statusCode: 200,
        body: "ok"
      });
      console.log(token);
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,每次都会超时.我有一个出站连接的安全组,如下所示:

 Ports  Destination
 All    0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)

但是,我似乎唯一可以连接的是其他AWS服务.如何将我的Lambda函数打开到AWS外部的连接?

amazon-web-services aws-lambda serverless-framework

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