标签: serverless

AWS Lambda函数错误:找不到模块“lambda”

我正在尝试使用无服务器在 AWS 中部署 REST API。节点版本 14.17.5。

我的目录结构:

在此输入图像描述

当我成功部署上述内容时,我在尝试访问 api 时收到以下错误。

2021-09-28T18:32:27.576Z    undefined   ERROR   Uncaught Exception  {
    "errorType": "Error",
    "errorMessage": "Must use import to load ES Module: /var/task/lambda.js\nrequire() of ES modules is not supported.\nrequire() of /var/task/lambda.js from /var/runtime/UserFunction.js is an ES module file as it is a .js file whose nearest parent package.json contains \"type\": \"module\" which defines all .js files in that package scope as ES modules.\nInstead rename lambda.js to end in .cjs, change the requiring code to use import(), …
Run Code Online (Sandbox Code Playgroud)

node.js aws-lambda serverless

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

Vercel Edge Functions 在本地工作,并在尝试使用“主机名重写”时在生产中给出 404

我正在尝试使用 Vercel next.js 中的新边缘函数,但它在生产中不起作用,总是给出 404 错误。

我按照这个例子做了,但没有任何效果。

也许是因为我使用的是 i18n?

我的_middleware.js文件如下所示:

import {NextResponse } from 'next/server'

export default function middleware(req) {
    const { pathname } = req.nextUrl
    let hostname = req.headers.get('host')


if (
    !pathname.includes('.') && // exclude all files in the public folder
    !pathname.startsWith('/api') // exclude all API routes
) {
    if (
        !hostname.includes('example.vercel.app') &&
        hostname !== 'example.com' &&
        hostname !== 'localhost:3000'
    ) {
        return NextResponse.rewrite(`/_sites/${hostname}${pathname}`)
    }
}
}
Run Code Online (Sandbox Code Playgroud)

在页面下我使用这个结构:

/pages
 /_sites
  [sites]
    index.js
Run Code Online (Sandbox Code Playgroud)

请帮我找到解决方案。

url-rewriting next.js serverless vercel

5
推荐指数
0
解决办法
1546
查看次数

无服务器框架无服务器离线启动获取请求时出现错误找不到模块“node:url”(Lambda AWS)

我有以下问题...事实证明我无法通过 Nodejs 的无服务器框架中的无服务器离线插件在本地测试我的 aws lambda 函数。无法执行简单的 GET 请求。

我可以使用serverless deploy命令部署到 aws lambda,但为了团队获得更好的开发体验,我们需要使用 serverless-offline 进行本地部署,我遵循了本指南https://fauna.com/blog/develop-using-serverless -offline,但是当我在成功运行命令后执行简单的获取请求时卡住了serverless offlineserverless offline这是我成功 运行时得到的无服务器离线命令输出

但是当我通过邮递员对链接执行获取请求时,http://localhost:3000/出现以下错误

获取请求错误

它基本上说找不到节点:url 模块,但我做了 npm install url,但仍然抛出同样的错误。我将在下面插入项目树和文件:

无服务器 hello world 树结构

处理程序.js

//"use strict";

console.log("AJAJAJAJAJAJAJAJAJAAJAJ");

console.log("Printing module");
console.log(module.exports);

module.exports.hello = async (event) => {
  console.log("whaaaaat");
  return {
    statusCode: 200,
    body: JSON.stringify(
      {
        message: "Go Serverless v3.0! Your function executed successfully!",
        input: event,
      },
      null,
      2
    ),
  };
};
Run Code Online (Sandbox Code Playgroud)

无服务器.yml

org: ortizjorge97
app: aws-node-http-api-project
service: aws-node-http-api-project
frameworkVersion: '3' …
Run Code Online (Sandbox Code Playgroud)

node.js aws-lambda serverless-framework serverless serverless-offline

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

调用 Vercel 无服务器函数时 Stripe Webhook 返回 308 错误

我已经使用 Stripe 设置了一个 Webhook,它在触发时调用无服务器函数。

该函数的目的是在调用时更新我的​​数据库中的条目,表明用户已注册高级帐户。

当我在本地运行它时,网络钩子工作得很好。它触发 API、更新用户并处理付款。

然而,当它上线运行时,我不断收到 308 错误:

重定向到 my-app-url.com

这是我的函数的代码:

import { buffer } from "micro"
import { createClient } from "@supabase/supabase-js";

require("dotenv").config();

const stripe = require("stripe")(process.env.STRIPE_LIVE_KEY)

const endpointSecret = process.env.STRIPE_WEBHOOK_SECRET

const supabaseUrl = process.env.REACT_APP_SUPABASE_URL
const supabaseAnonKey = process.env.REACT_APP_SUPABASE_ANON_KEY

const supabase = createClient(supabaseUrl, supabaseAnonKey)

module.exports = async (req, res) => {

   const signature = req.headers["stripe-signature"]
   const reqBuffer = await buffer(req)

   let event 

   try {
    event = stripe.webhooks.constructEvent(reqBuffer, signature, endpointSecret)
   } catch (err) {
    console.log(err)
    return res.status(400).send(`Webhook error: …
Run Code Online (Sandbox Code Playgroud)

node.js stripe-payments serverless vercel

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

AWS Lambda:识别冷启动

是否有明确的方法来识别"冷启动"?在Lambda本身的运行时,还是通过日志?我知道冷启动的特点是运行时间更长,我实际上可以看到,但我正在寻找一种明确的切割方式.如果重要的话,我正在使用Node.js.

更新:对于两个用例,下面有两个很好的答案: - 在lambda运行时识别冷启动. - 从CloudWatch日志中识别冷启动.

amazon-web-services aws-lambda serverless

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

AccessDeniedException:用户无权对资源:表执行dynamodb BatchWriteItem

我正在使用nodejs,无服务器和AWS dynamodb。我试图创建一个lambda,在其中调用API,获取数据(1000条记录),现在,我想将此数据插入我的dynamodb中。

我为此使用batchWrite并通过创建每个25个json对象的存储桶来使用它。但我收到一个错误:
AccessDeniedException: <Username> is not authorized to perform dynamodb BatchWriteItem on resource <table-name>

当我不使用batchWrite和单独的PUT操作执行相同操作时,它可以正常工作(但我需要使用批处理,因为这会导致吞吐量超出错误)。

我已将AWS中的所有管理权限授予了我与无服务器一起使用的用户。

amazon-web-services node.js amazon-dynamodb aws-lambda serverless

4
推荐指数
2
解决办法
1281
查看次数

无服务器动态引擎流和触发器

我已经搜寻了很多东西,无法在我的一生中陷入无服务器状态,无法设置一个dynamodb触发器。

我用过:

- stream:
        type: dynamodb
        batchSize: 100
        enabled: true
        arn: 
          Fn::GetAtt:
            - MyDynamoDbTable
            - StreamArn
Run Code Online (Sandbox Code Playgroud)

我尝试了一个硬编码的arn,但没有发生任何可以在aws控制台中看到的事件。我是无服务器新手。如果您有任何指针,请发表。

amazon-dynamodb serverless-framework serverless

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

如何使用另一个端口在Visual Studio Code中调试无服务器脱机?

我有两个无服务器脱机“服务器”,它们需要同时在本地运行。

因此,我需要更改其中一台服务器的端口。

我使用Visual Studio Code调试器运行服务器。服务器的配置位于launch.json文件中。

如何更改无服务器脱机应用程序的端口,以便可以使用VS Code调试器与另一个无服务器脱机应用程序并行运行?

port node.js visual-studio-code serverless serverless-framework-offline

4
推荐指数
2
解决办法
4152
查看次数

AWS无服务器| 超出代码存储限制

我有一个错误代码存储限制,超出了在AWS中部署无服务器应用程序的范围。总大小409 B.

错误消息显示:

发生错误:HelloLambdaFunction-超出代码存储限制。(服务:AWSLambda;状态代码:400;错误代码:CodeStorageExceededException;请求ID:...)

amazon-web-services serverless-framework serverless

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

参数存储请求在AWS Lambda内部超时

我正在尝试像本文一样访问AWS SSM参数存储。我已经在本地测试过lambda函数,它可以按预期工作。但是,当推送到AWS时,lambda在尝试检索配置时会失败;它超时:

{
    "errorMessage": "2018-09-02T04:55:49.096Z 71a5006a-ae6c-11e8-9322-313ba5e28048 Task timed out after 6.01 seconds"
}
Run Code Online (Sandbox Code Playgroud)

我已将以下权限添加到serverless.yml。我已尽可能不受限制地尝试查找错误的位置。另外,该参数只是一个字符串,因此它不使用KMS。

service: pwaer-messages-service

provider:
  name: aws
  runtime: nodejs8.10
  vpc:
    securityGroupIds:
      - sg-222f126f
    subnetIds:
      - subnet-756aef12
      - subnet-130f8f3d
  environment:
    NODE_ENV: ${opt:stage, 'dev'}

  iamRoleStatements:
    - Effect: 'Allow'
      Action: 'ssm:**'
      Resource:
        - 'Fn::Join':
          - ':'
          -
            - 'arn:aws:ssm'
            - Ref: 'AWS::Region'
            - Ref: 'AWS::AccountId'
            - 'parameter/*'

functions:
  receiveText:
    handler: dist/receive.handler
    events:
      - http:
          path: sms/parse
          method: post
Run Code Online (Sandbox Code Playgroud)

我想念什么?

amazon-web-services aws-lambda serverless-framework serverless

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