备份和恢复 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": ""
        }
    ]
}