![](/img/trans.png)
[英]How do I successfully notify Airbrake of a deployment when using capistrano to deploy a Node.js project?
[英]How do I deploy Node.js code to run on an interval without exceeding free deployment tiers
我正在嘗試部署一個將定期執行代碼的節點應用程序(我希望每 1-5 分鍾執行一次)。 此代碼將對不同平台進行幾次 API 調用,並路由一些輕量級 json 數據(主要是文本和數字)。
我希望使用 Heroku、Amazon EC2 或 Amazon Lambda 來部署這個項目,並希望留在他們的免費套餐內,我不確定我的代碼將如何與他們的服務器交互。
如果我部署此代碼以使用 setTimeout 運行,這是否意味着我要求服務器始終處於“開啟”狀態,而我基本上需要為 100% 的正常運行時間付費? 我可以看到這是一個問題,因為 Heroku 每月僅提供 550 個免費小時,而 Amazon EC2 每月提供 750 個免費小時。
該代碼非常輕量級,應該只在短時間內運行,因此如果讓服務器每天 24/7 天運行,而實際使用時間只有幾秒鍾,那將是一種恥辱。 我怎樣才能最好地部署此代碼以定期運行? 我可以在這里使用其他服務嗎?
此外,下面是我的代碼的基本結構。 請讓我知道是否有明顯的我遺漏的東西可能是一個問題。
const axios = require('axios');
const asana = require('asana');
const { Dropbox } = require('dropbox');
function apiCallOne() {
...
}
function apiCallTwo() {
...
}
function runMyCode() {
apiCallOne();
apiCallTwo();
...
}
setTimeout(runMyCode, 1000);
使用 EC2,您肯定會按資源的正常運行時間收費,無論您是否使用它。 雖然每月 750 小時免費小時基本上是每月 1 個免費層實例。
現在我推薦 Lambda 因為它似乎是一個非常簡單的代碼。 使用 Lambda,您每月有 1M 的免費請求和 400,000 GB 秒的計算時間。 . 但是 Lambda 本身無法按計划運行,您需要為此使用 AWS CloudWatch Events。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.