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)
  • 相关阅读:
    详解RTMP协议视频直播点播平台EasyDSS转推视频直播流到CDN(云直播)
    RTMP协议视频直播点播平台EasyDSS如何实现RTSP视频流地址加密?
    阿里王坚:“城市大脑”开启算力时代
    数据中心网络测试自动化的逐步发展
    在数据中心利用AI的5个理由
    基于层次过滤的文本生成
    解密为何 Go 能从众多语言中脱颖而出
    乔姆斯基专访:深度学习并没有探寻世界本质
    释放数据价值的「三个关键点」
    改改Python代码,运行速度还能提升6万倍,Science:先别想摩尔定律了
  • 原文地址:https://www.cnblogs.com/37yan/p/8351556.html
Copyright © 2011-2022 走看看