がじぇったー

お金と家電とプログラミングのブログ

Terraformで正規表現を書く(illegal char escapeが出力された場合のエラー対応)

こんにちわ

がじぇったー (@hackmylife7) | Twitter


です。


Terraformで正規表現を書く方法を記載します。

Terraform実行時に"illegal char escape"というエラーが出力された場合の対応になります。




TL;DR(要約)

  • tfファイルで正規表現を書くにはヒアドキュメントを用いる

やりたかったこと


tfファイルで正規表現を書く

resource "aws_cloudwatch_log_subscription_filter" "test_logfilter" {
  name            = "test_logfilter"
  log_group_name  = "test-log-group-name"
  filter_pattern  = { $.type = "ERROR"||$.type = "FATAL"}
  destination_arn = "arn_name"
}


これを上記のCodeのまま実行(terraform apply)すると
"illegal char escape"というエラーが出力されてしまいます。

これを防ぐには以下のようにヒアドキュメントで正規表現を記載します。

resource "aws_cloudwatch_log_subscription_filter" "test_logfilter" {
  name            = "test_logfilter"
  log_group_name  = "test-log-group-name"
  filter_pattern  = <<EOT
{ $.type = "ERROR"||$.type = "FATAL"}EOT
  destination_arn = "arn_name"
}

上記のように記載することでエラーにならずにデプロイされます。


参考
www.terraform.io


Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス

Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス

  • 作者:Kief Morris
  • 発売日: 2017/03/18
  • メディア: 単行本(ソフトカバー)