博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 调用阿里云云解析api添加记录
阅读量:2228 次
发布时间:2019-05-09

本文共 2686 字,大约阅读时间需要 8 分钟。

首先安装阿里云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.pyimport json,jsonpath,osfrom aliyunsdkcore.client import AcsClientfrom aliyunsdkcore.acs_exception.exceptions import ClientExceptionfrom aliyunsdkcore.acs_exception.exceptions import ServerExceptionfrom aliyunsdkalidns.request.v20150109 import DescribeDomainRecordsRequestfrom aliyunsdkalidns.request.v20150109 import AddDomainRecordRequestfrom aliyunsdkalidns.request.v20150109 import DeleteDomainRecordRequestfrom aliyunsdkalidns.request.v20150109 import DescribeDomainRecordInfoRequestAccessKey = 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 responsedef 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)

 

转载于:https://www.cnblogs.com/37yan/p/8351556.html

你可能感兴趣的文章
【Linux】HTTPS的理解
查看>>
【操作系统】大小端问题
查看>>
Git上传代码时碰到的问题及解决方法
查看>>
【Linux】vim的简单配置
查看>>
【C++】智能指针
查看>>
【C++】const修饰的成员函数
查看>>
【C++】面向对象的三大特性
查看>>
【C++】智能指针(后续)
查看>>
【C】堆区和栈区的区别
查看>>
【linux】send和recv函数解析
查看>>
【Linux】线程安全的单例模式以及计算密集型线程和IO密集型线程
查看>>
一次完整的HTTP请求是怎样的??
查看>>
【C++】常见的内存泄漏及解决方法
查看>>
【C++】const 指针与指向const的指针
查看>>
【Linux】多线程和多进程 及其应用场景
查看>>
【C++】构造函数中必须通过初始化列表来进行初始化情况
查看>>
【算法】对于大数的操作
查看>>
【操作系统】系统调用的概念
查看>>
【计算机网络】cookie和session的区别
查看>>
【C++】构造函数、析构函数抛出异常的问题
查看>>