标签: aws-lambda

没有为方法定义集成 - 选择将部署API的阶段

我正在使用AWS API Gateway和AWS Lambda.在尝试部署API时,我经常会遇到此类错误消息.错误消息表示选择部署阶段.但我仍然选择并尝试部署!但同样的错误发生!

弹出错误消息的屏幕截图

在这个API中,我有多个具有多种方法的资源.以前我成功地以相同的方式部署这个相同的API.但现在我无法部署它.

请有人帮我修理它.另外:我不使用AWS CLI工具,只使用AWS Web仪表板.

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

15
推荐指数
2
解决办法
6616
查看次数

VPC删除中的Lambda需要更多时间

我使用云形成在VPC中创建了一个lambda的堆栈.当我尝试删除整个堆栈时,需要40-45分钟的时间.

我的Iam角色具有以下权限:

Action:                            
          - ec2:DescribeInstances
          - ec2:CreateNetworkInterface
          - ec2:AttachNetworkInterface
          - ec2:DescribeNetworkInterfaces
          - ec2:DeleteNetworkInterface
          - ec2:DetachNetworkInterface
          - ec2:ModifyNetworkInterfaceAttribute
          - ec2:ResetNetworkInterfaceAttribute
          - autoscaling:CompleteLifecycleAction
          - iam:CreateRole
          - iam:CreatePolicy
          - iam:AttachRolePolicy
          - iam:PassRole
          - lambda:GetFunction
          - lambda:ListFunctions
          - lambda:CreateFunction
          - lambda:DeleteFunction
          - lambda:InvokeFunction
          - lambda:GetFunctionConfiguration
          - lambda:UpdateFunctionConfiguration
          - lambda:UpdateFunctionCode
          - lambda:CreateAlias
          - lambda:UpdateAlias
          - lambda:GetAlias
          - lambda:ListAliases
          - lambda:ListVersionsByFunction
          - logs:FilterLogEvents
          - cloudwatch:GetMetricStatistics
Run Code Online (Sandbox Code Playgroud)

如何改善堆栈的删除时间?

aws-cloudformation aws-lambda

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

我们如何在 AWS 控制台中按“最新”对 CloudWatch 流日志进行排序?

有没有办法在 AWS 控制台中按“最近”到最旧来过滤 CloudWatch 日志流?我不得不向下滚动得难以置信的远才能看到我最近的日志消息。

我尝试过按 30 秒 - 5 分钟进行过滤,现在可以使用,我只是认为可能有一种更简单的方法来列出所有日志流,这些日志流从最近的顶部而不是最旧的开始。

amazon-web-services aws-lambda amazon-cloudwatchlogs

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

Lambda 服务抛出错误执行角色无权在 SQS 上调用 receiveMessage

我有一个 SQS 队列,我想在消息到达队列时触发 lambda 函数。我已经编写了 lambda 函数,当我单击“测试”按钮时它可以成功运行。当我转到 SQS 并尝试将其配置为 lambda 触发器时,我看到以下错误消息。

我使用相同的用户和角色创建了 SQS 队列和 lambda 函数,并且 lambda 函数对同一角色具有执行权限。

我还添加了 SQS receiveMessage 权限,但它似乎没有什么区别,除非我在设置时做错了什么。

什么可能导致问题?

谢谢你的帮助

在此处输入图片说明

amazon-sqs amazon-web-services aws-lambda

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

当我的代码中没有语法错误时,为什么会出现 UserCodeSyntaxError?

我目前正在 nodejs 中创建一个 Dialogflow 聊天机器人,在部署我的代码时,我收到一条错误消息。我试图取消对大多数事情的注释,只留下基本功能代码,但我仍然无法让它工作。我不完全确定这里的问题是什么

'use strict';
  import {getAPIresponse} from "./api/index.js";

// const http = require('https');

// const respond = fulfillmentText => {
//   return {
//     statusCode: 200,
//     body: JSON.stringify({
//       fulfillmentText
//     }),
//     headers: {
//       "Content-Type": "application/json"
//     }
//   }
//
// };

