ElastAlertのalertオプションのcommandの引数のエスケープ文字について

はじめに

ElastAlertのalertオプションにcommandアラートというのがあります。
アラート検出時に、コマンドラインアプリをキックすることができるという代物で、もちろん引数も設定できますが、特定の文字を引数に設定する場合は、エスケープが必要でした。
それを紹介したいと思います。

commandアラート(ElastAlert公式ドキュメントより)

alert:
- command
   command: ["/bin/send_alert", "--username", "%(username)s"]

Version

ElastAlert 0.2.4

ダメな文字

では、早速、エスケープしないとダメな文字は次の3つです。これら以外の文字は大丈夫でした。

%, {, }

そのままcommandアラートに設定しちゃうとエラーになります。

対処方法

この3つの文字を

%, {, }

エスケープするには、自分自身を二重にするとエスケープされます。

%%, {{, }}

まとめ

ElastAlertのcommandアラートの引数に次の3つの文字を設定する場合、エスケープが必要ということとその対象方法を紹介しました。

  • エスケープが必要な文字
    %, {, }
  • 対処方法:二重に設定する。
    %%, {{, }}

この対処をするケースは、稀なのかもですが。。。
コマンドラインアプリの構成で、APIキーやパスワードなどを引数にするコマンドラインアプリの場合は、これらの記号が入るケースもあるので、考慮が必要です。

タイトルとURLをコピーしました