标签: aws-lambda

将aws lambda响应作为HTML页面获取

我怎样才能将aws lambda响应作为HTML页面获取.请提供逐步解决此问题的程序.

html response amazon-web-services aws-lambda

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

如何为AWS Lambda nodejs运行时构建单个js文件

我们正在开发一个有助于在AWS Lambda中部署和维护代码的项目/框架.我想构建/捆绑lambda函数的所有node.js代码到一个js文件中,因为:

  • 较小的代码库有助于lambda冷启动问题
  • Lambda的代码zip大小限制为50MB

我们不想创建自定义捆绑器来执行此操作,因为已经存在许多选项(systemjs,browserify,webpack等).然而,我们担心某些节点模块与捆绑器/构建器不兼容的问题.

特别aws-sdk是webpack存在已知问题,说它有浏览器支持,但我已经和浏览过aws-sdk问题的人交谈了

我们想选择一个现有的捆绑器(或2),但我们希望确保它适用于尽可能多的模块/代码.我们正在尝试为JAWS创建一个插件生态系统,所以要做到这一点非常重要(不要因为模块X使用它们而不能捆绑人员).

问题:

  1. 我如何进行捆绑/构建以满足这些约束?
  2. 我们可以向产品的消费者提供任何指导方针,以确保他们编写/使用的代码能够捆绑吗?例如:动态require()导致问题AFAIK.

javascript browserify systemjs webpack aws-lambda

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

无法使用CloudFormation在Lambda函数上创建SNS事件源

这是与我的问题相关的Cloudformation模板代码:

