LoginSignup
0

More than 1 year has passed since last update.

posted at

Node-REDのデプロイ先にCode Engineが選べる件

この記事は IBM Cloud Advent Calendar 2020 12日目の記事です。

Node-REDのデプロイ先に、Code Engineが選べる。

IBM Cloud Festa Online 2020 でも注目度の高かったIBM Cloud Code Engine。ベータ版を使ってみると、ジョブやコンテナを手軽に動かすことができます。ただし、ベータ版時点のCode Engineには永続化ストレージの機能がないのでコンテナ側で予め、外部のオンラインストレージ等と同期するなど仕込んでおく必要があります。
Code Engineの管理画面や、IBM Cloud CLI経由でNode-REDコンテナをデプロイすることは出来ていたのですが、自前ではなく、IBM Cloudの画面でNode-RED環境を構築する際に、Node-REDのデプロイ先として「Code Engine」を選ぶことができますので、手順を紹介します。

Node-RED

ローコード環境と言えば「Node-RED」というくらいよく知られています。クラウドでもオンプレミスでもIoT機器でも、プロトタイピングから本番利用まで様々なところ、様々な企業で使用されています。

Code Engine

Code Engineは、IBM Cloudのサービスの1つで、2020年12月現在、ベータ版です。Kubernetes、Knative、Istio、Tekton などの上に構築されています。

関連記事

Code EngineにNode-REDをデプロイする手順

Code Engineを利用するには、IBM Cloudに課金している必要があります。クレジットカードやデビットカードを使っていますが、企業によっては請求書払いなどありますので、会社でIBM Cloudをお使いの場合は、社内に確認してください。

アプリの作成

IBM Cloudの「カタログ」から、「node-red」を検索し、「Node-RED App」をクリックします。
image.png

次のように表示されますので、「始めに」をクリックします。
image.png

「アプリの詳細」のうち、アプリ名やリソース・グループはそのままで良いでしょう。アプリ名を変えても良いです。
image.png

Cloudant(IBMがホストするApache CouchDB)の場所(リージョン)を選びます。ここではダラスにしていますが、東京なども選べます。「作成」をクリックします。
image.png

アプリの詳細

下図のように「アプリのデプロイ」が表示されるまで待機ます。表示後、「アプリのデプロイ」をクリックします。
image.png

デプロイメントターゲットの選択

「デプロイメントの自動化」で、「Code Engine」を選ぶことができます。Auto-Scaleと表示されているあたりが、正式リリースされた際に期待が持てます。
image.png

Code Engineをデプロイ先(つまり動く場所)に選択した場合、画面右端に、2020年12月現在、Code Engineは、ベータ版のため7日後に削除される旨が表示されます。

続けて作業します。
IBM Cloud API 鍵がない場合は、「新規」をクリックしてAPI鍵を作成、登録します。
image.png

Code EngineにNode-REDをデプロイする場合、コンテナとして扱われるため、コンテナの配置先を選びます。ここでは「ダラス」を選びました。また、Code Engineで、コンテナを「プロジェクト」と呼ばれる場所で管理するため、「Project」の項目に英数字でプロジェクト名を入力します。「次へ」をクリックします。
image.png

DevOpsツールチェーンの構成

特にすることなく、そのまま「作成」をクリックします。
image.png

デプロイメント自動化の状況が、「成功」になるまで待ちます。凡そ5-10分程度です。10分程度経過して何も反応がなければ、「状況」に表示されている単語をクリックしますと、進捗が表示されます。
image.png

上図のように、画面左上に表示されている「アプリURL」をクリックすることで、Node-REDの初期設定画面が、新規タブで開きます。

Node-RED初期設定

IBM Cloud ライト・アカウント含め、IBM CloudでNode-REDを構築するときの定番のNode-RED初期設定画面が表示されます。
「Next」をクリックします。
image.png
ログインに必要なユーザー名とパスワードを入力し、「Next」をクリックします。
image.png
「Next」をクリックします。IBM Cloud版のNode-REDはこうした初期設定画面があるので、ユーザーに優しいです。
image.png
「Finish」をクリックします。
image.png

