使用Powershell更新AWS ECS任务定义



长话短说,我需要通过powershell更新我的ECS任务定义,以增加"EphemeralStorage_SizeInGiB";只能通过AWS cli获得。

我可以通过Get-ECSTaskDefinitionDetail cmdlet成功获取任务,但我不知道下一步该怎么做。

我能够将输出转换为JSON,并更新JSON文件中的临时存储字段,但不知道如何将其发送回AWS。我对Register ECSTaskDefinition Cmdlet的所有尝试似乎都失败了,因为它希望每个参数都有单独的参数,而不是上传json。

如有任何建议,我们将不胜感激。谢谢,

我没有一个可以测试的,但大多数AWS cmdlet都返回可以通过管道相互连接的对象。Get-ECSTaskDefinitionDetail也这样做,返回一个DescribeTaskDefinitionResponse对象,该对象看起来具有自动填充注册的所有正确属性。试用

Get-ECSTaskDefinitionDetail -TaskDefinition $ARN | 
Register-ECSTaskDefinition -EphemeralStorage_SizeInGiB $newSize

或者可能需要使用.TaskDefinition属性:

$Response = Get-ECSTaskDefinitionDetail -TaskDefinition $ARN
$Response.TaskDefinition | Register-ECSTaskDefinition -EphemeralStorage_SizeInGiB $newSize

也许就这么简单?

请注意,在Get命令中不能使用-Select,否则它将返回不同的对象类型。


也就是说,当它的两个参数都接受json时,它不会接受json,这很尴尬。可能值得重新打开这个功能请求:

https://github.com/aws/aws-tools-for-powershell/issues/184

最新更新