はじめに
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キーやパスワードなどを引数にするコマンドラインアプリの場合は、これらの記号が入るケースもあるので、考慮が必要です。