"SNSTopic": {
  "Type": "AWS::SNS::Topic",
  "Properties": {
    "TopicName": "JumpboxPresenceTopic",
    "DisplayName": "Jumpbox Presence Topic",
    "Subscription": [
      {
        "Endpoint": {
          "Fn::GetAtt": [
            "Lambda",
            "Arn"
          ]
        },
        "Protocol": "lambda"
      }
    ]
  }
},
"Lambda": {
  "Type": "AWS::Lambda::Function",
  "Properties": [...]
Run Code Online (Sandbox Code Playgroud)

我可以在SNS仪表板中看到该主题: 在此输入图像描述

但它不会显示在lambda函数Event Sources面板中: 在此输入图像描述

关于这一点的奇怪之处在于,如果我从SNS仪表板为同一个lambda函数创建一个新订阅,则不会创建新的订阅,因为它将完全重复.但是,现在,如果我检查Lambda仪表板中的Event Sources面板,我可以看到以下新条目: SNS: JumpboxPresenceTopic在此输入图像描述

我觉得这在亚马逊方面是一个问题,但我可能是错的.我的方法有问题还是AWS的限制?

amazon-web-services amazon-sns aws-cloudformation aws-lambda

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

如何找到lambda函数的API端点?

我有一个Lambda函数,它有一个公开的API网关端点,我可以通过AWS控制台获取该URL.但是,我想通过API调用获取该URL.无论是LAMBDA API文档,也不是API Gateway文档似乎有该信息(或者也许我已经错过了它),所以这是甚至可能摆在首位?

aws-lambda aws-api-gateway

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

从Lambda访问ElasticSearch的权限?

我正在尝试将Elasticsearch用于连接到Alexa Skills Kit的Lambda函数的数据存储.Lambda在没有Elasticsearch的情况下正常工作,但ES提供了急需的模糊匹配.

我能够从Lambda访问它的唯一方法是启用Elasticsearch全局访问,但这是一个非常糟糕的主意.我也可以通过开放访问策略或IP地址策略从我的计算机访问.有没有办法通过Lambda进行只读访问和通过IP进行读写?

在IAM上,我授予了我的Lambda角色AmazonESReadOnlyAccess.在ES方面,我试过这个,但它只适用于IP地址:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::NUMBER:root",
          "arn:aws:iam::NUMBER:role/lambda_basic_execution"
        ]
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-east-1:NUMBER:domain/NAME/*"
    },
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-east-1:NUMBER:domain/NAME/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": "MY IP"
        }
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

该论坛帖子提出了同样的问题,但未得到答复.

amazon-web-services aws-lambda amazon-elasticsearch

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

AWS Lambda RDS连接超时

我正在尝试使用连接到我的RDS数据库的Node.js编写Lambda函数.数据库正在运行,可从我的Elastic Beanstalk环境访问.当我运行该函数时,它返回一个超时错误.

尝试使用完全相同的结果将超时增加到5分钟.

我在经过一些研究后得出的结论是,这可能是一个安全问题,但无法在亚马逊的文档或这个答案中找到解决方案(这是我唯一可以找到的主题).

以下是安全细节:

  • RDS和Lambda都在同一个安全组中.
  • RDS具有所有流量入站和出站规则.
  • Lambda的角色是AmazonVPCFullAccess策略.

我的代码是:

'use strict';
console.log("Loading getContacts function");

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

exports.handler = (event, context, callback) => {

   var connection = mysql.createConnection({
        host     : '...',
        user     : '...',
        password : '...',
        port     : 3306,
        database: 'ebdb',
        debug    :  false
    });

    connection.connect(function(err) {
      if (err) callback(null, 'error ' +err);
      else callback(null, 'Success');
    });

};
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

"errorMessage": "2017-03-05T05:57:46.851Z 9ae64c49-0168-11e7-b49a-a1e77ae6f56c Task timed out after 10.00 seconds"
Run Code Online (Sandbox Code Playgroud)

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

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

从AWS lambda设置http响应头

我的API Gateway/Lamdba设置返回一个http响应头:Lamdba使用回调函数将值作为json的一部分返回,Integration Response将其映射到头中(使用integration.response.body)

使用此解决方案,值将在正文和标题中发回.

如何在不重复响应正文中的值的情况下映射Lambda响应中的标头?

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

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

消息:尝试访问aws网关api时出现"内部服务器错误"

使用Node.js创建了Lambda Hello world函数,并为Get调用创建了API GateWay触发器,尝试使用URL访问Lambda函数,得到以下错误.

消息:"内部服务器错误".

(AWS新手)

aws-lambda aws-api-gateway

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

aws-sam-local环境变量

我在这里阅读自述文件:https://github.com/awslabs/aws-sam-local

我已经写在python 3.6拉姆达及其类似HelloWorld示例这里:https://github.com/awslabs/aws-sam-local/tree/develop/samples/hello-world/python

template.yml看起来像这样:

AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: MyFunction1 API
Resources:
  MyFunction1:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: MyFunction1
      Handler: lambda_module.lambda_handler
      Runtime: python3.6
      CodeUri: lambda.zip
      MemorySize: 128
      Timeout: 10
      Policies:
        -AWSLamdbaBasicExecutionRole
      Events:
        BingLambdaEndpoint:
          Type: Api
          Properties:
            Path: MyFunction1/search
            Method: get
Run Code Online (Sandbox Code Playgroud)

我在lambda中有环境变量但在启动时无法连接它们.文档说我可以创建一个environments.json文件并在invoke命令上附加以下内容:使用--env-vars invoke参数

我的环境文件看起来像示例,我收到一个错误: Unable to find environment variable: api_key

environment.json看起来像这样:

{
  "MyFunction1": {
    "api_key": "123456789",
    "BUCKET_NAME": "testBucket"
  }
}
Run Code Online (Sandbox Code Playgroud)

命令我运行是这样的:

sam local invoke MyFunction1 --env-vars environment_variables.json -e event.json
Run Code Online (Sandbox Code Playgroud)

有人能提供额外的见解吗?

aws-lambda aws-sam-cli serverless

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

是否可以在Lambda触发器中修改AWS Cognito用户属性

看一下AWS文档,

https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html#cognito-user-pools-lambda-trigger-syntax-预注册

您在Pre Sign-up Lambda功能中有以下参数 :

"request": {
  "userAttributes": {
    "string": "string",
    ....
},
"validationData": {<validation data as key-value (String, String) pairs, from the client>}
Run Code Online (Sandbox Code Playgroud)

有没有办法修改或添加其他userAttributes事件对象?

例如:

// Modify an existing username...
event.request.userAttributes.name.ucfirst();

// Add an additional attribute...
event.request.userAttributes.nickname = "ANY_NAME";


callback(null, event);
Run Code Online (Sandbox Code Playgroud)

triggers amazon-cognito aws-lambda

18
推荐指数
4
解决办法
6596
查看次数