シングルクオートを含む文字列、例えば、'sample'で、CloudWatch Logsを検索したいとき、フィルターパターンとして、"'sample'"を指定すると...
awslogs get ${LOG_GROUP} ALL --start ${START} --end ${END} -f "'sample'"
Oops! エラーになります。
Traceback (most recent call last):
File "/opt/homebrew/bin/awslogs", line 8, in <module>
sys.exit(main())
^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_1/libexec/lib/python3.12/site-packages/awslogs/bin.py", line 210, in main
getattr(logs, options.func)()
File "/opt/homebrew/Cellar/awslogs/0.15.0_1/libexec/lib/python3.12/site-packages/awslogs/core.py", line 219, in list_logs
consumer()
File "/opt/homebrew/Cellar/awslogs/0.15.0_1/libexec/lib/python3.12/site-packages/awslogs/core.py", line 172, in consumer
for event in generator():
File "/opt/homebrew/Cellar/awslogs/0.15.0_1/libexec/lib/python3.12/site-packages/awslogs/core.py", line 159, in generator
response = self.client.filter_log_events(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_1/libexec/lib/python3.12/site-packages/botocore/client.py", line 565, in _api_call
return self._make_api_call(operation_name, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_1/libexec/lib/python3.12/site-packages/botocore/client.py", line 1021, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.errorfactory.InvalidParameterException: An error occurred (InvalidParameterException) when calling the FilterLogEvents operation: Invalid character(s) in term '''
\で、エスケープして、"\'sample\'"としても、
Oops! エラーになります。
その場合、%で囲んで正規表現とした上で、シングルクオートを文字コード\x27で指定するとよいです。
awslogs get ${LOG_GROUP} ALL --start ${START} --end ${END} -f "%\x27sample\x27%"