在 AWS 中创建 Lambda 函数 (index.js)

问题描述 投票:0回答:1

我目前正在尝试在 AWS 中编写 Lambda 函数,但我不断遇到以下错误:

测试事件名称 sendContactEmailTest1

回应 { "errorType": "引用错误", "errorMessage": "require 未在 ES 模块范围内定义,您可以使用 import 代替", “痕迹”: [ “ReferenceError: require 未在 ES 模块范围内定义,您可以改用导入”, “在文件:///var/task/index.mjs:1:16”, “在 ModuleJob.run (node:internal/modules/esm/module_job:194:25)” ] }

函数日志 2023-03-03T19:25:19.161Z undefined ERROR Uncaught Exception {"errorType":"ReferenceError","errorMessage":"require is not defined in ES module scope, you can use import instead","stack":[" ReferenceError: require is not defined in ES module scope, you can use import instead"," at file:///var/task/index.mjs:1:16"," 在 ModuleJob.run (node:internal/modules/ esm/module_job:194:25)"]} 出现未知的应用程序错误 运行时.Unknown 结束 RequestId:f7c5db16-5a81-4331-a088-9a90d41a495b 报告 RequestId:f7c5db16-5a81-4331-a088-9a90d41a495b 持续时间:2534.33 毫秒计费持续时间:2535 毫秒内存大小:128 MB 使用的最大内存:17 MB

请求ID f7c5db16-5a81-4331-a088-9a90d41a495b

下面列出的是index.js文件:

const { S3 } = require("@aws-sdk/client-s3");

const aws = require("aws-sdk");
const ses = new aws.SES({ region: "us-east-1" });
exports.handler = async function (event) {
  console.log('EVENT: ', event)
  const params = {
    Destination: {
      ToAddresses: ["[email protected]"],
    },
    Message: {
      Body: {
        Text: { 
            Data: `Hello from Lambda!` 
        },
      },
      Subject: { Data: `Message from AWS Lambda` },
    },
    Source: "[email protected]",
  };

  return ses.sendEmail(params).promise()
};

我故意将 ToAddresses 和 Source 保留为“[email protected]”只是为了隐藏电子邮件。但它们应该只是我们用来设置 SES 的电子邮件,对吗?

amazon-web-services aws-lambda amazon-ses
1个回答
0
投票

错误消息表明它不喜欢您使用 require,而是使用 import。如果你想使用 require,检查你的 packages.json 文件并更改

"type":"module" or "type":"whatever_it_is_right_now" to "type":"commonjs"

这将允许 require 为您的进口工作

© www.soinside.com 2019 - 2024. All rights reserved.