【问题标题】:AWS SES create template with lambda function always return nullAWS SES 使用 lambda 函数创建模板始终返回 null
【发布时间】:2019-01-20 13:10:04
【问题描述】:

所以我第一次学习 AWS 的东西(它是一个野兽),我正在尝试创建电子邮件模板,我有这个 lambda 函数:

// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region
AWS.config.update({ region: "us-east-1" });

exports.handler = async (event, context, callback) => {
  // Create createTemplate params
  var params = {
    Template: {
      TemplateName: "notification" /* required */,
      HtmlPart: "HTML_CONTENT",
      SubjectPart: "SUBJECT_LINE",
      TextPart: "sending emails with aws lambda"
    }
  };

  // Create the promise and SES service object
  const templatePromise = new AWS.SES({ apiVersion: "2010-12-01" })
    .createTemplate(params)
    .promise();

  // Handle promise's fulfilled/rejected states
  templatePromise
    .then((data) => {
      console.log(data);
      callback(null, JSON.stringify(data) );
      // also tried callback(null, data);
    }, (err) => {
      console.error(err, err.stack);
      callback(JSON.stringify(err) );
    });

据我了解,这个函数应该返回一个模板吗?一个对象,什么?当我使用 lambda 测试功能时,我总是在请求响应中得到 null

有谁知道我在这里做错了什么?

编辑:它没有创建电子邮件模板,我检查了 SES 面板 - 电子邮件模板,它是空的

edit2:如果我尝试返回一个字符串,例如:callback(null, "some success message"); 它确实返回了该字符串,所以我猜测 SES 有问题,但这个函数正是我们在 AWS 文档中所拥有的,所以我假设它应该可以工作..

【问题讨论】:

    标签: node.js amazon-web-services aws-lambda amazon-ses


    【解决方案1】:

    尽量不要解决 Promise 并将您的代码更改为按原样返回:

     return await templatePromise;
    

    它应该向您展示代码中真正出错的更多细节 - 这可能是一些隐藏的访问问题 - 因此您可能需要调整 lambda 函数正在使用的角色。另一边的createTemplate在执行成功的情况下应该不会返回太多,而只是创建模板。

    在使用 async 时也尝试遵循以下 try/catch 模式(此处更详细地描述:https://aws.amazon.com/de/blogs/compute/node-js-8-10-runtime-now-available-in-aws-lambda/)

    exports.handler = async (event) => {
      try {
        data = await lambda.getAccountSettings().promise();
      }
      catch (err) {
        console.log(err);
        return err;
      }
      return data;
    };
    

    【讨论】:

    • 非常感谢!!奇怪的是他们在 aws docs 上使用 Promise 展示示例......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 2018-12-29
    • 2019-06-17
    • 1970-01-01
    • 2021-08-15
    相关资源
    最近更新 更多