gpt4 book ai didi

amazon-web-services - AWS CLI Update_Stack 无法传递包含/的参数值

转载 作者:行者123 更新时间:2023-12-03 07:45:04 25 4
gpt4 key购买 nike

整个上午我都在绞尽脑汁地尝试创建一个最终将更新 AWS 堆栈的 powershell 脚本。一切都很好,直到我必须将参数传递给 cloudformation 模板。

其中一个参数值 (ParameterKey=ZipFilePath) 包含/。但脚本失败,提示它期待 =,但发现了/。我尝试转义斜杠,但 API 提示它找到了反斜杠而不是等号。我哪里出错了?

... <snip creating a zip file> ...

$filename = ("TotalCommApi-" + $DateTime + ".zip")

aws s3 cp $filename ("s3://S3BucketName/TotalCommApi/" + $filename)

aws cloudformation update-stack --stack-name TotalCommApi-Dev --template-url https://s3-region.amazonaws.com/S3bucketName/TotalCommApi/TotalCommApiCFTemplate.json --parameters ParameterKey=S3BucketName,ParameterValue=S3BucketNameValue,UsePreviousValue=false ParameterKey=ZipFilePath,ParameterValue=("TotalCommApi/" + $filename) ,UsePreviousValue=false

cd C:\Projects\TotalCommApi\TotalComm_API

这是 CloudFormation 模板的相关部分:

    "Description": "An AWS Serverless Application that uses the ASP.NET Core framework running in Amazon Lambda.",
"Parameters": {
"ZipFilePath": {
"Type": "String",
"Description": "Path to the zip file containing the Lambda Functions code to be published."
},
"S3BucketName": {
"Type": "String",
"Description": "Name of the S3 bucket where the ZipFile resides."
}
},
"AWSTemplateFormatVersion": "2010-09-09",
"Outputs": {},
"Conditions": {},
"Resources": {
"ProxyFunction": {
"Type": "AWS::Lambda::Function",
"Properties": {
"Code": {
"S3Bucket": {"Ref": "S3BucketName" },
"S3Key": { "Ref": "ZipFilePath" }
},

这是 PowerShell ISE 生成的错误消息

[图像已删除]

更新:我使用的是 Windows 7,附带 Powershell 2。我升级到 Powershell 4。然后我的脚本产生了此错误:

AWS CLI Error

根据咨询公司的建议,我卸载了通过msi安装的CLI,然后将Python升级到3.6.2,然后通过pip重新安装了CLI。我仍然遇到同样的错误。我将命令“回显”到屏幕上,这就是我所看到的:

upload: .\TotalCommApi-201806110722.zip to s3://S3bucketName/TotalCommApi/TotalCommApi-201806110722.zip
aws
cloudformation
update-stack
--stack-name
TotalCommApi-Dev
--template-url
https://s3-us-west-2.amazonaws.com/s3BucketName/TotalCommApi/TotalCommApiCFTemplate.json
--parameters
ParameterKey=S3BucketName
UsePreviousValue=true
ParameterKey=ZipFilePath
ParameterValue=TotalCommApi/TotalCommApi-201806110722.zip

最佳答案

很抱歉延迟回复您 - 好消息是我可能会提示您的问题所在。

ParameterKey=ZipFilePath,ParameterValue=("TotalCommApi/" + $filename) ,UsePreviousValue=false

我试图重现这个问题,简直快把自己逼疯了。为什么?因为我假设 ("TotalCommApi/"+ $filename) 后面的空格是复制的产物,而不是您正在使用的实际值。当我添加空格时:

aws cloudformation update-stack --stack-name test --template-url https://s3.amazonaws.com/test-bucket-06-09/test.template --parameters ParameterKey=S3BucketName,ParameterValue=$bucketname,UsePreviousValue=false ParameterKey=ZipFilePath,ParameterValue=testfolder/$filename ,UsePreviousValue=false
Error parsing parameter '--parameters': Expected: '=', received: ','

这不完全是您的错误消息(而不是/),但我认为您的情况可能有类似的问题 - 检查以确保命令中使用的值在某处没有多余的空格.

关于amazon-web-services - AWS CLI Update_Stack 无法传递包含/的参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50647548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com