命令 aws 在 logGroupName 记录创建导出任务错误 (InvalidParameterException)
Command aws logs create-export-task Error (InvalidParameterException) at logGroupName
我有一个 bash 脚本,我正在尝试执行
aws logs create-export-task
命令。 command 在 s3 存储桶中创建任务并在时间戳间隔内删除 cloudwatch 日志。
我的脚本还有一些变量,例如日志组名称,它需要作为命令中的选项参数
logGroup='/aws/lambda/lambda-name'
然后我在命令中传递:
createTaskLogs="aws logs create-export-task
--log-group-name \"$logGroup\" \
...
echo ${createTaskLogs}
eval ${createTaskLogs}
加上一些其他强制选项。
我得到的错误是:
An error occurred (InvalidParameterException) when calling the CreateExportTask operation: 1
validation error detected: Value 'C:/Program Files/Git/aws/lambda/lambda-name' at 'logGroupName' failed
to satisfy constraint: Member must satisfy regular expression pattern: [\.\-_/#A-Za-z0-9]+
据我了解 bash 是将“/aws/lambda/lambda-name”值作为路径插入并将第一个斜杠转换为本地路径 C:// 。
在 bash 语言中有什么方法可以避免这种情况,或者是 aws logs 命令中的错误?
感谢以后的帮助。
一个解决方案是放置反斜杠而不使用引号:
logGroup='\/aws/lambda/lambda-name'
createTaskLogs="aws logs create-export-task
--log-group-name $logGroup \
...
反斜杠将阻止 bash 将“/aws/lambda/lambda-name”值作为路径插入并将第一个斜杠转换为本地路径 C://
更新
你能试试这个吗?
aws2(){ MSYS_NO_PATHCONV=1 python C:/Users/user/AppData/Local/Programs/Python/Python37/Scripts/aws "$@"; }
aws2 logs create-export-task ...
问题出在您使用 Git Bash 到 运行 命令。 Mingw 会将用作参数的 POSIX 路径转换为 Win32 路径。参见 here。
首先在路径前加上双正斜杠,然后在双引号内加上反斜杠 ("//aws\lambda\lambda-name") 应该可以防止这种情况发生,或者您可以按照讨论的方式设置 MSYS_NO_PATHCONV=1
here.
另一种解决方案是使用不同的 shell,例如 Windows Subsystem for Linux or Mobaxterm。
我有一个 bash 脚本,我正在尝试执行
aws logs create-export-task
命令。 command 在 s3 存储桶中创建任务并在时间戳间隔内删除 cloudwatch 日志。
我的脚本还有一些变量,例如日志组名称,它需要作为命令中的选项参数
logGroup='/aws/lambda/lambda-name'
然后我在命令中传递:
createTaskLogs="aws logs create-export-task
--log-group-name \"$logGroup\" \
...
echo ${createTaskLogs}
eval ${createTaskLogs}
加上一些其他强制选项。
我得到的错误是:
An error occurred (InvalidParameterException) when calling the CreateExportTask operation: 1
validation error detected: Value 'C:/Program Files/Git/aws/lambda/lambda-name' at 'logGroupName' failed
to satisfy constraint: Member must satisfy regular expression pattern: [\.\-_/#A-Za-z0-9]+
据我了解 bash 是将“/aws/lambda/lambda-name”值作为路径插入并将第一个斜杠转换为本地路径 C:// 。 在 bash 语言中有什么方法可以避免这种情况,或者是 aws logs 命令中的错误?
感谢以后的帮助。
一个解决方案是放置反斜杠而不使用引号:
logGroup='\/aws/lambda/lambda-name'
createTaskLogs="aws logs create-export-task
--log-group-name $logGroup \
...
反斜杠将阻止 bash 将“/aws/lambda/lambda-name”值作为路径插入并将第一个斜杠转换为本地路径 C://
更新
你能试试这个吗?
aws2(){ MSYS_NO_PATHCONV=1 python C:/Users/user/AppData/Local/Programs/Python/Python37/Scripts/aws "$@"; }
aws2 logs create-export-task ...
问题出在您使用 Git Bash 到 运行 命令。 Mingw 会将用作参数的 POSIX 路径转换为 Win32 路径。参见 here。
首先在路径前加上双正斜杠,然后在双引号内加上反斜杠 ("//aws\lambda\lambda-name") 应该可以防止这种情况发生,或者您可以按照讨论的方式设置 MSYS_NO_PATHCONV=1
here.
另一种解决方案是使用不同的 shell,例如 Windows Subsystem for Linux or Mobaxterm。