2022-05-26 @이영훈
AWS Lambda로 HTTPS 요청 보내는 간단한 Lambda를 작성할 일이 종종 있었습니다.
그 때마다 기억이 안나서 이번에 기록으로 남겨둡니다.
개발하면서 다음의 사항을 고려했습니다.
1.
빠르게 개발할 수 있어야 합니다.
2.
그렇기 때문에 custom layer 작성이 필요없는 pre-built library를 사용합니다.
a.
아직 서울 리전에서는 arm architecture가 도입되지 않아서 (2022.05.26 기준) node, python library를 cross build해야 하는데 이 과정이 번거롭고 힘듭니다
node를 사용해서 HTTPS 요청을 보내는 AWS Lambda 코드입니다
const https = require('https');
exports.handler = async (event) => {
console.log("event: ", event);
const options = {
hostname: "gist.github.com", // replace correctly
port: 443,
path: '/v1/articles', // replace correctly
method: 'POST',
headers: {
"Content-Type": "application/json"
},
};
// event is json format: {"title": "fancy title", "content: "fancy content..."}
// replace it correctly
const dataString = JSON.stringify(event);
const promise = new Promise(function (resolve, reject) {
const req = https.request(options, (res) => {
res.setEncoding("utf-8");
let body = '';
res.on('data', chunk => {
body += chunk;
});
res.on('end', () => resolve(body))
}).on('error', (e) => {
reject(Error(e))
})
req.write(dataString);
req.end();
}
)
return promise;
};
JavaScript
복사