Pipedream - 瞬間部署 Node.js 微服務的在線開發運行平臺

2020年11月10日 星期二

無論你是希望建構個人工作流,或是希望建構一個應用的話,Pipedream 將可以在一個非常短的時間,將你的想法變成現實。而你所需要的,只是一點 JavaScript 技巧。

何謂 Pipedream

Pipedream 是一個 Serverless 運算和整合平臺,讓開發者可以在線開發和部署 Node.js 項目。如果你有使用 npm 的來獲取工具的話,那麼 Pipedream 可以透過運行你的代碼來直接安裝工具,非常簡單。

更加重要的是,它可以透過讀取不同資料來源,然後運行你的代碼。比如說你可以透過傳統的 HTTP / Webhook 來呼叫你的工作流,或者你可以透過 RSS 自動訂閱博客內容,然後輸出到你的工作流。

舉個例子,我就有利用 Pipedream 來訂閱各大價值投資博客的 RSS Feed,然後透過 Telegram 輸送到財經頻道中,最後推送該信息給予我所認識的投資好友。(財經頻道是一個全天候 7x24 推送財經新聞的 Telegram 頻道,已經有超過 460 個訂閱用戶)

註冊

要註冊 pipedream 帳號並不困難,你只需要擁有 Google 或 Github 帳號,然後就可以進行註冊,非常簡單。

例子

上一次我就提及如何《利用 FRED 經濟數據服務洞察市場動態》,這裏就從零開始搭建一個失業率的微服務吧。

首先,點擊 Workflows 頁面的右上角,“+ New Workflow 按鈕”。

接着你就會進入創建工作流頁面,這裏我們會看見系統自動彈出觸發工作流的方法,包括 Event Source,HTTP / Webhook,Cron Scheduler,SDK。我們在這一次示範中會用到 HTTP,所以選擇 HTTP。

從上圖可以看見工作流的地址,例如這次教學的 API。接着,點擊下方的加號,你就可以看見系統需要你點擊想要做的事情,比如說運行 Node.js 代碼,發送 HTTP 請求,發送 Slack 信息。

接着,你就可以填寫你的(非)同步代碼到白色空間中。

這裏我就直接引用上一次教學裏面填寫的代碼吧:

const axios = require('axios');

const baseURL = "https://api.stlouisfed.org/fred/series/observations"

const { data } = await axios.get(baseURL, {
    params: {
        series_id: "UNRATE",
        file_type: "json",
        observation_start: "2010-01-01",
        api_key: params.api_key
    }
});

console.log(data);

從以上代碼,你可以看出有一個未被定義的參數 params.api_key。沒關係,先部署上去。

部署非常簡單,點擊上方的 DEPLOY 按鈕即行。

啪,部署完成,非常快。

你會在屏幕中間看見多了一個輸入 params 的地方,裏面寫着 Api key required。那麼你就在 St. Louis Fed 的 API 申請網頁申請一個 API Key,然後複製貼上就可以了。

如何使用

你可以看見有一個 SEND TEST EVENT 的按鈕,點擊它。

點擊之後,你就可以看見這個工作流最初的 Input,以及不同運行階段的 console 輸出。

這個時候,你就會問:我訪問上面提供的 https://enfr4vqc41ik16i.m.pipedream.net 只輸出這樣的畫面,沒有用啊!

年輕人太急了,慢點來,這裏還需要一點修改。

$respond({
    status: 200,
    body: data,
});

把以上的代碼片段抄進你的 steps.nodejs 代碼裏面,你會得到這樣的完整代碼片段:

const axios = require('axios');

const baseURL = "https://api.stlouisfed.org/fred/series/observations"

const { data } = await axios.get(baseURL, {
    params: {
        series_id: "UNRATE",
        file_type: "json",
        observation_start: "2010-01-01",
        api_key: params.api_key
    }
});

console.log(data);

$respond({
    status: 200,
    body: data,
});

再次部署,再點擊鏈接,即可得到一個失業率的 JSON。

說了這麼多,要不要訂閱一下我的博客?(笑)

https://feeds.feedburner.com/kepler823

收費

pipedream 提供免費開發者的計劃,允許我們每個月運行 100,000 次工作流,也就是每天觸發 3333 次工作流。

這個是我在過去三十日在 pipedream 的每日運行次數和時間,儘管我已經包含了很多不同的資料來源,但每日的觸發次數基本上低於三百,所以就可以繼續做免費仔。

總結

Pipedream 提供了一個非常方便的開發環境,以及瞬間部署的 Node.js 環境。如果你有部署微服務經驗的話,你會感覺完全不同。而更加重要的是,pipedream 的社區非常友善,可以很快回應我們開發者的奇怪需求 XD

項目的代碼放在Pipedream 的 Kepler 失業率工作流教學,歡迎 COPY AND DEPLOY。

如果你有甚麼想法的話,歡迎在下面留言。

留言

Leave a Comment

必要欄位爲*。留言所填寫的電子郵件地址不會公開。

Kepler Finance

當 Python 遇上 Finance,它們將會帶來超乎想像的威力。

訂閱 Kepler Finance 最新文章

昔日手記

免責聲明

本博客純屬個人意見或經驗分享,無論在任何情況下,不應被視為投資建議,也不構成要約、招攬、邀請、誘使、建議或推薦。投資(機)者應注意投資涉及風險。股票價格可升可跌,有時可能會非常波動,甚至變成毫無價值。買賣證券未必一定能夠賺取利潤,反而可能會招致損失。