小编Azu*_*Ice的帖子

如果一个日志具有特定消息,如何显示日志流中的所有 CloudWatch 日志?

我对 AWS CloudWatch 日志查询语法很陌生,正在寻找解决我的问题的方法。

我想提出适当的 CloudWatch 查询,如果一个日志包含一个唯一值,它将显示来自特定日志流的所有日志。看起来像是根据前一个的结果执行 1 个查询。

第一个看起来像:

fields @message, @logStream 
| filter @message like /UNIQUE_VALUE/
Run Code Online (Sandbox Code Playgroud)

它产生以下形式的结果:

#  @message      @logStream
1  UNIQUE_VALUE  log_stream/1a23c4
Run Code Online (Sandbox Code Playgroud)

最后一个查询:

fields @message
| filter @logStream like "log-stream/1a23c4"
| sort asc
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想让它成为参数化的 CloudWatch 查询 - 我输入 UNIQUE_VALUE 并接收last query的输出。

amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights

5
推荐指数
1
解决办法
1182
查看次数

使用 yq 替换 yaml 文件中的字符串

我正在尝试用 yq 替换 yaml 文件中的所有子字符串。

文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: <SOME_NAME>
  name: <SOME_NAME>
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: <SOME_NAME>
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: <SOME_NAME>
    spec:
      serviceAccountName: api
      containers:
        - image: some-docker-repo/<SOME_NAME>:latest
Run Code Online (Sandbox Code Playgroud)

现在我正在使用这样的命令:

yq e '
  .metadata.labels.app = "the-name-to-use" |
  .metadata.name = "the-name-to-use" |
  .spec.selector.matchLabels.app = "the-name-to-use" |
  .spec.template.metadata.labels.app = "the-name-to-use" |
  .spec.template.spec.containers[0].image |= sub("<SOME_NAME>", "the-name-to-use")
' template.yaml  > result.yaml
Run Code Online (Sandbox Code Playgroud)

但我确信它可以作为一句台词来完成。我尝试使用不同的变体

yq e …
Run Code Online (Sandbox Code Playgroud)

bash shell json yq

3
推荐指数
1
解决办法
5767
查看次数