LoginSignup
6
0

More than 3 years have passed since last update.

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

Posted at

この記事は 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が正式リリースされた際に負荷をかけて遊ぶ楽しみが残っています。

6
0
0

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
  3. You can use dark theme
What you can do with signing up
6
0