@uhuru/enebular-cli
v1.0.0
Published
enebular CLI
Readme
enebular CLI
enebular を操作するためのコマンドラインツールです。
インストール
Node.js 22 以上が必要です。
npm install -g @uhuru/enebular-cliインストール後は enebular コマンドが利用できます。
enebular version認証
CLI の利用にはアクセスキー / シークレットキーが必要です。 enebularのアカウント設定画面から作成できます。
アクセスキー / シークレットキーは、次のいずれかで指定できます。
- コマンド引数の
--access-key/--secret-key --profileで指定した設定ファイルのプロファイル- 設定ファイルの
defaultプロファイル - 環境変数
ENEBULAR_ACCESS_KEY/ENEBULAR_SECRET_KEY
設定ファイルの配置先:
- Windows:
C:\Users\<ユーザー名>\.enebular\credentials - macOS / Linux:
~/.enebular/credentials
設定ファイルの例:
[default]
access-key=<enebularで作成したアクセスキーA>
secret-key=<enebularで作成したシークレットキーA>
[staging]
access-key=<enebularで作成したアクセスキーB>
secret-key=<enebularで作成したシークレットキーB>設定ファイルでは、access-key / secret-key のキー名が利用できます。
任意のプロファイルを使う場合の例(ファイルの登録):
enebular add file \
--project-id <プロジェクトID> \
--file ./app.zip \
--deploy-type cloud \
--handler handler \
--name "My App" \
--detail "説明" \
--profile staging環境変数の設定方法:
export ENEBULAR_ACCESS_KEY=<enebularで作成したアクセスキー>
export ENEBULAR_SECRET_KEY=<enebularで作成したシークレットキー>認証情報の解決順:
--access-keyと--secret-key--profileで指定したプロファイル- 設定ファイルの
[default]プロファイル - 環境変数
ENEBULAR_ACCESS_KEY/ENEBULAR_SECRET_KEY
基本構文
enebular <アクション> <ターゲット> [オプション]出力仕様
--jsonなし: 実行内容を表示し、確認後に結果を標準出力へ表示--jsonあり: 成功時は{ "result": "success", ... }、失敗時は{ "result": "fail", "code": "...", "message": "..." }を出力- 終了コード: 成功
0、失敗1
対応コマンド
| アクション | ターゲット | 説明 | | ----------- | ------------------- | ------------------------------------------ | | add | file | ファイルアセット登録 | | update | file | ファイルアセット更新 | | copy | file | ファイルアセットのコピー | | copy | privatenode | プライベートノードアセットのコピー | | copy | flow | フローアセットのコピー | | add | flow-version | フローのバージョン作成 | | add | privatenode-version | プライベートノードアセットのバージョン作成 | | add | file-version | ファイルアセットのバージョン作成 | | bulk-update | cloud-config | クラウド実行環境の一括設定変更 | | deploy | cloud | クラウド実行環境へのデプロイ |
コマンド別オプション
add file
--project-id必須: 登録先プロジェクトID--file必須: アップロードするファイルパス--deploy-type必須: デプロイ先種別。現在はcloudのみ指定可能--handler必須: ハンドラー名--name必須: アセット名。1〜30 文字の英数字--detail必須: アセット説明。512 文字以下--json任意: 確認を省略して JSON 出力--yes任意: 確認を省略
enebular add file \
--project-id <プロジェクトID> \
--file ./app.zip \
--deploy-type cloud \
--handler handler \
--name "My App" \
--detail "説明"update file
--project-id必須: 更新対象アセットが属するプロジェクトID--asset-id必須: 更新対象のアセットID--file必須: 差し替えるファイルパス--json任意: 確認を省略して JSON 出力--yes任意: 確認を省略
enebular update file \
--asset-id <アセットID> \
--file ./app.zipcopy file
--from-project-id必須: コピー元プロジェクトID--from-asset-id必須: コピー元アセットID--to-project-id必須: コピー先プロジェクトID--to-asset-id任意: コピー先アセットID。省略時は新規作成--json任意: 確認を省略して JSON 出力--yes任意: 確認を省略
enebular copy file \
--from-project-id <コピー元プロジェクトID> \
--from-asset-id <コピー元アセットID> \
--to-project-id <コピー先プロジェクトID>
enebular copy file \
--from-project-id <コピー元プロジェクトID> \
--from-asset-id <コピー元アセットID> \
--to-project-id <コピー先プロジェクトID> \
--to-asset-id <コピー先アセットID>copy privatenode
--from-project-id必須: コピー元プロジェクトID--from-asset-id必須: コピー元プライベートノードアセットID--to-project-id必須: コピー先プロジェクトID--to-asset-id任意: コピー先アセットID。省略時は新規作成--json任意: 確認を省略して JSON 出力--yes任意: 確認を省略
enebular copy privatenode \
--from-project-id <コピー元プロジェクトID> \
--from-asset-id <コピー元アセットID> \
--to-project-id <コピー先プロジェクトID>copy flow
--from-project-id必須: コピー元プロジェクトID--from-asset-id必須: コピー元フローアセットID--to-project-id必須: コピー先プロジェクトID--to-asset-id任意: コピー先アセットID。省略時は新規作成--with-credentials任意: フローに含まれるクレデンシャルもコピー--json任意: 確認を省略して JSON 出力--yes任意: 確認を省略
enebular copy flow \
--from-project-id <コピー元プロジェクトID> \
--from-asset-id <コピー元アセットID> \
--to-project-id <コピー先プロジェクトID>
enebular copy flow \
--from-project-id <コピー元プロジェクトID> \
--from-asset-id <コピー元アセットID> \
--to-project-id <コピー先プロジェクトID> \
--with-credentialsadd flow-version
--project-id必須: 対象プロジェクトID--asset-id必須: バージョンを追加するフローアセットID--name必須: バージョン名--comment必須: バージョンコメント--json任意: 確認を省略して JSON 出力--yes任意: 確認を省略
enebular add flow-version \
--project-id <プロジェクトID> \
--asset-id <フローアセットID> \
--name "v1.0" \
--comment "v1.0 リリース"add privatenode-version
--project-id必須: 対象プロジェクトID--asset-id必須: バージョンを追加するプライベートノードアセットID--name必須: バージョン名--comment必須: バージョンコメント--json任意: 確認を省略して JSON 出力--yes任意: 確認を省略
enebular add privatenode-version \
--project-id <プロジェクトID> \
--asset-id <プライベートノードアセットID> \
--name "v1.0" \
--comment "v1.0"add file-version
--project-id必須: 対象プロジェクトID--asset-id必須: バージョンを追加するファイルアセットID--name必須: バージョン名--comment必須: バージョンコメント--json任意: 確認を省略して JSON 出力--yes任意: 確認を省略
enebular add file-version \
--project-id <プロジェクトID> \
--asset-id <ファイルアセットID> \
--name "v1.0" \
--comment "v1.0"bulk-update cloud-config
--project-id必須: 対象プロジェクトID--cloud-id必須: 設定変更対象のクラウド実行環境ID--config-file必須: 設定内容を記載した JSON のファイルパス--json任意: 確認を省略して JSON 出力--yes任意: 確認を省略
enebular bulk-update cloud-config \
--project-id <プロジェクトID> \
--cloud-id <クラウド実行環境ID> \
--config-file ./config.jsonconfig.json では次のキーを指定できます。
name: クラウド実行環境名。1〜30 文字の英数字、_、-httpTriggerStatus: HTTP トリガーの有効 / 無効。true/falsehttpTriggerPath: HTTP トリガーのパス。httpTriggerStatus: trueの場合は必須scheduleTriggerStatus: スケジュールトリガーの有効 / 無効。true/falsescheduleTriggerDef: cron 式。scheduleTriggerStatus: trueの場合は必須timeout: タイムアウト秒数。1〜900の整数connectAgent: Agent 接続の有効 / 無効。true/falseconnectDataStore: Data Store 接続の有効 / 無効。true/falseenvVars: 環境変数。{ "KEY": "VALUE" }形式
config.json の例:
{
"name": "sample-cloud-app",
"httpTriggerStatus": true,
"httpTriggerPath": "api-v1-run",
"scheduleTriggerStatus": true,
"scheduleTriggerDef": "0 */6 * * *",
"timeout": 300,
"connectAgent": false,
"connectDataStore": true,
"envVars": {
"APP_MODE": "production",
"LOG_LEVEL": "info"
}
}補足:
scheduleTriggerDefは有効な cron 式である必要があります。envVarsではENEBULAR_,AWS_,LAMBDA_で始まるキーや予約済みキーは指定できません。
deploy cloud
--project-id必須: 対象プロジェクトID--cloud-id必須: デプロイ先クラウド実行環境ID--asset-id必須: デプロイ対象アセットID--asset-type必須: アセット種別。flowまたはfile--json任意: 確認を省略して JSON 出力--yes任意: 確認を省略
enebular deploy cloud \
--project-id <プロジェクトID> \
--cloud-id <クラウドID> \
--asset-id <アセットID> \
--asset-type flow