【问题标题】:Adding SES as the destination in an AWS lambda function在 AWS lambda 函数中添加 SES 作为目标
【发布时间】:2021-06-02 05:38:35
【问题描述】:

通过 API 网关正确创建 REST API 触发器并将其与 lambda 函数链接后,我尝试将 SES 添加为目标。 该功能的目的是通过 SES 服务自动将静态网站上的 HTML 联系表单上收到的消息转发到电子邮件地址。 根据标题,我创建了一个 lambda 函数,我将在下面显示(只是为了隐私而隐藏了域和电子邮件地址)。

var AWS = require('aws-sdk');
var ses = new AWS.SES();
 
var RECEIVER = 'XXX@gmail.com';
var SENDER = 'XXX@gmail.com';

var response = {
 "isBase64Encoded": false,
 "headers": { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': 'XXX.com'},
 "statusCode": 200,
 "body": "{\"result\": \"Success.\"}"
 };

exports.handler = function (event, context) {
    console.log('Received event:', event);
    sendEmail(event, function (err, data) {
        context.done(err, null);
    });
};
 
function sendEmail (event, done) {
    var params = {
        Destination: {
            ToAddresses: [
                RECEIVER
            ]
        },
        Message: {
            Body: {
                Text: {
                    Data: 'name: ' + event.name + '\nphone: ' + event.phone + '\nemail: ' + event.email + '\ndesc: ' + event.desc,
                    Charset: 'UTF-8'
                }
            },
            Subject: {
                Data: 'Website Referral Form: ' + event.name,
                Charset: 'UTF-8'
            }
        },
        Source: SENDER
    };
    ses.sendEmail(params, done);
}

已将 SES 的相关权限授予 lambda 函数。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "ses:SendEmail",
            "Resource": "*"
        }
    ]
}

功能测试如下:


响应 空

功能日志 开始请求 ID:765f6d27-9810-4d6c-a01b-a883eb429cd8 版本:$LATEST 2021-03-03T15:39:05.849Z 765f6d27-9810-4d6c-a01b-a883eb429cd8 INFO 收到的事件:{ key1:'value1',key2:'value2',key3:'value3'} 结束请求 ID:765f6d27-9810-4d6c-a01b-a883eb429cd8 报告请求 ID:765f6d27-9810-4d6c-a01b-a883eb429cd8 持续时间:928.32 毫秒计费持续时间:929 毫秒内存大小:128 MB 使用的最大内存:87 MB 初始化持续时间:449.71 毫秒

请求 ID 765f6d27-9810-4d6c-a01b-a883eb429cd8


不幸的是,当我单击添加目的地时,我找不到要选择的 SES 服务。 电子邮件地址已在 SES 中验证。 我还缺少什么? 谢谢

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-ses


    【解决方案1】:

    SES 不是受支持的目标。 Lambda 目标用于将 Lambda 函数的输出发送到另一个服务,而无需在函数中编写代码以直接连接到服务。

    您不需要 Lambda 向 SES 目的地发送任何内容,因为您已经通过 ses.sendEmail() 在代码中直接发送了请求。

    【讨论】:

      猜你喜欢
      • 2019-06-17
      • 2021-05-13
      • 1970-01-01
      • 2015-12-13
      • 2021-05-13
      • 2017-11-12
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多