使用OpenAPI示例
本文為您介紹使用OpenAPI查詢CNAME接入詳情的完整示例。
查看OpenAPI文檔
通過閱讀API概覽得知,查詢CNAME接入詳情的OpenAPI為DescribeDomainDetail。請您根據(jù)文檔,了解調(diào)用該接口需要準(zhǔn)備的數(shù)據(jù)和權(quán)限。
創(chuàng)建RAM用戶并授權(quán)
身份
您可以使用阿里云賬號(主賬號)、RAM用戶、RAM角色調(diào)用該接口,有關(guān)各種身份的差異,請參見身份、憑據(jù)、授權(quán)。本案例中,我們使用RAM用戶進(jìn)行接口調(diào)用。
登錄RAM訪問控制,創(chuàng)建一個僅允許API調(diào)用的RAM用戶,并記錄AccessKey信息。具體操作,請參見創(chuàng)建RAM用戶。
授權(quán)
訪問RAM用戶列表,單擊目標(biāo)RAM用戶操作列的添加權(quán)限。
在權(quán)限策略區(qū)塊中輸入關(guān)鍵字
WAF
進(jìn)行搜索,選擇AliyunYundunWAFv3FullAccess策略。說明WAF的系統(tǒng)權(quán)限策略如下:
AliyunYundunWAFv3FullAccess:管理WAF 3.0的權(quán)限。
AliyunYundunWAFv3ReadOnlyAccess:只讀訪問WAF 3.0的權(quán)限。
單擊確定,完成授權(quán)操作。
憑證
在創(chuàng)建RAM用戶時會默認(rèn)生成一個AccessKey,可直接使用。您也可以進(jìn)入到對應(yīng)的RAM用戶詳情頁面,在認(rèn)證管理頁簽,單擊創(chuàng)建AccessKey,創(chuàng)建一個新的AccessKey。具體操作,請參見創(chuàng)建AccessKey。
調(diào)用OpenAPI
本文以Python語言為例,為您介紹OpenAPI的調(diào)用方法。
準(zhǔn)備Python環(huán)境
下載并安裝Python。
Python 3的下載地址,請參見Python 3。
查看Python版本。
Linux和macOS系統(tǒng)
打開終端,輸入
python --version
。Windows系統(tǒng)
在Python的安裝路徑下,雙擊python.exe。
打開命令提示符頁面。
通過鍵盤快捷鍵Win+R打開運(yùn)行對話框,輸入命令python,單擊確定。
配置環(huán)境變量
為了避免將AccessKey硬編碼到業(yè)務(wù)代碼中導(dǎo)致的安全風(fēng)險,本示例采用配置環(huán)境變量的方法來管理AccessKey。
在Linux和macOS系統(tǒng)環(huán)境變量中設(shè)置阿里云AccessKey
以設(shè)置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
為例。變量名稱可以根據(jù)實際情況進(jìn)行替換,例如OSS_ACCESS_KEY_ID
、OSS_ACCESS_KEY_SECRET
。
通過export命令配置環(huán)境變量
使用export命令配置的臨時環(huán)境變量僅當(dāng)前會話有效,當(dāng)會話退出之后所設(shè)置的環(huán)境變量將會丟失。若需長期保留環(huán)境變量,可將export命令配置到對應(yīng)操作系統(tǒng)的啟動配置文件中。
配置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>
驗證是否配置成功。
執(zhí)行
echo $ALIBABA_CLOUD_ACCESS_KEY_ID
命令,如果返回正確的AccessKey ID,則說明配置成功。
在Windows系統(tǒng)環(huán)境變量中設(shè)置阿里云AccessKey
以設(shè)置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
為例。變量名稱可以根據(jù)實際情況進(jìn)行替換,例如OSS_ACCESS_KEY_ID
、OSS_ACCESS_KEY_SECRET
。
通過圖形用戶界面GUI
操作步驟
以下為Windows 10中通過圖形用戶界面設(shè)置環(huán)境變量的步驟。
在桌面右鍵單擊此電腦,選擇屬性>高級系統(tǒng)設(shè)置>環(huán)境變量>系統(tǒng)變量/用戶變量>新建,完成以下配置:
變量
示例值
AccessKey ID
變量名:ALIBABA_CLOUD_ACCESS_KEY_ID
變量值:LTAI4GDty8ab9W4Y1D****
AccessKey Secret
變量名:ALIBABA_CLOUD_ACCESS_KEY_SECRET
變量值:IrVTNZNy5yQelTETg0cZML3TQn****
測試設(shè)置是否成功
單擊開始(或快捷鍵:Win+R)> 運(yùn)行(輸入 cmd)> 確定(或按 Enter 鍵),打開命令提示符,執(zhí)行
echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
、echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
命令。若返回正確的AccessKey,則說明配置成功。
通過命令行提示符CMD
操作步驟
以管理員身份打開命令提示符,并使用以下命令在系統(tǒng)中新增環(huán)境變量。
setx ALIBABA_CLOUD_ACCESS_KEY_ID LTAI4GDty8ab9W4Y1D**** /M setx ALIBABA_CLOUD_ACCESS_KEY_SECRET IrVTNZNy5yQelTETg0cZML3TQn**** /M
其中
/M
表示系統(tǒng)級環(huán)境變量,設(shè)置用戶級環(huán)境變量時可以不攜帶該參數(shù)。測試設(shè)置是否成功
單擊開始(或快捷鍵:Win+R)> 運(yùn)行(輸入 cmd)> 確定(或按 Enter 鍵),打開命令提示符,執(zhí)行
echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
、echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
命令。若返回正確的AccessKey,則說明配置成功。
通過Windows PowerShell
在PowerShell中,設(shè)置新的環(huán)境變量(對所有新會話都有效):
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::User)
為所有用戶設(shè)置環(huán)境變量(需要管理員權(quán)限):
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTAI4GDty8ab9W4Y1D****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'IrVTNZNy5yQelTETg0cZML3TQn****', [System.EnvironmentVariableTarget]::Machine)
設(shè)置臨時的環(huán)境變量(僅當(dāng)前會話有效):
$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "LTAI4GDty8ab9W4Y1D****"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "IrVTNZNy5yQelTETg0cZML3TQn****"
在PowerShell中,執(zhí)行Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_ID
、Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET
命令。若返回正確的AccessKey,則說明配置成功。
環(huán)境變量配置完成之后,為確保新的設(shè)置被正確應(yīng)用,您可能需要重啟相關(guān)的開發(fā)工具(IDE等)或服務(wù)。
安裝依賴
pip install alibabacloud_waf_openapi20211001==2.0.2
下載示例代碼
在OpenAPI門戶,訪問DescribeDomainDetail接口的調(diào)試地址。
請求參數(shù)InstanceId輸入waf_v3prepaid_public_cn-uqm3bmw****,Domain輸入srtest.****.top,直接單擊發(fā)起調(diào)用。
先單擊SDK示例頁簽,再單擊Python頁簽。
獲取Python語言的SDK示例。
單擊下載完整工程,下載示例代碼包。
在本地解壓示例代碼包,并進(jìn)入alibabacloud_sample目錄。
運(yùn)行代碼
執(zhí)行以下命令:
python sample.py
得到如下輸出結(jié)果:
{
"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"
}