撰寫 Lambda Code
不過幸好阿明很機靈會用 Lambda,於是阿明起身打開 terminal
> yarn init
> yarn add aws-sdk
然後打開 VSCode 開始撰寫新年的第一行程式碼
const aws = require('aws-sdk');
const ses = new aws.SES({
region: 'us-west-2',
accessKeyId: YOUR_AWS_ACCESSKEYID,
secretAccessKey: YOUR_AWS_SECRET_ACCESSKEY
});exports.handler = (event, context, callback) => {
const { httpMethod, body } = event;
const { to, subject, text, source } = JSON.parse(body);
const res = {
"statusCode": 200,
"headers": {
"Content-Type": "text/html"
},
"body": JSON.stringify({
status: 200,
message: '寄送成功',
payload: null,
error: null
})
};
if (httpMethod.toUpperCase() === 'POST') {
const eParams = {
Destination: {
ToAddresses: [to]
},
Message: {
Body: {
Html: {
Charset: 'UTF-8',
Data: text
}
},
Subject: {
Data: subject
}
},
Source: source
};
ses.sendEmail(eParams, function(err, data) {
if(err) {
callback(null, JSON.stringify(err));
}
});
}
callback(null, res);
}
然後解壓縮建立一個 AWS Lambda 方法,將檔案上傳完成後,就結束了這次寫程式的工作。
那如何寄發呢?
申請一個 API Gateway
移動到畫面最上面在 Designer 的項目中點擊 API Gateway
在選擇 Create a new API
選擇後簡單的填寫基本規則
最後 Add
點擊 Save 後就會出現詳細資料有個 Invode URL
然後我們來寄信看看
> curl -X POST https://invokeURL.execute-api.us-east-1.amazonaws.com/prod/EmailService -d '{"to": "sal95610@gmail.com", "subject": "Test", "text": "<h1>PM 我阿明啦!新年快樂唷</h1>", "source": "support@yosgo.com"}'
最後收信吧!
10分鐘後,阿明趕緊通知 PM 然後繼續打 switch 去了。
如果想知道更詳細如何建立 Lambda 的步驟,可以參考上篇文章
AWS lambda serverless with slack notification — 手把手建立一個不需要維護伺服器的 slack 訊息通知
如果此文章對您有幫助請給我個鼓掌~~可以大大鼓勵到我的動力哦 💪💪