Windows 无法将新的统一AWS CLI与ElasticBeanstalk创建应用程序版本命令一起使用

Windows 无法将新的统一AWS CLI与ElasticBeanstalk创建应用程序版本命令一起使用,windows,amazon-elastic-beanstalk,aws-cli,Windows,Amazon Elastic Beanstalk,Aws Cli,我正在尝试使用with命令aws elasticbeanstalk创建应用程序版本,无法正确获取--源代码包参数的格式 我尝试过各种格式,每次都会出现类似的错误。这些命令通过Powershell在Windows Server 2008上运行。我能够使用aws s3 mb和cp命令而不会出现问题,因此我不认为这是安装、Python/PATH或Windows问题 您将看到$builddate变量,该变量在Powershell中定义如下: $builddate=获取日期-格式为MMddyyhhmmss

我正在尝试使用with命令
aws elasticbeanstalk创建应用程序版本
,无法正确获取
--源代码包
参数的格式

我尝试过各种格式,每次都会出现类似的错误。这些命令通过Powershell在Windows Server 2008上运行。我能够使用
aws s3 mb
cp
命令而不会出现问题,因此我不认为这是安装、Python/PATH或Windows问题

您将看到
$builddate
变量,该变量在Powershell中定义如下:

$builddate=获取日期-格式为MMddyyhhmmss

我尝试过的命令及其错误

命令:

aws elasticbeanstalk创建应用程序版本--应用程序名称Api.Mobile--版本标签Api.Mobile生产-$builddate--源包生成生产/APIv1/生成生产-$builddate.zip

错误:

错误解析参数--source bundle,应该是:--source bundle S3Bucket=value,S3Key=value

因此,我尝试使用以下命令来遵循建议的格式:

aws elasticbeanstalk创建应用程序版本--应用程序名称Api.Mobile--版本标签Api.Mobile生产-$builddate--源代码包S3Bucket=build生产/APIv1,S3Key=build生产-$builddate.zip

错误:

未知选项:S3Key=build-production-02241410105.zip


我还尝试了没有子文件夹的
S3Bucket=
声明(即使没有子文件夹的文件不存在),但仍然得到了
未知选项
错误。

证明这是解析逗号的Powershell问题

从aws cli Github问题,由jamesls回答:

我认为问题在于powershell正在解析逗号字符 在CLI看到参数列表之前退出

例如,上面的命令被拆分为如下参数 powershell:

如果将该值括在双引号中,则powershell将保留 仅逗号字符:

['elasticbeanstalk', 'create-application-version',
'--application-name', 'Api.Mobile', '--version-label',
'Api.Mobile-production-', '--source-bundle',
'S3Bucket=build-production/APIv1', 'S3Key=build-production-.zip']
$ aws elasticbeanstalk create-application-version --application-name
Api.Mobile --version-label Api.Mobile-production-$builddate
--source-bundle "S3Bucket=build-production/APIv1,S3Key=build-production-$builddate.zip"

['elasticbeanstalk', 'create-application-version',
'--application-name', 'Api.Mobile', '--version-label',
'Api.Mobile-production-', '--source-bundle',
'S3Bucket=build-production/APIv1,S3Key=build-production-.zip']