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)
  • 相关阅读:
    HTML DOM 06 节点关系
    HTML DOM 05 事件(三)
    HTML DOM 05 事件(二)
    HTML DOM 05 事件(一)
    html DOM 04 样式
    html DOM 03 节点的属性
    html DOM 02 获取节点
    html DOM 01 节点概念
    JavaScript 29 计时器
    JavaScript 28 弹出框
  • 原文地址:https://www.cnblogs.com/37yan/p/8351556.html
Copyright © 2011-2022 走看看