zoukankan      html  css  js  c++  java
  • python 调用阿里云云解析api添加记录

    首先安装阿里云SDK

    pip install aliyun-python-sdk-core

    pip install aliyun-python-sdk-alidns

    可以配合jenkins传递参数

    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # @Time    : 2018/1/24 0024 13:42
    # @Author  : sanmuyan
    # @FileName: aliyun_domain_des.py
    import json,jsonpath,os
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.acs_exception.exceptions import ClientException
    from aliyunsdkcore.acs_exception.exceptions import ServerException
    from aliyunsdkalidns.request.v20150109 import DescribeDomainRecordsRequest
    from aliyunsdkalidns.request.v20150109 import AddDomainRecordRequest
    from aliyunsdkalidns.request.v20150109 import DeleteDomainRecordRequest
    from aliyunsdkalidns.request.v20150109 import DescribeDomainRecordInfoRequest
    
    AccessKey = os.environ.get('AccessKey')
    Secret = os.environ.get('Secret')
    Regions = os.environ.get('Regions')
    # 创建 AcsClient 实例
    client = AcsClient(
        AccessKey,
        Secret,
        Regions
    );
    
    def dns_des(RecordId):
        request = DescribeDomainRecordInfoRequest.DescribeDomainRecordInfoRequest()
        request.set_RecordId(RecordId)
        response = client.do_action_with_exception(request)
        data = json.loads(response)
        data = json.dumps(data, sort_keys=True, indent=2)
        print(data)
    
    
    def dns_del(DomainName, RR):
        request = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()
        request.set_DomainName(DomainName)
        request.set_RRKeyWord(RR)
        response = client.do_action_with_exception(request)
        data = json.loads(response)
        TotalCount = jsonpath.jsonpath(data,"$..TotalCount")
        if TotalCount[0] != 0:
            data1 = jsonpath.jsonpath(data,"$..RR")
            data2 = jsonpath.jsonpath(data,"$..RecordId")
            if RR in data1:
                index = data1.index(RR)
                RecordId = data2[index]
                print("WARNING: Delete the existing records")
                dns_des(RecordId)
                request = DeleteDomainRecordRequest.DeleteDomainRecordRequest()
                request.set_RecordId(RecordId)
                response = client.do_action_with_exception(request)
                return response
    
    def dns_add(DomainName, RR, Type, Value):
        dns_del(DomainName, RR)
        request = AddDomainRecordRequest.AddDomainRecordRequest()
        request.set_DomainName(DomainName)
        request.set_RR(RR)
        request.set_Type(Type)
        request.set_Value(Value)
        response = client.do_action_with_exception(request)
        data = json.loads(response)
        print("INFO: Record adding success")
        RecordId = (data['RecordId'])
        dns_des(RecordId)
    
    
    if __name__ == '__main__':
        DomainName = os.environ.get('DomainName')
        RR = os.environ.get('RR')
        Type = os.environ.get('Type')
        Value = os.environ.get('Value')
        dns_add(DomainName, RR, Type, Value)
  • 相关阅读:
    web每隔几秒页面刷新
    lucene.Net (C#)
    hibernatesearch
    org.simpleframework.xml.core.Persister
    Hibernate 注解 annotation
    WebService大讲堂之Axis2(2):复合类型数据的传递
    myEclipse代码格式化
    WebService大讲堂之Axis2(1):用POJO实现0配置的WebService
    Hibernate Search基本配置和使用
    java.sql.preparedstatement的应用
  • 原文地址:https://www.cnblogs.com/37yan/p/8351556.html
Copyright © 2011-2022 走看看