概要
Google Cloud Functions は AWS Lambda のようなサービスです
Nodejs などのスクリプトをアップロードしそれをクラウド上でキックすることができます
今回は Nodejs を使って Google Cloud Functions を試してみました
ちなみに Python3.7 もベータですが対応しているようです
Google Cloud Functions は有料のサービスになるので以下の内容を試す場合は留意の上実施してください (と言っても 200 万回コールしない限り無料なので大丈夫だと思いますが)
環境
- Google Cloud Scripts (2018/08/27 時点)
- Google Cloud Shell (2018/08/27 時点)
API を有効化
Google Cloud Scripts の API を有効にしましょう
作業ディレクトリの作成
以下の作業は Google Cloud Shell 上で行います
mkdir ~/gcf_hello_world
cd ~/gcf_hello_world
スクリプトの作成
- vim index.js
exports.helloGET = (req, res) => {
res.send('Hello World!');
};
スクリプトのデプロイ
gcloud beta functions deploy helloGET --trigger-http
helloGET という名前でデプロイします
コンソールで確認すると以下の通りです
動作確認
スクリプトは専用の URL を GET でコールすることで呼び出すことができます
gcloud beta functions describe helloGET
でデプロイしたスクリプトの詳細を取得しましょう
すると httpsTrigger
の欄に URL が表示されるのでそれにアクセスしみましょう
curl https://us-central1-[project_id].cloudfunctions.net/helloGET
すると「Hello World!」と表示されると思います
HTTP をコールしてみる
少し応用して自分でスクリプトを作成してみます
IFTTT の maker チャネルの URL を呼び出すスクリプトを作成してみます
npm init
npm install request --save
vim index.js
const request = require('request');
exports.testMaker = (req, res) => {
request.post('https://maker.ifttt.com/trigger/[event]/with/key/[your-maker-key]', function (error, response, body) {
console.log('error:', error);
});
res.status(200).send("Success");
}
gcloud beta functions deploy testMaker --trigger-http
gcloud beta functions describe testMaker
で後は表示された URL にアクセスすれば Maker チャネルの webhook がコールされます
Google Cloud Functions ではサードパーティ製のライブラリは package.json
を追加してあげるだけで使えるようになるようです
お掃除
gcloud beta functions delete testMaker
or コンソールから直接スクリプトを削除すれば OK です
Google Cloud Functions の料金は月に 200 万回コールしないと発生しないのでそのままでも料金はかからないと思います
最後に
Google Cloud Functions を試してみました
基本は Nodejs ですが Python もサポートされたので他の言語もそのうちサポートするかもしれません
package.json
を使えば自由にサードパーティ製のライブラリが使えるのは嬉しい点です
今回は紹介しませんでしたが他にもリクエストを処理する方法や他の GCP サービスと連携する方法、Github と連携して CI/CD する方法、Webhook として利用する方法などかなり応用が効くようです
Nodejs でサーバサイドを構築しているのであれば移行することで今流行りのサーバレスアーキテクチャの波に乗れるかもしれません
0 件のコメント:
コメントを投稿