备份和还原AWS负载均衡器

时间:2018-03-08 08:12:43

标签: json amazon-web-services command-line-interface elastic-load-balancer

我们有几个带有LoadBalancers的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"
    }
]

}

Plz帮助

1 个答案:

答案 0 :(得分:2)

您应该考虑使用CloudFormation模板来启动和关闭任何AWS资源。 Cloudformer有助于为现有资源创建模板。

如果仍需要使用CLI,则可以生成CLI Skeleton JSON,该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": ""
        }
    ]
}