0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

enebularでnode-red その18

0
Last updated at Posted at 2026-08-21

概要

enebularでnode-redやってみる。
enebular-cliのチュートリアルを見つけたのでやってみる。

参考にしたページ

手順

インストール

windows 10に、node.jsとenebular-cliをインストール。

>winget install CoreyButler.NVMforWindows

見つかりました NVM for Windows [CoreyButler.NVMforWindows] バージョン 1.2.2
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://github.com/coreybutler/nvm-windows/releases/download/1.2.2/nvm-setup.exe
  ??????????????????????????????  5.35 MB / 5.35 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストーラーは管理者として実行するように要求します。プロンプトが表示されます。
インストールが完了しました


>nvm install lts

'nvm' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

isa>nvm install lts
Downloading node.js version 24.19.0 (64-bit)...
Extracting node and npm...
Complete
Installation complete.
If you want to use this version, type:

nvm use 24.19.0


>nvm use lts

Now using node v24.19.0 (64-bit)


>node -v
v24.19.0

>npm -v
11.17.0


added 3 packages in 10s
npm notice
npm notice New major version of npm available! 11.17.0 -> 12.0.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.2
npm notice To update run: npm install -g npm@12.0.2
npm notice

>npm -v
11.17.0

>node -v
v24.19.0

>nvm use 22.11.0
activation error: Version not installed. Run "nvm ls" to see available versions.


>nvm list

  * 24.19.0 (Currently using 64-bit executable)


>nvm install 22.11.0
Downloading node.js version 22.11.0 (64-bit)...
Extracting node and npm...
Complete
Installation complete.
If you want to use this version, type:

nvm use 22.11.0


>nvm use 22.11.0
Now using node v22.11.0 (64-bit)


>npm install -g @uhuru/enebular-cli


added 3 packages in 4s

>enebular version
version: 1.0.0




アクセスキーを作成する

enebular CLI を使うには、アクセスキーとシークレットキーが必要です。enebular のアカウント設定画面から作成できます。

画面右上のユーザーメニューから「アカウント設定」を開く
「アクセスキー / シークレットキー」の項目で、説明文を入力して「作成」をクリック
表示されたアクセスキーとシークレットキーをコピーしておく
シークレットキーは作成時にしか表示されません。コピーするか、CSV ファイルとしてダウンロードして保管してください。

zipファイルを用意する

任意の作業ディレクトリを作成し、以下の内容で lambda_function.py を作成します。

import json
from datetime import datetime


def lambda_handler(event, context):
    response = {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json'
        },
        'body': json.dumps({
            'message': 'Hello from enebular CLI!',
            'timestamp': datetime.now().isoformat()
        })
    }

    return response

これを ZIP ファイルにまとめます。

Windows の場合は、lambda_function.py を右クリックして「送る」→「圧縮 (zip 形式) フォルダー」を選択し、python-app.zip という名前で保存します。

プロジェクトを作る

今回、フローは使わないので、デフォルトのプライベートノードの利用はOFFにしました。

クラウド実行環境の作成

クラウド実行環境は、ZIPファイルアーカイブのデプロイにチェックを入れ、ランタイムとアーキテクチャは計画と使用しているPCに合わせて作成しました。

image.png

ZIP ファイルを登録する

作成した ZIP ファイルを enebular に登録します。

enebular add file \
  --project-id <プロジェクトID> \
  --file ./python-app.zip \
  --deploy-type cloud \
  --handler lambda_function.lambda_handler \
  --name "python-hello" \
  --detail "Python Hello World"

各オプションの意味は以下のとおりです。

--project-id :登録先のプロジェクト ID
--file :アップロードする ZIP ファイルのパス
--deploy-type :デプロイ先の種別。今回はクラウド実行環境なので cloud
--handler :ハンドラー名。<ファイル名>.<関数名> の形式で、今回は lambda_function の lambda_handler
--name :アセット名。1 〜 30 文字の英数字
--detail :アセットの説明
実行すると、確認プロンプトが表示されたあと、登録処理が進みます。完了すると、登録されたアセットの ID が表示されます。この ID は次のコマンドで使うので、メモしておいてください。

