amazon-web-services - 在 aws cli ssm 中的 powershell 命令中传递单引号字符串
问题描述
我正在尝试将此 powershell 命令传递给 aws ssm:
$CMD = "docker image inspect $(docker inspect $(docker ps --filter ancestor=.dkr.ecr.us-east-1.amazonaws.com/service:latest -q) --format '{{.Image}}') --format '{{.RepoDigests}}'"
aws ssm send-command --document-name "AWS-RunPowerShellScript" --targets "Key=tag:group,Values=value" --parameters commands="'$CMD'"
但我不断收到此错误:
aws :
At C:\jenkins\workspace\Test_Patch_Update@tmp\durable-4179e3f3\powershellScript.ps1:4 char:33
+ ... aws ssm send-command --document-name "AWS-RunPowerShellSc ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Error parsing parameter '--parameters': Expected: ',', received: '{' for input:
commands='docker image inspect $(docker inspect $(docker ps --filter ancestor=dkr.ecr.us-east-1.amazonaws.com/service:latest -q) --format '{{.Image}}')
--format '{{.RepoDigests}}''
我尝试通过将两个单引号放在一起来转义单引号,''
但它仍然显示错误:
aws :
At C:\jenkins\workspace\Test_Patch_Update@tmp\durable-521ed40a\powershellScript.ps1:4 char:33
+ ... aws ssm send-command --document-name "AWS-RunPowerShellSc ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Error parsing parameter '--parameters': Expected: ',', received: ''' for input:
commands='docker image inspect $(docker inspect $(docker ps --filter ancestor=dkr.ecr.us-east-1.amazonaws.com/service:latest -q) --format ''{{.Image}}'')
--format ''{{.RepoDigests}}'''
PS:我在詹金斯运行它
解决方案
我找到了解决方案!
$CMD = "docker image inspect `$`(docker inspect `$`(docker ps --filter ancestor=dkr.ecr.us-east-1.amazonaws.com/service:latest -q`) --format \\'{{.Image}}\\'`) --format \\'{{.RepoDigests}}\\'"
aws ssm send-command --document-name "AWS-RunPowerShellScript" --targets "Key=tag:Patch Group,Values=stage-ecs-windows" --parameters commands="'$CMD'" | ConvertFrom-Json
用两个反斜杠转义单引号,用\\
美元和括号
转义(`)
输出。
推荐阅读
- debian - 升级到debian buster,用户无法在XFCE中挂载USB存储
- javascript - 集成 Google 搜索框(不是自定义搜索引擎)
- sugarcrm - suitecrm 是否像 sugarcrm 一样验证文件上传?
- json - postgres array_agg 与 json_build_object 不同
- material-dialog - 材料对话框不关闭
- mysql - TypeError:无法读取未定义的属性“_pool”
- python - Python 程序看起来挂了。CTRL-C 恢复它
- html - 为什么 min-width 在 svg 上不起作用,并且由于 svg,段落的行为很奇怪?
- javascript - 如何以角度修复 InvalidPipeArgument
- c# - 如何强制 ListView 列对宽度使用绑定