【问题标题】:aws log get-log-events --log-group-name problemaws log get-log-events --log-group-name 问题
【发布时间】:2020-12-31 14:50:40
【问题描述】:

我正在尝试使用 aws 日志检索日志,但 aws cli 命令未正确处理日志组名称:

$ aws logs get-log-events --log-group-name /aws/lambda/mySkillName --log-stream-name '2018/11/28/[$LATEST]4e288b653df8409e977aa4093303761b'

调用 GetLogEvents 操作时发生错误 (InvalidParameterException):检测到 1 个验证错误:“logGroupName”处的值“C:/Program Files/Git/aws/lambda/mySkillName”未能满足约束:成员必须满足正则表达式模式:[.-_/#A-Za-z0-9]+`

为什么 aws-cli 在日志组名称前添加 C:/Program Files/Git

我在 Windows 10 上运行它。我在 Git-Bash 和 cygwin bash 中得到类似的结果。

更多信息:

带有--debug 标志:

$ aws logs get-log-events --debug --log-group-name /aws/lambda/mySkillName --log-stream-name '2018/11/28/[$LATEST]4e288b653df8409e977aa4093303761b' 2018-12-06 06:54:13,744-MainThread-awscli.clidriver-调试-CLI 版本:aws-cli/1.16.65 Python/2.7.13 Windows/10 botocore/1.12.55 2018-12-06 06:54:13,746 - MainThread - awscli.clidriver - 调试 - 输入 CLI 的参数:['logs'、'get-log-events'、'--debug'、'--log-group- name', 'C:/Program Files/Git/aws/lambda/mySkillName', '--log-stream-name', '2018/11/28/[$LATEST]4e288b653df8409e977aa4093303761b']

嗯,不,这些不是我在 CLI 中输入的参数。 --log-group-name 参数发生了一些变化。

这是做什么的?

【问题讨论】:

  • 您是否尝试过将日志组名称包装为字符串?与您对流名称所做的相同。
  • 是的,我有。它没有改变行为。

标签: aws-cli


【解决方案1】:

这是因为参数以 / 开头,它是 git-bash 上的特殊挂载:

$ mount
C:/Program Files/Git on / type ntfs (binary,noacl,auto)
C:/Program Files/Git/usr/bin on /bin type ntfs (binary,noacl,auto)
C: on /c type ntfs (binary,noacl,posix=0,user,noumount,auto)

这是一个 git-bash 而不是 aws-cli 的问题。

来自https://github.com/git-for-windows/build-extra/blob/master/ReleaseNotes.md

如果您指定以斜杠开头的命令行选项,POSIX 到 Windows 的路径转换将开始转换,例如“/usr/bin/bash.exe”到“C:\Program Files\Git\usr\bin\bash.exe”

解决方案是禁用该转换

MSYS_NO_PATHCONV=1 aws logs get-log-events ...

【讨论】:

  • 发行说明还说“或者,您可以将第一个斜杠加倍以避免 POSIX 到 Windows 的路径转换,例如“//usr/bin/bash.exe”。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多