我正在尝试使用new(ish) AWS unified CLI命令aws elasticbeanstalk create-application-version
,但无法正确获取--source-bundle
参数的格式。
我尝试了各种格式,每次都会遇到类似的错误。这些命令通过Powershell在Windows Server 2008上运行。我可以毫无问题地使用aws s3 mb
和cp
命令,所以我不相信它是安装,Python / PATH或Windows问题。
您将看到Powershell中定义的$builddate
变量,如下所示:
$builddate = Get-Date -format MMddyyhhmmss
我尝试过的命令及其错误
命令:
aws elasticbeanstalk create-application-version --application-name Api.Mobile --version-label Api.Mobile-production-$builddate --source-bundle build-production/APIv1/build-production-$builddate.zip
错误:
Error parsing parameter --source-bundle, should be: --source-bundle S3Bucket=value,S3Key=value
然后我尝试以下命令以遵循建议的格式:
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
错误:
Unknown options: S3Key=build-production-022414101105.zip
我还尝试了没有子文件夹的S3Bucket=
声明(即使文件在没有子文件夹的情况下不存在),仍然会出现Unknown options
错误。
答案 0 :(得分:0)
原来这是解析逗号的Powershell问题。
来自aws-cli Github的问题,由詹姆斯回答:
我认为问题是powershell正在解析逗号字符 在CLI看到参数列表之前输出。
例如,上面的命令被拆分成这样的参数 的powershell:
['elasticbeanstalk', 'create-application-version',
'--application-name', 'Api.Mobile', '--version-label',
'Api.Mobile-production-', '--source-bundle',
'S3Bucket=build-production/APIv1', 'S3Key=build-production-.zip']
如果用双引号括起值,那么powershell就会离开 逗号字符:
$ 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']