aws cli 日志过滤模式排除

m-a*_*old 1 logging design-patterns filter command-line-interface amazon-web-services

我正在尝试从在 AWS 中运行的应用程序获取日志,同时排除包含特定短语的日志:

aws logs filter-log-events --log-group-name $MY_LOG_GROUP --filter-pattern -"dont want"
Run Code Online (Sandbox Code Playgroud)

以上工作。但是,如果我改为尝试:

aws logs filter-log-events --log-group-name $MY_LOG_GROUP --filter-pattern -"dontwant"
Run Code Online (Sandbox Code Playgroud)

我得到:

aws: error: argument --filter-pattern: expected one argument
Run Code Online (Sandbox Code Playgroud)

我假设我的 shell 将它解析为一个附加标志,而不是--filter-pattern. 那么,第一个问题:如何强制 aws cli 将其视为参数?

如果我改为尝试:

aws logs filter-log-events --log-group-name "$MY_LOG_GROUP" --filter-pattern -"GET /healthcheck"
Run Code Online (Sandbox Code Playgroud)

我得到:

An error occurred (InvalidParameterException) when calling the FilterLogEvents operation: Invalid filter pattern
Run Code Online (Sandbox Code Playgroud)

第二个问题:这里有什么问题,我该如何解决?

Bra*_*ler 5

试试这个:

aws logs filter-log-events --log-group-name $MY_LOG_GROUP --filter-pattern=-"dont want"
Run Code Online (Sandbox Code Playgroud)

aws cli支持<option>=<value>语法也。看起来这个问题已经有一段时间了

至于第二个例子,斜线会导致问题,但我认为这是有效的,所以它不会尝试解释斜线;也有一段时间的问题:

aws logs filter-log-events --log-group-name "$MY_LOG_GROUP" --filter-pattern='-"GET /healthcheck"'
Run Code Online (Sandbox Code Playgroud)