[英]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.