AWS를 사용하는 경우
Lambda를 사용하여 여러가지 다양한 함수를 실행할 수 있습니다. 오늘은
Lambda 함수를 사용하여 외부 url을 invoking, request 요청을 수행해보려합니다.
# AWS Lambda를 사용한 외부 url request, 수행하기
시도하려는 부분은 특정 url을 요청하는 것이 전부입니다. 만약 아래의 url을 AWS Lambda Function을 사용하여 request하려면? 아래는 http://webisfree.com으로 요청하는 예제입니다.
@ lambda.js
var http = require('http');
exports.handler = function(event, context) {
http.get('http://webisfree.com', function(res) {
console.log('Success');
}).on('error', function(error) {
console.log('Failed');
});
};
위 방법은 Lambda 코드의 인라인 편집을 사용하였고 런타임(runtime) 방법으로 Node.js를 사용하였습니다.
! 만약 https 프로토콜에 대한 요청인 경우
이 경우 단순하게 요청 url을 바꾸어 실행해보면 에러가 발생합니다. 이때는 요청할 모듈을 https로
require()의 값을 변경합니다. 아래와 같이 적용하게됩니다.
var https = require('https');
변수명이 http에서 https로 바뀌었으므로 함수 역시 https 변수를 사용하여 호출합니다.
https.get('https://webisfree.com', function(res) {
console.log('Success');
})
# 마치면서
사실 처음에는 Python의 requests 모듈을 사용하여 url에 요청을 보내려고 하였습니다.
하지만 python 모듈이 없어 설치없이 동작하지 않았습니다. 이를 수행하려면 VPC 사용 및 모듈을 설치가 필요할 것 같아 Node.js를 사용하였습니다. 만약 Python을 사용하면 Module이 없어 에러가 발생할 수 있다는 점 참고하시기 바랍니다.