퍼블릭 클라우드
AWS Lambda에서 Node.js 샘플 코드를 실행하는 방법
변군이글루
2024. 11. 27. 14:33
반응형
AWS Lambda에서 Node.js 샘플 코드를 실행하는 방법
1. AWS Lambda 함수 생성
AWS Management Console에서 Lambda 함수 생성합니다.
Lambda 서비스 > 함수 생성
- 함수 이름 : sendSlackMessage
- 런타임 : Node.js (최신 버전)
- 아키텍처 : x86_64
- 권한 : 기본 역할 생성 또는 기존 역할 선택
함수 생성을 클릭하여 Lambda 함수를 생성합니다.
2. Node.js 코드 작성
Lambda 함수가 생성되면 기본적으로 제공되는 index.mjs 파일에서 샘플 코드를 작성할 수 있습니다.
export const handler = async (event) => {
// TODO implement
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
간단한 코드
indexm.js 파일에 Slack Webhook으로 메시지를 보내는 Node.js 코드를 작성합니다.
- webhookUrl : https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
- text : Hello, this is a message from AWS Lambda!
- channel : #general
- username : AWS Lambda
- path : /services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
import https from 'https';
export const handler = async (event) => {
const webhookUrl = 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'; // Your Slack Webhook URL
// Correctly structure the payload
const message = JSON.stringify({
text: "Hello, this is a message from AWS Lambda!", // The main message
channel: '#general', // Optional: Channel to send the message to (ensure the channel exists in Slack)
username: 'AWS Lambda' // Optional: Customize the username that appears on Slack
});
const options = {
hostname: 'hooks.slack.com',
port: 443,
path: '/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX', // Ensure the path is correct (from your Webhook URL)
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(message)
}
};
return new Promise((resolve, reject) => {
const req = https.request(options, (res) => {
let response = '';
res.on('data', (chunk) => {
response += chunk;
});
res.on('end', () => {
console.log('Slack response:', response);
resolve({
statusCode: 200,
body: JSON.stringify({
message: 'Message sent to Slack',
slackResponse: response
})
});
});
});
req.on('error', (error) => {
console.error('Error sending message to Slack:', error);
reject({
statusCode: 500,
body: JSON.stringify({
message: 'Failed to send message to Slack',
error: error.message
})
});
});
req.write(message);
req.end();
});
};
Deploy를 클릭하며 함수 sendSlackMessage이(가) 업데이트됩니다.
3. Lambda 함수 테스트
테스트 버튼을 클릭하여 새로운 테스트 이벤트를 생성합니다.
- 이벤트 이름 : TestEvent
- 이벤트 템플릿 : {} (빈 JSON 입력)
테스트 버튼을 클릭하여 함수를 실행합니다.
4. 테스트 결과 확인
Lambda 함수가 실행되면, 콘솔에서 반환된 결과를 확인할 수 있습니다.
Slack 채널에서 메시지가 전송되었는지 확인합니다.
- Lambda 함수가 실행되면 Slack 채널에 "Hello, this is a message from AWS Lambda!"라는 메시지가 전송됩니다.
이 코드에서는 Slack Incoming Webhook URL을 사용하여 메시지를 보내는 예제입니다.
참고URL
- AWS Documentation : Node.js를 사용하여 Lambda 함수 빌드
728x90
반응형