Node-REDにログイン

初期設定画面で登録したユーザー名とパスワードでログインします。
image.png
見た目は、普通のNode-REDです。
image.png
バージョンは、1.1.3 です。
image.png

初期状態では、IBM WatsonやDb2、Cloudantなど、IBM Cloudの定番サービスにつなげるノードが入っています。
image.png

動作確認

Watson Discovery Newsに指定したキーワードに関するニュースを探しに行くことができました。
image.png

動作確認に用いましたサンプルコードはこちらです。

[{"id":"e8728f0c.c9a79","type":"tab","label":"Watson Discovery 検証","disabled":false,"info":""},{"id":"2fe00f24.07a54","type":"inject","z":"e8728f0c.c9a79","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":"","topic":"","payload":"covid-19","payloadType":"str","x":120,"y":40,"wires":[["4a91a3de.ecd04c"]]},{"id":"bf8416f0.6e6618","type":"watson-discovery-v1","z":"e8728f0c.c9a79","name":"","environmentname":"","environmentId":"system","collectionId":"news-en","configurationname":"","configurationId":"","collection_name":"","count":"10","passages":true,"nlp_query":true,"query":"","filter":"","aggregation":"","return":"","description":"","size":0,"discovery-method":"query","service-endpoint":"https://gateway-tok.watsonplatform.net/discovery/api","x":400,"y":180,"wires":[["1a0e5715.b9ff59"]]},{"id":"1a0e5715.b9ff59","type":"debug","z":"e8728f0c.c9a79","name":"msg.discovery","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":620,"y":180,"wires":[]},{"id":"4a91a3de.ecd04c","type":"watson-discovery-v1-query-builder","z":"e8728f0c.c9a79","name":"","password":"","apikey":"wP8AnY1Frbu2eKJ7CzES8JzeVeqOtDVDrmL4js0YxCLi","environment":"4d107fa6-ce06-44ca-8d87-6bf0689acdc2","environmenthidden":"","collection":"c57d3994-63c7-4e84-976b-5fe7c480cc16","collectionhidden":"","nlp_query":true,"nlp_queryhidden":"true","querynlp":"","querynlphidden":"","query1":"text","query1hidden":"","queryvalue1":"","queryvalue1hidden":"","query2":"text","query2hidden":"","queryvalue2":"","queryvalue2hidden":"","query3":"text","query3hidden":"","queryvalue3":"","queryvalue3hidden":"","passages":false,"passageshidden":"false","service-endpoint":"https://gateway-tok.watsonplatform.net/discovery/api","x":390,"y":40,"wires":[["c2207b25.bd2ee8"]]},{"id":"c2207b25.bd2ee8","type":"function","z":"e8728f0c.c9a79","name":"function:query","func":"msg.discoveryparams = {};\nmsg.discoveryparams.environment_id = 'system';\nmsg.discoveryparams.collection_id = 'news-en';\nmsg.discoveryparams.nlp_query = true;\nmsg.discoveryparams.query = msg.payload;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":220,"y":180,"wires":[["bf8416f0.6e6618"]]}]

できなかったこと

dashboard等のノードを、「パレットの管理」から追加しようとしましたが、どれを選んでもエラーになります。
Code Engineがベータ版であるためかもしれませんので、Code Engineが正式にリリースされた際に再度確認することにしましょう。

Code Engine の管理画面

IBM Cloudのダッシュボードに戻ります。Code Engineのプロジェクト管理画面で、Node-REDデプロイ時に決めたプロジェクト名をクリックします。
image.png
Node-REDに割り当てている情報が表示されます。
image.png

Code Engineはオートスケールとあるので、Code Engineが正式リリースされた際に負荷をかけて遊ぶ楽しみが残っています。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0