备份和恢复 AWS 负载均衡器
Backup and restore AWS load balancers
我们有几个带有 LoadBalancer 的 AWS 测试环境。这花费了很多钱,因为 LoadBalancers 无法关闭。因此,我尝试创建一个脚本来支持它们并恢复它们。
我试过这个:
aws elb describe-load-balancers --load-balancer-name testLB --output json > .\testLB.json
这给出了一个 json 文件,但是当我尝试创建一个新的表单时,我只是
aws elb create-load-balancer --cli-input-json file://testLB.json
但是我得到一个很长的错误,比如
C:\code\AWS-Scripts\LoadbalancerScript [master ≡ +1 ~0 -0 | +6 ~1 -0 !]> aws elb create-load-balancer --cli-input-json file://test3.json
错误解析参数'cli-input-json':无效JSON:无法解码JSON对象
JSON 收到: ■{
" L o a d B a l a n c e r D e s c r i p t i o n s " : [
{
" S u b n e t s " : [
" s u b n e t - 1 2 3 4 5 a b c "
] ,
" C a n o n i c a l H o s t e d Z o n e N a m e I D " : " 1 2 3 4 5 a b c d e f g h 6 " ,
和有线间距尿布,如果我将文件从 UCS-2-LE BOM 更改为 UTF 8 位,它仍然无法解析:
错误解析参数'cli-input-json':无效JSON:无法解码JSON对象
JSON 收到:test3.json
有什么想法吗?
更新
尝试使用 --generate-cli-skeleton 然后
aws elb create-load-balancer --cli-input-json file://C:\code\AWS-Scripts \LoadbalancerScript\lbSkeleton.json
But that returned:
Error parsing parameter 'cli-input-json': Invalid JSON: No JSON object could be decoded
JSON received: {
"LoadBalancerName": "testBalancer",
"Listeners": [
{
"InstancePort": 8003,
"LoadBalancerPort": 8003,
"Protocol": "HTTP",
"InstanceProtocol": "HTTP"
},
],
"AvailabilityZones": [
"eu-central-1b"
],
"Subnets": [
"subnet-123123123"
],
"SecurityGroups": [
"sg-123123",
"sg-123123"
],
"Scheme": "",
"Tags": [
{
"Key": "Environment",
"Value": "123123"
}
]
}
请帮忙
您应该考虑使用 CloudFormation 模板来启动和关闭任何 AWS 资源。 Cloudformer 有助于为现有资源创建模板。
如果您仍然需要使用 CLI,您可以生成 CLI 框架 JSON,其中概述了可以为操作指定的所有参数。然后您可以填写这些值,然后创建负载均衡器
aws elb create-load-balancer --generate-cli-skeleton
{
"LoadBalancerName": "",
"Listeners": [
{
"Protocol": "",
"LoadBalancerPort": 0,
"InstanceProtocol": "",
"InstancePort": 0,
"SSLCertificateId": ""
}
],
"AvailabilityZones": [
""
],
"Subnets": [
""
],
"SecurityGroups": [
""
],
"Scheme": "",
"Tags": [
{
"Key": "",
"Value": ""
}
]
}
我们有几个带有 LoadBalancer 的 AWS 测试环境。这花费了很多钱,因为 LoadBalancers 无法关闭。因此,我尝试创建一个脚本来支持它们并恢复它们。 我试过这个:
aws elb describe-load-balancers --load-balancer-name testLB --output json > .\testLB.json
这给出了一个 json 文件,但是当我尝试创建一个新的表单时,我只是
aws elb create-load-balancer --cli-input-json file://testLB.json
但是我得到一个很长的错误,比如
C:\code\AWS-Scripts\LoadbalancerScript [master ≡ +1 ~0 -0 | +6 ~1 -0 !]> aws elb create-load-balancer --cli-input-json file://test3.json
错误解析参数'cli-input-json':无效JSON:无法解码JSON对象 JSON 收到: ■{
" L o a d B a l a n c e r D e s c r i p t i o n s " : [
{
" S u b n e t s " : [
" s u b n e t - 1 2 3 4 5 a b c "
] ,
" C a n o n i c a l H o s t e d Z o n e N a m e I D " : " 1 2 3 4 5 a b c d e f g h 6 " ,
和有线间距尿布,如果我将文件从 UCS-2-LE BOM 更改为 UTF 8 位,它仍然无法解析:
错误解析参数'cli-input-json':无效JSON:无法解码JSON对象 JSON 收到:test3.json
有什么想法吗?
更新 尝试使用 --generate-cli-skeleton 然后
aws elb create-load-balancer --cli-input-json file://C:\code\AWS-Scripts \LoadbalancerScript\lbSkeleton.json
But that returned:
Error parsing parameter 'cli-input-json': Invalid JSON: No JSON object could be decoded
JSON received: {
"LoadBalancerName": "testBalancer",
"Listeners": [
{
"InstancePort": 8003,
"LoadBalancerPort": 8003,
"Protocol": "HTTP",
"InstanceProtocol": "HTTP"
},
],
"AvailabilityZones": [
"eu-central-1b"
],
"Subnets": [
"subnet-123123123"
],
"SecurityGroups": [
"sg-123123",
"sg-123123"
],
"Scheme": "",
"Tags": [
{
"Key": "Environment",
"Value": "123123"
}
]
}
请帮忙
您应该考虑使用 CloudFormation 模板来启动和关闭任何 AWS 资源。 Cloudformer 有助于为现有资源创建模板。
如果您仍然需要使用 CLI,您可以生成 CLI 框架 JSON,其中概述了可以为操作指定的所有参数。然后您可以填写这些值,然后创建负载均衡器
aws elb create-load-balancer --generate-cli-skeleton
{
"LoadBalancerName": "",
"Listeners": [
{
"Protocol": "",
"LoadBalancerPort": 0,
"InstanceProtocol": "",
"InstancePort": 0,
"SSLCertificateId": ""
}
],
"AvailabilityZones": [
""
],
"Subnets": [
""
],
"SecurityGroups": [
""
],
"Scheme": "",
"Tags": [
{
"Key": "",
"Value": ""
}
]
}