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)
  • 相关阅读:
    每日思考(2020/08/19)
    每日思考(2020/08/18)
    每日思考(2020/08/17)
    每日思考(2020/08/16)
    每日思考(2020/08/14)
    每日思考(2020/08/13)
    每日思考(2020/08/12)
    每日思考(2020/08/11)
    每日思考(2020/08/10)
    Hibernate入门第一讲——Hibernate框架的快速入门
  • 原文地址:https://www.cnblogs.com/37yan/p/8351556.html
Copyright © 2011-2022 走看看