0

我正在尝试将新的(ish)AWS 统一 CLI与命令一起使用,但aws elasticbeanstalk create-application-version无法--source-bundle正确获取参数的格式。

我尝试了各种格式,每次都会遇到类似的错误。这些命令通过 Powershell 在 Windows Server 2008 上运行。我可以毫无问题地使用aws s3 mbandcp命令,所以我不认为这是安装、Python/PATH 或 Windows 问题。

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

$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出现错误。

4

1 回答 1

0

原来这是解析逗号的Powershell问题。

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

我认为问题在于 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']
于 2014-02-28T15:47:44.783 回答