web-dev-qa-db-ja.com

node-red-Node資格情報

Node-redフロー内に、ユーザーとパスを持つCassandraDatabaseノードがあります。フローをエクスポートすると、これらの資格情報はjsonに含まれていません。代わりに、flows_cred.jsonファイルが暗号化された文字列で表示されます。

{"$": "df28.....。

...ただし、このファイルをコピーして、node-redインスタンスを別の場所に表示しようとすると、起動時に次のようになります。

[警告]認証情報の読み込みエラー:SyntaxError:位置0のJSONで予期しないトークン-

...その後に「AuthenticationError:認証プロバイダーが設定されていません」というメッセージが繰り返されます。実際、資格情報はノードレッドフローによって取得されていないため、手動で再度入力する必要があります。

資格情報を正常にエクスポートできるようにする秘訣を知っている人はいますか?

5
thechane

資格情報ファイル(flows_cred.json)は、その内容を簡単に読み取れないように、デフォルトで暗号化されています。

Node-REDは、設定ファイルでキーを指定しない場合、暗号化用のランダムキーを生成します。 Node-REDの2番目のインスタンスが同じ暗号化キーを持っていない場合、ファイルを復号化することはできません。

これを解決するために必要な手順は次のとおりです。

  1. settings.jsファイルを編集し、必要な文字列値を使用してcredentialSecretプロパティを追加します。暗号化を無効にする場合は、その値をfalseに設定します。

    credentialSecret: "my-random-string"
    
  2. Node-REDを再起動し、変更をデプロイします。これにより、Node-REDがトリガーされ、選択したキーを使用して資格情報が再暗号化されます(または、falseに設定されている場合は暗号化が無効になります)。

  3. 次に、フロー/認証情報ファイルを2番目のインスタンスにコピーできます。設定ファイルで、同じcredentialSecret値を指定してください。

credentialSecretを設定すると、その値を変更できないことに注意してください。

8
knolleary