У меня есть файл json, который я обрабатываю следующим образом.
aws application-autoscaling put-scaling-policy \
--service-namespace dynamodb \
--resource-id "table/$DYNAMODB_TABLE_NAME_PREFIX$tablename" \
--scalable-dimension "dynamodb:table:WriteCapacityUnits" \
--policy-name "WriteScalingPolicy" \
--policy-type "TargetTrackingScaling" \
--target-tracking-scaling-policy-configuration \
'{
"PredefinedMetricSpecification": {
"PredefinedMetricType": "DynamoDBWriteCapacityUtilization"
},
"ScaleOutCooldown": 60,
"ScaleInCooldown": 60,
"TargetValue": 80.0
}'
Обратите внимание, что aws
- это функция, которую мы используем следующим образом.
aws() {
docker exec aws-cli aws $*
}
Контейнер aws-cli - это уже запущенный контейнер, и команда из application-autoscaling
в текст json передается в контейнер awscli следующим образом.
docker exec irtci-awscli aws application-autoscaling put-scaling-policy --service-namespace dynamodb --resource-id table/ir-tci_app_resource --scalable-dimension dynamodb:table:ReadCapacityUnits --policy-name ReadScalingPolicy --policy-type TargetTrackingScaling --target-tracking-scaling-policy-configuration '{' PredefinedMetricSpecification: '{' PredefinedMetricType: DynamoDBReadCapacityUtilization '},' ScaleOutCooldown: 60, ScaleInCooldown: 60, TargetValue: 80.0 '}'
, который не анализируется контейнером awscli из-за IFS, я полагаю,Я получаю следующую ошибку.
`Unknown options: --target-tracking-scaling-policy-configuration, PredefinedMetricSpecification:, {, PredefinedMetricType:, DynamoDBReadCapacityUtilization, },, ScaleOutCooldown:, 60,, ScaleInCooldown:, 60,, TargetValue:, 80.0, }, {
`