プロジェクト ID は、enebular の画面でプロジェクトの左側の設定メニューから確認できます。

image.png

クラウド実行環境にデプロイする

次に、登録したファイルをクラウド実行環境にデプロイします。

enebular deploy cloud \
  --project-id <プロジェクトID> \
  --cloud-id <クラウド実行環境ID> \
  --asset-id <先ほど登録したアセットのID> \
  --asset-type file

各オプションの意味は以下のとおりです。

--project-id :プロジェクト ID
--cloud-id :デプロイ先のクラウド実行環境 ID
--asset-id :1 コマンド目で登録したアセット ID
--asset-type :アセット種別。ZIP ファイルの場合は file
クラウド実行環境 ID は、enebular のクラウド実行環境画面で対象の環境を開き、設定タブで確認できます。実行が完了すれば、デプロイは完了です。

  プロジェクト: enebular-demo-ai(<プロジェクトID>)
  クラウド実行環境: cloud-app-20260512(<クラウド実行環境ID>)
  アセット: python-hello(<アセットID>)
  種別: ファイル
  クラウド実行環境へのアセットデプロイを実施します。
  実行してもよろしいですか? [y/N]
> y
成功しました
デプロイ先:
  プロジェクト: enebular-demo-ai(<プロジェクトID>)
  クラウド実行環境: cloud-app-20260512(<クラウド実行環境ID>)
  アセット: python-hello(<アセットID>

動作確認

デプロイが完了したら、enebular の画面でクラウド実行環境を開き、デプロイ履歴に「デプロイ済み」のステータスが表示されていることを確認します。

HTTP トリガーを設定している場合は、設定画面に表示される URL にブラウザでアクセスすると、以下のような JSON レスポンスが返ってきます。

{
"message": "Hello from enebular CLI!",
"timestamp": "2026-05-07T12:34:56.789000"
}
HTTP トリガーがまだ設定されていない場合は、クラウド実行環境の設定タブから有効にしてください。

エラーが出ました。


{"message":"Internal Server Error"}

[Aug 21st 2026, 10:44:27]:	2026-08-21T01:44:27.138Z	undefined	ERROR	Uncaught Exception 	{"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'lambda_function'\nRequire stack:\n- /var/runtime/index.mjs","stack":["Runtime.ImportModuleError: Error: Cannot find module 'lambda_function'","Require stack:","- /var/runtime/index.mjs","		at _loadUserApp (file:///var/runtime/index.mjs:1192:17)","		at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1235:21)","		at async start (file:///var/runtime/index.mjs:1454:23)","		at async file:///var/runtime/index.mjs:1464:1"]}
[Aug 21st 2026, 10:44:27]:	INIT_REPORT Init Duration: 88.33 ms	Phase: invoke	Status: error	Error Type: Runtime.ImportModuleError
[Aug 21st 2026, 10:44:27]:	START RequestId: c35ad73f-756c-41e5-8012-2cabba6b0928 Version: $LATEST
[Aug 21st 2026, 10:44:27]:	END RequestId: c35ad73f-756c-41e5-8012-2cabba6b0928
[Aug 21st 2026, 10:44:27]:	REPORT RequestId: c35ad73f-756c-41e5-8012-2cabba6b0928	Duration: 98.11 ms	Billed Duration: 99 ms	Memory Size: 256 MB	Max Memory Used: 77 MB	Status: error	Error Type: Runtime.ImportModuleError

原因は、クラウド実行環境をnodeで作ってた、pythonにする。

{"message": "Hello from enebular CLI!", "timestamp": "2026-08-21T01:56:30.564043"}

image.png

感想

node-red使わないなんて、反則じゃねい。
でも、道は開けた感じがする。

以上。

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?