繁体   English   中英

aws log get-log-events --log-group-name 问题

[英]aws log get-log-events --log-group-name problem

我正在尝试使用 aws logs 检索日志,但 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 - DEBUG - 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 - DEBUG - 输入到 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参数。

它在做什么?

这是因为参数以 / 开头,并且它是 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。可执行程序”

解决方案是禁用该转换

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM