Node-redフロー内に、ユーザーとパスを持つCassandraDatabaseノードがあります。フローをエクスポートすると、これらの資格情報はjsonに含まれていません。代わりに、flows_cred.jsonファイルが暗号化された文字列で表示されます。
{"$": "df28.....。
...ただし、このファイルをコピーして、node-redインスタンスを別の場所に表示しようとすると、起動時に次のようになります。
[警告]認証情報の読み込みエラー:SyntaxError:位置0のJSONで予期しないトークン-
...その後に「AuthenticationError:認証プロバイダーが設定されていません」というメッセージが繰り返されます。実際、資格情報はノードレッドフローによって取得されていないため、手動で再度入力する必要があります。
資格情報を正常にエクスポートできるようにする秘訣を知っている人はいますか?
資格情報ファイル(flows_cred.json
)は、その内容を簡単に読み取れないように、デフォルトで暗号化されています。
Node-REDは、設定ファイルでキーを指定しない場合、暗号化用のランダムキーを生成します。 Node-REDの2番目のインスタンスが同じ暗号化キーを持っていない場合、ファイルを復号化することはできません。
これを解決するために必要な手順は次のとおりです。
settings.js
ファイルを編集し、必要な文字列値を使用してcredentialSecret
プロパティを追加します。暗号化を無効にする場合は、その値をfalse
に設定します。
credentialSecret: "my-random-string"
Node-REDを再起動し、変更をデプロイします。これにより、Node-REDがトリガーされ、選択したキーを使用して資格情報が再暗号化されます(または、falseに設定されている場合は暗号化が無効になります)。
次に、フロー/認証情報ファイルを2番目のインスタンスにコピーできます。設定ファイルで、同じcredentialSecret
値を指定してください。
credentialSecret
を設定すると、その値を変更できないことに注意してください。