負載平衡介面調用是向負載平衡API的服務端地址發送HTTP GET請求,並按照介面說明在請求中加入相應請求參數,調用後系統會返回處理結果。請求及返回結果都使用UTF-8字元集進行編碼。
請求結構
負載平衡的API是RPC風格,您可以通過發送HTTP GET請求調用負載平衡API。
其請求結構如下:
http://Endpoint/?Action=xx&Parameters
其中:
- Endpoint:負載平衡API的服務接入地址為slb.aliyuncs.com。
- Action:要執行的操作,如使用DescribeLoadBalancers查詢已建立的Server Load Balancer執行個體。
- Version:要使用的API版本,負載平衡的API版本是2014-05-15。
- Parameters:請求參數,每個參數之間用“&”分隔。
請求參數由公共請求參數和API自訂參數組成。公共參數中包含API版本號碼、身分識別驗證等資訊,詳情參見公共參數。
下面是一個調用DescribeLoadBalancers介面查詢已建立的Server Load Balancer執行個體的樣本:
说明 為了便於使用者查看,本文檔中的樣本都做了格式化處理。
https://slb.aliyuncs.com/?Action=DescribeLoadBalancers
&Format=xml
&Version=2014-05-15
&Signature=xxxx%xxxx%3D
&SignatureMethod=HMAC-SHA1
&SignatureNonce=15215528852396
&SignatureVersion=1.0
&AccessKeyId=key-test
&TimeStamp=2012-06-01T12:00:00Z
…
API授權
為了確保您的帳號安全,建議您使用子帳號的身份憑證調用API。如果您使用RAM帳號調用負載平衡API,您需要為該RAM帳號建立、附加相應的授權策略。
負載平衡中可授權的資源和介面列表,參見RAM鑒權。
API簽名
負載平衡服務會對每個API請求進行身分識別驗證,無論使用HTTP還是HTTPS協議提交請求,都需要在請求中包含簽名(Signature)資訊。
負載平衡通過使用AccessKey ID和AccessKey Secret進行對稱式加密的方法來驗證請求的寄件者身份。AccessKey是為阿里雲帳號和RAM使用者發布的一種身份憑證(類似於使用者的登入密碼),其中AccessKey ID 用於標識訪問者的身份,AccessKey Secret是用於加密簽名字元串和伺服器端驗證簽名字元串的密鑰,必須嚴格保密。
RPC API需按如下格式在請求中增加簽名(Signature):
https://endpoint/?SignatureVersion=1.0&SignatureMethod=HMAC-SHA1&Signature=CT9X0VtwR86fNWSnsc6v8YGOjuE%3D&SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf
以DescribeLoadBalancers為例,假設AccessKey ID是
testid
, AccessKey Secret是testsecret
,則簽名前的請求URL如下:
http://slb.aliyuncs.com/?Action=DescribeLoadBalancers
&TimeStamp=2016-02-23T12:46:24Z
&Format=XML
&AccessKeyId=testid
&SignatureMethod=HMAC-SHA1
&SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf
&Version=2014-05-26
&SignatureVersion=1.0
完成以下步驟計算簽名:
- 使用請求參數建立待簽名字元串:
GET&%2F&AccessKeyId%3Dtestid&Action%3DDescribeLoadBalancers&Format%3DXML&SignatureMethod%3DHMAC-SHA1&SignatureNonce%3D3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf&SignatureVersion%3D1.0&TimeStamp%3D2016-02-23T12%253A46%253A24Z&Version%3D2014-05-15
- 計算待簽名的HMAC的值。
在AccessKey Secret後添加一個“&”作為計算HMAC值的key。本樣本中的key為
testsecret&
。CT9X0VtwR86fNWSnsc6v8YGOjuE=
- 將簽名加到請求參數中:
http://slb.aliyuncs.com/?Action=DescribeLoadBalancers &TimeStamp=2016-02-23T12:46:24Z &Format=XML &AccessKeyId=testid &SignatureMethod=HMAC-SHA1 &SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf &Version=2014-05-26 &SignatureVersion=1.0 &Signature=CT9X0VtwR86fNWSnsc6v8YGOjuE%3D