IoT Flow Runtime Editorの使用
OCI統合のNode-REDエディタを使用して、フローの構築とデプロイ、Oracle DatabaseおよびOCIノードの構成、および他の認可されたユーザーとのコラボレーションを行います。
各IoTフロー・ランタイムには、管理されたノード-REDエディタが用意されています。
OCIコンソールの「フロー・ランタイム詳細」ページからエディタを開きます。OCIコンソールのシングル・サインオンでは、エディタに対して認証されるため、個別のノード-RED資格証明は必要ありません。IoTフロー・ランタイムの検索に関するヘルプが必要な場合は、IoTフロー・ランタイムのリストを参照してください。
ノード-REDエディタは、フロー・ランタイム・エンドポイントに次の形式を使用します。
https://<flow-runtime-short-id>.flows.iot.<region>.oci.customer-oci.com/
フローを表示または編集できるかどうかは、OCIIAM権限によって決まります。
OCIおよびノード-REDナビゲーション
OCIナビゲーション・バーは、標準のNode-REDエディタ・ヘッダーの上に表示されます。
| コントロール | 摘要 |
|---|---|
| <flow-runtime-short-id> | OCIコンソールのフロー・ランタイムの詳細ページに戻ります。 |
| 「エディタ」または「ビューア」 | 現在のアクセスレベルを表示します。エディタはフローを変更およびデプロイできます。ビューアはエディタを検査できますが、変更をデプロイできません。 複数のユーザーがログインしている場合、このフローが別のユーザーによって更新されていることを示すメッセージが表示されます。他のユーザーには、変更を確認またはマージするオプションが表示されます。 |
| 残りセッション | 認証済エディタ・セッションの残り時間を表示します。 |
| 拡張 | 認証済エディタ・セッションの時間を延長する場合に選択します。 |
| ヘルプ | エディタのヘルプを開きます。 |
| サイン・アウト | エディタセッションを終了します。 |
Node-REDヘッダーには、「デプロイ」およびメイン・メニューが含まれます。エディタには、左側のノード・パレット、中央のフロー・ワークスペース、右側の情報、ヘルプ、デバッグ、構成およびコンテキスト・サイドバーが含まれます。
複数のユーザーの処理
複数の認可ユーザーが、同じフロー・ランタイムを開いて編集できます。各ユーザーは、個別のブラウザ・エディタ・セッションで作業します。これは、キャラクタごとのコラボレーション編集ではありません。
変更をアンデプロイしている間に別のユーザーが変更をデプロイした場合、デプロイする前に、新しいデプロイ済フロー構成を確認してマージするオプションがあります。可能な場合は、デプロイメントを調整し、関連する作業を別々のフロー・タブで維持します。作業をタブに分割すると、変更を比較およびマージしやすくなります。詳細は、フロー構造を参照してください。
フロー・ランタイム・ソフトウェアの更新
OCI IoTは、管理対象ノード-REDランタイムを含むフロー・ランタイムのソフトウェアを管理します。ノード-REDのパレット・マネージャを使用して管理対象ランタイムを更新しないでください。パレット・マネージャは、許可されたノード・モジュールを管理します。
1つ以上のフロー・ランタイムにソフトウェア更新が必要な場合、OCIは、影響を受けるリージョン、フロー・ランタイム名、フロー・ランタイムOCIDおよび期限までに必要なアクションをリストするお知らせを送信します。リストされた各フロー・ランタイムの更新を、そのお知らせの期限までに完了してください。
OCIコンソールの「お知らせ」でアップグレード通知を確認します。電子メールでお知らせを受信するには、必要な電子メール受信者を使用してお知らせサブスクリプションとその通知トピックを構成します。お知らせサブスクリプションの作成に関する項を参照してください。
短時間の中断を計画します。フロー・ランタイムが非アクティブ化されて再アクティブ化されている間は、フロー処理は一時停止し、エディタは使用できません。
- お知らせを開き、影響を受けるリソースおよび期限を確認します。コンソールにリストされたリソースを検索するには、IoTフロー・ランタイムのリストを参照してください。
- 更新する前に、必要なファイルをフロー・ランタイムのローカル・ファイル・システムからAutonomous Database、ファイル・ストレージまたは別の永続ストレージ・サービスに移動します。ローカル・ファイル・システムは一時的であり、そのファイル上のファイルは非アクティブ化またはアクティブ化中に失われる可能性があります。Autonomous Databaseに格納されたデータおよびマウントされたファイル・ストレージ・ファイル・システムは保持されます。フロー定義に別のリカバリ・ポイントが必要な場合は、現在のフローJSONをバックアップします。
- 影響を受けるフロー・ランタイムを非アクティブ化し、非アクティブ化作業リクエストが完了し、ライフサイクル状態が「非アクティブ」になるまで待機します。
- フロー・ランタイムのアクティブ化: 保留中のソフトウェア更新を適用します。アクティブ化作業リクエストが正常に完了し、ライフサイクル状態が「アクティブ」になるまで待機します。作業リクエストの状態および詳細は、IoTドメイン・グループ、ドメインおよびフロー・ランタイムの作業リクエストを参照してください。
- エディタを開き、フロー、フロー・ランタイム・インタフェース、Oracleノード、およびワークロードで使用されるその他の許可されたノード・モジュールが正常に動作することを確認します。アクティブ化またはフローの実行に失敗した場合は、構成されたフロー・ランタイム・ログを確認します。
「期限までに必要なアクション」期限までに更新を完了しない場合、OCIは影響を受けるフロー・ランタイムを非アクティブ化します。フロー・ランタイムは、アクティブ化するまで「非アクティブ」状態のままです。アクティブ化すると、保留中のソフトウェア更新が適用され、サービスに戻されます。
フローのバックアップと復元
「フロー」タブには、フロー・ランタイムの1つの現在の完全なノード-RED flows.json構成ファイルが格納されます。別のflows.jsonを追加すると、そのアクティブな構成が置き換えられ、個別に保持されるバックアップは作成されません。
オブジェクト・ストレージ・バケットなど、フロー・ランタイムの外部にあるポイントインタイム・コピーを保存します。ファイル・ストレージ・マウントでは、実行中のフローでファイルを使用できるようになり、この管理側のバックアップには必要ありません。
JSONフロー構成のバックアップ
- Node-REDエディタで、完全なフローJSON構成をエクスポートし、JSONファイルをダウンロードします。かわりに、コンソール、CLIまたはAPIを使用して、フロー・ランタイムからアクティブなフローJSONを取得できます。
- オブジェクト・ストレージ・バケットを作成するか、既存のバックアップ・バケットを選択します。Object Storageで同じオブジェクト名を使用する以前のバージョンを保持する場合は、オブジェクトのバージョニングを有効にします。
- JSONファイルをアップロードします。フロー・ランタイムおよびバックアップ時間を識別する名前(
flow-runtimes/<flow-runtime-short-id>/2026-07-28T160000Z-flows.jsonなど)を使用します。 - フロー・ランタイムOCID、Node-REDバージョン、エクスポート時間およびバックアップの理由を記録します。オブジェクトをダウンロードし、リカバリのためにオブジェクトに依存する前に有効なJSONが含まれていることを確認します。
JSONフロー構成のリストア
- 現在のフローJSON構成を取得して外部的に保存してから、置換します。
- オブジェクト・ストレージからリストアするポイントインタイムJSON構成をダウンロードします。
- JSONを「フロー」タブに追加するか、CLIまたはAPIを使用して完全なフローJSONを置換します。フローの検索に関するヘルプが必要な場合は、IoTフロー・ランタイムのリストを参照してください。
- ノード-REDエディタを開き、フロー、共有構成ノードおよびインストール済ノード・モジュールを確認します。エクスポートされたJSONで保持されなかった必要な資格証明を再入力し、クリティカル・フローをテストします。
フローJSONには、機密エンドポイントおよび構成の詳細を含めることができ、資格証明バックアップ・ノードに必要なすべてのシークレットを保持しない場合があります。バックアップ・オブジェクトへのアクセスを制限し、リストア・プロセスに頼る前にリストア・プロセスをテストします。
Oracleノード
管理対象パレットには、標準のNode-REDノードに加えて、Oracle DatabaseノードおよびOCIノードが含まれます。フロー・ランタイムで使用可能なノードは、サービス・バージョンによって異なります。
Oracle Databaseノード
db-nodesグループは、構成時に顧客のAutonomous Databaseを含むフローをOracle Databaseに接続します。
| ノード | 摘要 |
|---|---|
| db接続 | 他のデータベース・ノードが使用する共有Oracle Database接続を定義します。 |
| トランザクションの開始 | データベース接続を取得し、ダウンストリーム・データベース操作のトランザクションを開始します。 |
| トランザクションを終了 | 現在のトランザクションをコミットまたはロールバックし、データベース接続を解放します。 |
| エンキュー | 構成済のOracle Databaseトランザクション・イベント・キューにメッセージを追加します。 |
| デキュー | 構成済のOracle Databaseトランザクション・イベント・キューからメッセージを取得します。 |
| sql | 構成済のデータベース接続を使用してSQL文を実行します。 |
OCIノード
OCI-nodesグループは、フローをサポート対象のOCI IoT操作に接続します。
| ノード | 摘要 |
|---|---|
| iot-config | OCIノードで使用される共有OCI構成認証、リージョンおよびデフォルト・コンパートメント設定を定義します。 |
| 送信コマンド | デジタル・ツイン・インスタンスにコマンドを送信します。 |
| 登録 | サポートされているOCI IoTソースからのメッセージへのフローをサブスクライブします。 |
| 遠隔測定 | フローからOCI IoTにテレメトリを送信します。 |
OCI構成オプション
パレットは、共有構成ノード iot-configにラベルを付けます。その編集ダイアログでは、OCI Configラベルが使用されます。フローに適した認証タイプを選択します。
| 認証タイプ | 摘要 |
|---|---|
| 構成ファイル | OCI SDK構成ファイルおよび選択したプロファイルを使用します。 |
| Instance Principal | インスタンス・プリンシパルがランタイム環境で使用可能である場合、OCIコンピュート・インスタンスのアイデンティティを使用します。 |
| リソース・プリンシパル | Flow Runtimeリソース・プリンシパルを使用します。このオプションは、ユーザーの存続期間が長い資格証明をフローに格納することを回避します。フロー・ランタイムを動的グループに追加し、そのノードがアクセスするOCIリソースに必要なポリシーのみを付与します。 |
| APIキー(シンプル) | 構成ノードに指定されたOCIユーザーAPI署名キー情報を使用します。ターゲット・サービスがサポートする場合は、これらの資格証明を保護し、かわりにリソース・プリンシパルを使用します。 |
OCI資格証明参照では、サポートされている資格証明フィールドに値が指定されます。これらは、このリストの追加認証タイプではありません。リテラル資格証明値のかわりにVaultシークレットまたは証明書OCIDを使用するには、フロー資格証明のOCI参照の使用を参照してください。
「リージョン」を、ターゲット・リソースを含むリージョンに設定します。コンパートメントOCIDを子OCIノードのデフォルト・コンパートメントに設定します。子ノードは、デフォルト・コンパートメントをオーバーライドできます。
構成を変更した後、「更新」を選択し、「デプロイ」を選択して、「接続のテスト」を使用します。
フロー資格証明のOCI参照の使用
資格証明値を直接入力するかわりに、サポートされているノード資格証明フィールドにOCIリソースOCIDを使用します。フロー・ランタイムは、入力されたとおりに参照を格納し、フローのデプロイ時または起動時に実行中ノードの参照を解決します。リテラル資格証明の値は引き続きサポートされます。
flowドキュメントに保存されたリテラル資格証明は、停止時に暗号化されます。これは、アップロードされたキーまたは証明書ファイルをフロー・ランタイムのローカル・ファイル・システムに格納することとは異なります。これは一時的なものです。フロー・ランタイム・ソフトウェアの更新を参照してください。OCI参照では、フロー・ドキュメントに資格証明値ではなく参照が格納されます。
参照は、ノードおよび構成ノードの資格証明フィールド、およびサポートされているノードで使用される資格証明タイプの環境変数でサポートされます。通常のノード・プロパティ、メッセージまたはファンクション・コードのOCIDは、資格証明として解決されません。
参照形式とサポートされているリソース
<resource-OCID>[#<JSON-pointer>]
<resource-OCID>を、シークレット、証明書または認証局のOCIDに置き換えます。JSONポインタは/で始まり、RFC 6901の後に続くため、文字列値を選択する必要があります。証明書と認証局の参照にはポインタが必要です。
| リソース | サポートされるポインタ |
|---|---|
Vaultシークレット(ocid1.vaultsecret) | オプション。プレーン・テキスト・シークレットにはベア・シークレットOCIDを使用し、JSONシークレットの文字列には#/passwordや#/services/payment/apiTokenなどのポインタを使用します。 |
証明書(ocid1.certificate) | #/certificatePem、#/certChainPem、#/privateKeyPemまたは#/privateKeyPemPassphrase |
認証局(ocid1.certificateauthority) | #/certificatePemまたは#/certChainPem |
他のOCIDリソース・タイプは資格証明参照としてサポートされていません。たとえば、ボールトまたは暗号化キーOCIDではなく、シークレットOCIDを使用します。
JSONシークレットの明示的なポインタを優先します。JSONシークレット全体を資格証明オブジェクトにマップするには、キーがノードの完全な資格証明フィールド・セットと完全に一致する文字列値が必要です。
参照リソースへのアクセス権の付与
フロー・ランタイムを動的グループに追加し、そのグループにフローに必要なリソースへのアクセス権を付与します。これらの権限は、ユーザーのエディタ・セッションやデジタル・ツイン・デバイスの認証アイデンティティではなく、フロー・ランタイム・リソース・プリンシパル用です。
単一シークレットの場合、このポリシーのプレースホルダを置換します:
Allow dynamic-group <flow-runtime-dynamic-group> to read secret-bundles in compartment <secret-compartment> where target.secret.id = '<secret-OCID>'
証明書および認証局参照の場合、リソース・コンパートメントで適用可能なバンドル権限を付与します:
Allow dynamic-group <flow-runtime-dynamic-group> to read leaf-certificate-bundles in compartment <certificate-compartment> where target.leaf-certificate.bundle-type = 'CERTIFICATE_CONTENT_WITH_PRIVATE_KEY'
Allow dynamic-group <flow-runtime-dynamic-group> to read certificate-authority-bundles in compartment <ca-compartment>
証明書参照は、その秘密キーを含むバンドルを取得します。秘密キー・アクセス権を付与する前に、必要なリソースへのアクセスを制限し、証明書サービス・ポリシー参照を確認してください。
エディタでの参照の入力
- ノードまたは構成ノード・エディタを開きます。
- サポートされている資格証明フィールドに参照を入力してください。HTTP Basic認証の場合は、
example-userなどのプレーン・テキスト・ユーザー名およびパスワードのシークレット参照を優先します。
Bearerトークンまたはパスワードを含むプレーン・テキスト・シークレットの場合は、ポインタなしでシークレットOCIDを入力します。<secret-OCID>#/password - TLSクライアント認証の場合は、該当する参照を使用します。必要な証明書および秘密キーの値を含むバンドルを持つ証明書を使用します。CA資格証明に認証局参照を使用します。
資格 参照 クライアント証明書 <certificate-OCID>#/certificatePem秘密キー <certificate-OCID>#/privateKeyPemCA証明書 <certificate-authority-OCID>#/certificatePem秘密キー・パスフレーズ(必要な場合) パスフレーズを含むプレーン・テキストVaultシークレットのOCID。 - 「完了」、「デプロイ」の順に選択します。
- 目的の接続をテストします。解決された資格証明または秘密キーをロギングせずに、認証および予想される宛先を確認します。
資格証明環境変数を使用した参照の再利用
- エディタ・メニューを開き、「ユーザー設定」、「環境」の順に選択します。
- グローバル環境変数を追加し、そのタイプとして「資格証明」を選択し、値としてOCI参照を入力し、設定を保存します。たとえば、
TLS_CLIENT_CERTを<certificate-OCID>#/certificatePemに設定します。 - サポートされているノード・フィールドで、環境変数を選択します。
tls-configノードの場合、証明書タイプとして「環境変数」を選択し、必要な証明書、キー、CA証明書およびオプションのパスフレーズ・フィールドの変数を選択します。 - フローをデプロイしてテストします。
資格証明タイプの環境値は、「ユーザー設定」でマスクされます。フロー・ランタイムは、使用するノードが環境値を評価する前に参照を解決します。
デプロイメント、リフレッシュおよびトラブルシューティング
参照は、メッセージごとに1回ではなく、デプロイメントまたは起動時に解決されます。参照リソースを変更すると、実行中のフローが即時にリフレッシュされるとはかぎりません。変更後、前の値をリタイアする前に、特定の資格証明およびノードのリフレッシュ動作を検証します。
HTTP Basic認証または相互TLSで使用される参照資格証明をリフレッシュするには、フローを再デプロイするか非アクティブ化してから、フロー・ランタイムをアクティブ化します。これらのアクションは、直接参照されるVaultパスワードと、資格証明環境変数を使用して構成されたインポートされたクライアント証明書、秘密キーおよび外部管理CA参照をリフレッシュします。以前の値を廃止する前に、新しい資格証明で認証が成功することを確認します。これは、自動リフレッシュや内部管理CAを更新する手順ではありません。ユーザー名参照は必要に応じてサポートされますが、リテラル・ユーザー名と別に格納されたパスワードをお薦めします。
誤った形式のOCIDs、サポートされていないリソース・タイプ、無効なポインタ、欠落しているポインタ・ターゲット、および文字列以外の結果はデプロイメントを拒否します。参照タイプ、ポインタ、リソース権限および必須バンドル・フィールドを確認します。解決されたシークレット、PEMデータ、秘密キーまたは認可値をログまたはサポート・リクエストにコピーしないでください。
CLIまたはAPIを使用してフローを更新する場合は、最初に現在のフロー・ドキュメントを取得して保存します。フローを更新すると、ドキュメント全体が置き換えられます。新しい資格証明フラグメントのみを送信するのではなく、完全なコンテンツが保持されます。
ノード・モジュールの管理
OCI IoT Flow Runtimeの管理対象ノード-REDエディタで、パレット・マネージャを使用して、使用可能なノード・モジュールのリストを表示します。モジュールは、この既存リストからのみインストールできます。新しいモジュールをリストに追加したり、パブリックNode-REDライブラリから任意のモジュールをインストールすることはできません。