module.exports.dining = async (event,context) => {


    const incoming= JSON.parse(event.body).queryResult;

    console.log(`INCOMING: ${incoming.parameters.hall}`);

    const {
      displayName
    } = incoming.intent;

    console.log(displayName);


    //const menu = getAPIresponse('https://esb.prod.uds.harvard.edu/api/dining/2.0/','events?locationId=36');
    //console.log(menu);
    // if(displayName === 'dining'){
    //   if(incoming.parameters.meal === 'breakfast'){ …
Run Code Online (Sandbox Code Playgroud)

node.js aws-lambda serverless

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

AWS Lambda@Edge 不记录

我已将查看器请求和源响应 Lambda 函数部署到 CloudFront 分配,这些函数正在触发,但未记录到 CloudWatch。我花了大量时间研究这个主题,并浏览了其他帖子的所有建议,包括:

  • 检查所有区域的日志,因为我知道它们 CloudWatch 日志将在 labmda@edge 函数运行的区域中创建。没有登录任何一个。
  • 我已检查 AWSServiceRoleForCloudFrontLogger 角色是否存在。

有趣的是,当我故意将错误编码到一个 Lambda 函数中时,我确实在一个名为/aws/cloudfront/LambdaEdge/<cloudfront distribution id>包含错误日志的组中创建了日志,但是这里的 console.log 语句没有输出。

在我的一生中,我无法弄清楚如何将所有请求(成功和失败)记录到 CloudWatch,其中包含使用 console.log() 的调试语句。

AWSServiceRoleForCloudFrontLogger 包含一个策略AWSCloudFrontLogger:

    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:/aws/cloudfront/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

编辑:

以下是 AWS 支持建议的 AWS 角色。我可以确认这有效并解决了问题。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:*:*"
            ]
        }
    ]
}```
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-cloudfront aws-lambda aws-lambda-edge

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

无法使用模拟 Lambda 测试工具启动 lambda

我使用 AWS lambda 已有几个月了。我当时正在使用 lambda,最终一切都很好。第二天我回来处理它,但我什至无法让 Visual Studio 使用模拟 Lambda 测试工具启动应用程序。

我最终创建了一个空的 lambda,它只返回输入(AWS 为您提供的标准项目代码作为模板),甚至无法运行。我按下播放按钮启动模拟 Lambda 测试工具,它看起来会运行几秒钟,然后关闭。命令窗口甚至没有弹出。

这是模板项目中的代码。

public string FunctionHandler(string input, ILambdaContext context)
{
    return input?.ToUpper();
}
Run Code Online (Sandbox Code Playgroud)

这就是我在 VS 的输出窗口中得到的所有内容:

目标进程退出,但未引发 CoreCLR 启动事件。确保目标进程配置为使用 .NET Core。如果目标进程不在 .NET Core 上运行,则可能会出现这种情况。程序“[16700] dotnet-lambda-test-tool-2.1.exe:Program Trace”已退​​出,代码为 0 (0x0)。程序“[16700] dotnet-lambda-test-tool-2.1.exe”已退出,代码为-2147450726 (0x8000809a)。

我尝试过重新安装AWS工具包,也尝试过重新安装Visual Studio。这是 VS 2017 和 VS 2019 的问题。我刚刚安装了 2019,看看是否可以解决该问题。任何帮助,将不胜感激。

c# aws-lambda

15
推荐指数
4
解决办法
3万
查看次数

如何在 Terraform 中使用 AWS 提供的 lambda 层?

我正在尝试在 AWS Lambda 层上运行 python 函数,但我没有找到有关 terraform 的任何文档来使用 AWS 提供的 lambda 层。如何使用 AWS 提供的 lambda 层 AWSLambda-Python27-SciPy1x和运行时Python 2.7?

#----compute/lambda.tf----
data "archive_file" "lambda_zip" {
    type          = "zip"
    source_file   = "index.py"
    output_path   = "check_foo.zip"
}

resource "aws_lambda_function" "check_foo" {
  filename         = "check_foo.zip"
  function_name    = "checkFoo"
  role             = "${aws_iam_role.iam_for_lambda_tf.arn}"
  handler          = "index.handler"
  source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"

  # i want to use lambda layer - AWSLambda-Python27-SciPy1x and run this function on it
  runtime          = "python2.7"
}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-lambda terraform terraform-provider-aws

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

Lambda 中的 aws-sdk 如何自动获取凭证?

如果您在 Lambda 运行时中使用 aws-sdk,则无需向开发工具包提供凭证,因为它会自动从该 Lambda 函数的执行角色获取凭证。

我很好奇这在幕后是如何工作的?SDK 是否从某些环境变量中读取凭据?它实际上是如何从 Lambda 运行时获取凭证的?

amazon-web-services amazon-iam aws-lambda

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

如何解决-无法在AWS lambda控制台中的模块外部使用导入语句

我正在 AWS lambda 控制台中尝试此操作。我已经在终端上安装了 npm install @aws-sdk/client-kinesis 并使用压缩文件并创建了一个具有 client-kinesis 的 lambda 层。

如果使用以下内容就可以了!

 // ES5 example
const { KinesisClient, AddTagsToStreamCommand } = require("@aws-sdk/client-kinesis");
exports.handler = async (event) => {
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};
Run Code Online (Sandbox Code Playgroud)

如果我使用以下内容,则会出现错误 -

 // ES5 example
const { KinesisClient, AddTagsToStreamCommand } = require("@aws-sdk/client-kinesis");
exports.handler = async (event) => {
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response; …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js aws-lambda

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