Мне потребовалась помощь в решении проблемы, с которой я столкнулся, чтобы выполнить следующее требование:
Требование: 1. Передать данные формы из формы HTML через метод POST в API-шлюз в функцию lambda , Один из параметров в адресе электронной почты. 2. Передайте параметры из запроса POST в функцию lambda. Лямбда-функция должна отправлять электронное письмо получателю через SES
Проблема: я могу нажать на лямбда-функцию через вызов POST, но не могу передать переменные.
Контрольный пример : Для тестирования функциональности я жестко закодировал адрес получателя, чтобы при каждом обращении к лямбда-функции получал электронное письмо. Я пытаюсь передать параметр 'name' и получить ответ в теле письма - Привет 'name'. В настоящее время я получаю ответ: Привет не определено.
Ниже приведен код, который я использую
// Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
var aws = require('aws-sdk');
var ses = new aws.SES({ region: 'us-west-2' });
exports.handler = (event, context, callback) => {
const emailbody = JSON.parse(event.body)
var params = {
Destination: {
ToAddresses:
},
Message: {
Body: {
Text: {
Data: "Hi" + JSON.stringify(emailbody.name)
}
},
Subject: {
Data: "Test Email from lambda"
}
},
Source: "myemailaddress@domain.com"
};
ses.sendEmail(params, function (err, data) {
callback(null, { err: err, data: data });
if (err) {
console.log(err);
context.fail(err);
} else {
console.log(data);
context.succeed(event);
Ссылка: https://aws.amazon.com/premiumsupport/knowledge-center/lambda-send-email-ses/
Я также пытался передать переменную напрямую через event.name, но я не был ' Не удалось вставить переменную.
// Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
var aws = require('aws-sdk');
var ses = new aws.SES({ region: 'ap-south-1' });
exports.handler = (event, context, callback) => {
// const emailbody = JSON.parse(event.body);
var params = {
Destination: {
ToAddresses: ["test@recipient.com"]
},
Message: {
Body: {
Text: {
Data: "Hi" + JSON.stringify(event.name)
}
},
Subject: {
Data: "Test Email from lambda"
}
},
Source: "test@sender.com"
};
ses.sendEmail(params, function (err, data) {
callback(null, { err: err, data: data });
if (err) {
console.log(err);
context.fail(err);
} else {
console.log(data);
context.succeed(event);
}
});
};
Я очень новичок в мире разработки и API. Любая помощь будет оценена:)
Тело события
{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","Accept-Encoding":"gzip, deflate, br","Accept-Language":"en-US,en;q=0.9","cache-control":"max-age=0","CloudFront-Forwarded-Proto":"https","CloudFront-Is-Desktop-Viewer":"true","CloudFront-Is-Mobile-Viewer":"false","CloudFront-Is-SmartTV-Viewer":"false","CloudFront-Is-Tablet-Viewer":"false","CloudFront-Viewer-Country":"JP","content-type":"application/x-www-form-urlencoded","Host":"8x4r6h1ko3.execute-api.ap-south-1.amazonaws.com","origin":"null","sec-fetch-mode":"navigate","sec-fetch-site":"cross-site","sec-fetch-user":"?1","upgrade-insecure-requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36","Via":"2.0 1eaa44d3cb0c85af04bf84d0f0c5256f.cloudfront.net (CloudFront)","X-Amz-Cf-Id":"z5idar1dflmmUP7OeYfF6lc70fTpb9_hOeZHjDaNkVKVyy31tB8u_Q==","X-Amzn-Trace-Id":"Root=1-5e173941-6ad68db372cf676f8268bfa7","X-Forwarded-For":"126.51.226.203, 64.252.167.136","X-Forwarded-Port":"443","X-Forwarded-Proto":"https"},"multiValueHeaders":{"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"],"Accept-Encoding":["gzip, deflate, br"],"Accept-Language":["en-US,en;q=0.9"],"cache-control":["max-age=0"],"CloudFront-Forwarded-Proto":["https"],"CloudFront-Is-Desktop-Viewer":["true"],"CloudFront-Is-Mobile-Viewer":["false"],"CloudFront-Is-SmartTV-Viewer":["false"],"CloudFront-Is-Tablet-Viewer":["false"],"CloudFront-Viewer-Country":["JP"],"content-type":["application/x-www-form-urlencoded"],"Host":["8x4r6h1ko3.execute-api.ap-south-1.amazonaws.com"],"origin":["null"],"sec-fetch-mode":["navigate"],"sec-fetch-site":["cross-site"],"sec-fetch-user":["?1"],"upgrade-insecure-requests":["1"],"User-Agent":["Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"],"Via":["2.0 1eaa44d3cb0c85af04bf84d0f0c5256f.cloudfront.net (CloudFront)"],"X-Amz-Cf-Id":["z5idar1dflmmUP7OeYfF6lc70fTpb9_hOeZHjDaNkVKVyy31tB8u_Q=="],"X-Amzn-Trace-Id":["Root=1-5e173941-6ad68db372cf676f8268bfa7"],"X-Forwarded-For":["126.51.226.203, 64.252.167.136"],"X-Forwarded-Port":["443"],"X-Forwarded-Proto":["https"]},"queryStringParameters":null,"multiValueQueryStringParameters":null,"pathParameters":null,"stageVariables":null,"requestContext":{"resourceId":"mmrduj26lk","resourcePath":"/","httpMethod":"POST","extendedRequestId":"GCXiOG99BcwFkdA=","requestTime":"09/Jan/2020:14:31:29 +0000","path":"/POST_Dev_Test","accountId":"856365680740","protocol":"HTTP/1.1","stage":"POST_Dev_Test","domainPrefix":"8x4r6h1ko3","requestTimeEpoch":1578580289353,"requestId":"010988e0-4598-4e88-af41-de42fa0b607e","identity":{"cognitoIdentityPoolId":null,"accountId":null,"cognitoIdentityId":null,"caller":null,"sourceIp":"126.51.226.203","principalOrgId":null,"accessKey":null,"cognitoAuthenticationType":null,"cognitoAuthenticationProvider":null,"userArn":null,"userAgent":"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36","user":null},"domainName":"8x4r6h1ko3.execute-api.ap-south-1.amazonaws.com","apiId":"8x4r6h1ko3"},"body":"name=Tera&email=aditya.prakash%40psyora.com","isBase64Encoded":false}
С уважением, Ади