本文为您介绍使用OpenAPI查询CNAME接入详情的完整示例。
查看OpenAPI文档
通过阅读API概览得知,查询CNAME接入详情的OpenAPI为DescribeDomainDetail。请您根据文档,了解调用该接口需要准备的数据和权限。
创建RAM用户并授权
身份
您可以使用阿里云账号(主账号)、RAM用户、RAM角色调用该接口,有关各种身份的差异,请参见身份、凭据、授权。本案例中,我们使用RAM用户进行接口调用。
登录RAM访问控制,创建一个仅允许API调用的RAM用户,并记录AccessKey信息。具体操作,请参见创建RAM用户。
授权
访问RAM用户列表,单击目标RAM用户操作列的添加权限。
在权限策略区块中输入关键字
WAF
进行搜索,选择AliyunYundunWAFv3FullAccess策略。说明WAF的系统权限策略如下:
AliyunYundunWAFv3FullAccess:管理WAF 3.0的权限。
AliyunYundunWAFv3ReadOnlyAccess:只读访问WAF 3.0的权限。
单击确定,完成授权操作。
凭证
在创建RAM用户时会默认生成一个AccessKey,可直接使用。您也可以进入到对应的RAM用户详情页面,在认证管理页签,单击创建AccessKey,创建一个新的AccessKey。具体操作,请参见创建AccessKey。
调用OpenAPI
本文以Python语言为例,为您介绍OpenAPI的调用方法。
准备Python环境
下载并安装Python。
Python 3的下载地址,请参见Python 3。
查看Python版本。
Linux和macOS系统
打开终端,输入
python --version
。Windows系统
在Python的安装路径下,双击python.exe。
打开命令提示符页面。
通过键盘快捷键Win+R打开运行对话框,输入命令python,单击确定。
配置环境变量
为了避免将AccessKey硬编码到业务代码中导致的安全风险,本示例采用配置环境变量的方法来管理AccessKey。
在Linux和macOS系统环境变量中设置阿里云AccessKey
以设置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
为例。变量名称可以根据实际情况进行替换,例如OSS_ACCESS_KEY_ID
、OSS_ACCESS_KEY_SECRET
。
通过export命令配置环境变量
使用export命令配置的临时环境变量仅当前会话有效,当会话退出之后所设置的环境变量将会丢失。若需长期保留环境变量,可将export命令配置到对应操作系统的启动配置文件中。
配置AccessKey ID并按回车。
# 将<ACCESS_KEY_ID>替换为您自己的AccessKey ID。 export ALIBABA_CLOUD_ACCESS_KEY_ID=<ACCESS_KEY_ID>
配置AccessKey Secret并回车。
# 将<ACCESS_KEY_SECRET>替换为您自己的AccessKey Secret。 export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ACCESS_KEY_SECRET>
验证是否配置成功。
执行
echo $ALIBABA_CLOUD_ACCESS_KEY_ID
命令,如果返回正确的AccessKey ID,则说明配置成功。
在Windows系统环境变量中设置阿里云AccessKey
以设置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
为例。变量名称可以根据实际情况进行替换,例如OSS_ACCESS_KEY_ID
、OSS_ACCESS_KEY_SECRET
。
通过图形用户界面GUI
操作步骤
以下为Windows 10中通过图形用户界面设置环境变量的步骤。
在桌面右键单击此电脑,选择属性>高级系统设置>环境变量>系统变量/用户变量>新建,完成以下配置:
变量
示例值
AccessKey ID
变量名:ALIBABA_CLOUD_ACCESS_KEY_ID
变量值:LTAI4GDty8ab9W4Y1D****
AccessKey Secret
变量名:ALIBABA_CLOUD_ACCESS_KEY_SECRET
变量值:IrVTNZNy5yQelTETg0cZML3TQn****
测试设置是否成功
单击开始(或快捷键:Win+R)> 运行(输入 cmd)> 确定(或按 Enter 键),打开命令提示符,执行
echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
、echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
命令。若返回正确的AccessKey,则说明配置成功。
通过命令行提示符CMD
操作步骤
以管理员身份打开命令提示符,并使用以下命令在系统中新增环境变量。
setx ALIBABA_CLOUD_ACCESS_KEY_ID LTAI4GDty8ab9W4Y1D**** /M setx ALIBABA_CLOUD_ACCESS_KEY_SECRET IrVTNZNy5yQelTETg0cZML3TQn**** /M
其中
/M
表示系统级环境变量,设置用户级环境变量时可以不携带该参数。测试设置是否成功
单击开始(或快捷键:Win+R)> 运行(输入 cmd)> 确定(或按 Enter 键),打开命令提示符,执行
echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
、echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
命令。若返回正确的AccessKey,则说明配置成功。
通过Windows PowerShell
在PowerShell中,设置新的环境变量(对所有新会话都有效):
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::User)
为所有用户设置环境变量(需要管理员权限):
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::Machine)
设置临时的环境变量(仅当前会话有效):
$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "LTAI4GDty8ab9W4Y1D****"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "IrVTNZNy5yQelTETg0cZML3TQn****"
在PowerShell中,执行Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_ID
、Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET
命令。若返回正确的AccessKey,则说明配置成功。
环境变量配置完成之后,为确保新的设置被正确应用,您可能需要重启相关的开发工具(IDE等)或服务。
安装依赖
pip install alibabacloud_waf_openapi20211001==2.0.2
下载示例代码
在OpenAPI门户,访问DescribeDomainDetail接口的调试地址。
请求参数InstanceId输入waf_v3prepaid_public_cn-uqm3bmw****,Domain输入srtest.****.top,直接单击发起调用。
先单击SDK示例页签,再单击Python页签。
获取Python语言的SDK示例。
单击下载完整工程,下载示例代码包。
在本地解压示例代码包,并进入alibabacloud_sample目录。
运行代码
执行以下命令:
python sample.py
得到如下输出结果:
{
"Status": 1,
"ResourceManagerResourceGroupId": "rg-acfmyqfktarf2ha",
"RequestId": "7072AAC6-C786-5861-88A6-C18626244BD1",
"CertDetail": {
"EndTime": 1971038823000,
"Sans": [
"*.wafqax.top"
],
"StartTime": 1655678823000,
"Id": "9853636-cn-hangzhou",
"Name": "auto_****_all",
"CommonName": "srtest.****.top"
},
"Listen": {
"ProtectionResource": "share",
"HttpsPorts": [
443
],
"TLSVersion": "tlsv1",
"Http2Enabled": false,
"CertId": "*cn-hangzhou",
"CipherSuite": 1,
"EnableTLSv3": false,
"IPv6Enabled": false,
"XffHeaderMode": 1,
"HttpPorts": [
80
]
},
"Redirect": {
"ConnectTimeout": 5,
"Keepalive": true,
"SniEnabled": false,
"ReadTimeout": 120,
"KeepaliveTimeout": 15,
"Backends": [
{
"Backend": "39.98.XX.XX"
},
{
"Backend": "39.98.XX.XX"
}
],
"FocusHttpBackend": false,
"WriteTimeout": 120,
"AllBackends": [
"39.98.XX.XX"
],
"Retry": true,
"KeepaliveRequests": 1000,
"Loadbalance": "iphash"
},
"Domain": "srtest.****.top",
"Cname": "*.yundunwaf3.com"
}