常用公有云接入——腾讯
一、ES術(shù)語表
本文檔涉及的一些常用術(shù)語如下:
| Instance | Instance | 實(shí)例 | 指代一臺(tái)云服務(wù)器。 |
| Region | Region | 地域 | 表示資源所在的地域,每個(gè)地域包含一個(gè)或多個(gè)可用區(qū)。 |
| Zone | Zone | 可用區(qū) | 指騰訊云在同一?地域?內(nèi)電力和網(wǎng)絡(luò)互相獨(dú)立的物理數(shù)據(jù)中心。目標(biāo)是能夠保證可用區(qū)之間故障相互隔離,不出現(xiàn)故障擴(kuò)散,使得用戶的業(yè)務(wù)持續(xù)在線服務(wù)。 |
| Image | Image | 鏡像 | CVM實(shí)例上軟件環(huán)境的拷貝,一般包括操作系統(tǒng)和已安裝的軟件;我們使用鏡像來創(chuàng)建實(shí)例。 |
| SecurityGroup | Security Group | 安全組 | 一種有狀態(tài)的包過濾功能的虛擬防火墻,用于控制CVM實(shí)例的網(wǎng)絡(luò)訪問, 是一種重要的網(wǎng)絡(luò)安全隔離手段。 |
| EIP | Elastic IP | 彈性IP | 彈性IP是公網(wǎng)IP的一種。與普通公網(wǎng)IP不同的是,彈性IP歸屬于用戶賬戶而不是實(shí)例;實(shí)例與公網(wǎng)IP的映射關(guān)系隨時(shí)可以更改。 |
| 無 | 無 | 包年包月 | 一種計(jì)費(fèi)模式,參看?計(jì)費(fèi)模式說明。 |
| 無 | 無 | 按量計(jì)費(fèi) | 一種計(jì)費(fèi)模式,參看?計(jì)費(fèi)模式說明。 |
輸入?yún)?shù)與返回參數(shù)釋義
-
Limit 和 Offset
用來控制分頁的參數(shù);Limit 為單次返回的最多條目數(shù)量,Offset 為偏移量。當(dāng)相應(yīng)結(jié)果是列表形式時(shí),如果數(shù)量超過了 Limit 所限定的值,那么只返回 Limit 個(gè)值。
舉例來說,參數(shù) Offset=0&Limit=20 返回第 0 到 20 項(xiàng),Offset=20&Limit=20 返回第 20 到 40 項(xiàng),Offset=40&Limit=20 返回第 40 到 60 項(xiàng);以此類推。
- Ids.N
同時(shí)輸入多個(gè)參數(shù)的格式。當(dāng)遇到形如這樣的格式時(shí),那么該輸入?yún)?shù)可以同時(shí)傳多個(gè)。例如:
GET 請(qǐng)求或者 POST x-www-form-urlencoded 請(qǐng)求:Ids.0=ins-r8hr2upy&Ids.1=ins-5d8a23rs&Ids.2=ins--dcs9x3gz
以此類推(以下標(biāo) 0 開始)。
POST json 請(qǐng)求:{"Ids": ["ins-r8hr2upy", "ins-5d8a23rs", "ins--dcs9x3gz"]}
?
二、接口鑒權(quán)
1. 申請(qǐng)安全憑證
在第一次使用云API之前,請(qǐng)前往云API密鑰頁面申請(qǐng)安全憑證。 安全憑證包括 SecretId 和 SecretKey:
- SecretId 用于標(biāo)識(shí) API 調(diào)用者身份
- SecretKey 用于加密簽名字符串和服務(wù)器端驗(yàn)證簽名字符串的密鑰。
- 用戶必須嚴(yán)格保管安全憑證,避免泄露。
申請(qǐng)安全憑證的具體步驟如下:
注意:開發(fā)商帳號(hào)最多可以擁有兩對(duì) SecretId / SecretKey。
2. 生成簽名串
有了安全憑證SecretId 和 SecretKey后,就可以生成簽名串了。以下是生成簽名串的詳細(xì)過程:
假設(shè)用戶的 SecretId 和 SecretKey 分別是:
- SecretId: AKIDz8krbsJ5yKBZQpn74WFkmLPx3EXAMPLE
- SecretKey: Gu5t9xGARNpq86cd98joQYCN3EXAMPLE
注意:這里只是示例,請(qǐng)根據(jù)用戶實(shí)際申請(qǐng)的 SecretId 和 SecretKey 進(jìn)行后續(xù)操作!
以云服務(wù)器查看實(shí)例列表(DescribeInstances)請(qǐng)求為例,當(dāng)用戶調(diào)用這一接口時(shí),其請(qǐng)求參數(shù)可能如下:
| Action | 方法名 | DescribeInstances |
| SecretId | 密鑰Id | AKIDz8krbsJ5yKBZQpn74WFkmLPx3EXAMPLE |
| Timestamp | 當(dāng)前時(shí)間戳 | 1465185768 |
| Nonce | 隨機(jī)正整數(shù) | 11886 |
| Region | 實(shí)例所在區(qū)域 | ap-guangzhou |
| InstanceIds.0 | 待查詢的實(shí)例ID | ins-09dx96dg |
| Offset | 偏移量 | 0 |
| Limit | 最大允許輸出 | 20 |
| Version | 接口版本號(hào) | 2017-03-12 |
2.1. 對(duì)參數(shù)排序
首先對(duì)所有請(qǐng)求參數(shù)按參數(shù)名的字典序( ASCII 碼)升序排序。注意:1)只按參數(shù)名進(jìn)行排序,參數(shù)值保持對(duì)應(yīng)即可,不參與比大小;2)按 ASCII 碼比大小,如 InstanceIds.2 要排在 InstanceIds.12 后面,不是按字母表,也不是按數(shù)值。用戶可以借助編程語言中的相關(guān)排序函數(shù)來實(shí)現(xiàn)這一功能,如 php 中的 ksort 函數(shù)。上述示例參數(shù)的排序結(jié)果如下:
{'Action' : 'DescribeInstances','InstanceIds.0' : 'ins-09dx96dg','Limit' : 20,'Nonce' : 11886,'Offset' : 0,'Region' : 'ap-guangzhou','SecretId' : 'AKIDz8krbsJ5yKBZQpn74WFkmLPx3EXAMPLE','Timestamp' : 1465185768,'Version': '2017-03-12', }使用其它程序設(shè)計(jì)語言開發(fā)時(shí),可對(duì)上面示例中的參數(shù)進(jìn)行排序,得到的結(jié)果一致即可。
2.2. 拼接請(qǐng)求字符串
此步驟生成請(qǐng)求字符串。 將把上一步排序好的請(qǐng)求參數(shù)格式化成“參數(shù)名稱”=“參數(shù)值”的形式,如對(duì) Action 參數(shù),其參數(shù)名稱為 "Action" ,參數(shù)值為 "DescribeInstances" ,因此格式化后就為 Action=DescribeInstances 。?注意:“參數(shù)值”為原始值而非url編碼后的值。
然后將格式化后的各個(gè)參數(shù)用"&"拼接在一起,最終生成的請(qǐng)求字符串為:
Action=DescribeInstances&InstanceIds.0=ins-09dx96dg&Limit=20&Nonce=11886&Offset=0&Region=ap-guangzhou&SecretId=AKIDz8krbsJ5yKBZQpn74WFkmLPx3EXAMPLE&Timestamp=1465185768&Version=2017-03-122.3. 拼接簽名原文字符串
此步驟生成簽名原文字符串。 簽名原文字符串由以下幾個(gè)參數(shù)構(gòu)成:
簽名原文串的拼接規(guī)則為: 請(qǐng)求方法 + 請(qǐng)求主機(jī) +請(qǐng)求路徑 + ? + 請(qǐng)求字符串
示例的拼接結(jié)果為:
GETcvm.tencentcloudapi.com/?Action=DescribeInstances&InstanceIds.0=ins-09dx96dg&Limit=20&Nonce=11886&Offset=0&Region=ap-guangzhou&SecretId=AKIDz8krbsJ5yKBZQpn74WFkmLPx3EXAMPLE&Timestamp=1465185768&Version=2017-03-122.4. 生成簽名串
此步驟生成簽名串。 首先使用 HMAC-SHA1 算法對(duì)上一步中獲得的簽名原文字符串進(jìn)行簽名,然后將生成的簽名串使用 Base64 進(jìn)行編碼,即可獲得最終的簽名串。
具體代碼如下,以 PHP 語言為例:
$secretKey = 'Gu5t9xGARNpq86cd98joQYCN3EXAMPLE'; $srcStr = 'GETcvm.tencentcloudapi.com/?Action=DescribeInstances&InstanceIds.0=ins-09dx96dg&Limit=20&Nonce=11886&Offset=0&Region=ap-guangzhou&SecretId=AKIDz8krbsJ5yKBZQpn74WFkmLPx3EXAMPLE&Timestamp=1465185768&Version=2017-03-12'; $signStr = base64_encode(hash_hmac('sha1', $srcStr, $secretKey, true)); echo $signStr;最終得到的簽名串為:
EliP9YW3pW28FpsEdkXt/+WcGeI=使用其它程序設(shè)計(jì)語言開發(fā)時(shí),可用上面示例中的原文進(jìn)行簽名驗(yàn)證,得到的簽名串與例子中的一致即可。
3. 簽名串編碼
生成的簽名串并不能直接作為請(qǐng)求參數(shù),需要對(duì)其進(jìn)行 URL 編碼。
如上一步生成的簽名串為 EliP9YW3pW28FpsEdkXt/+WcGeI= ,最終得到的簽名串請(qǐng)求參數(shù)(Signature)為:EliP9YW3pW28FpsEdkXt%2f%2bWcGeI%3d,它將用于生成最終的請(qǐng)求 URL。
注意:如果用戶的請(qǐng)求方法是 GET,或者請(qǐng)求方法為 POST 同時(shí) Content-Type 為 application/x-www-form-urlencoded,則發(fā)送請(qǐng)求時(shí)所有請(qǐng)求參數(shù)的值均需要做 URL 編碼,參數(shù)鍵和=符號(hào)不需要編碼。非 ASCII 字符在 URL 編碼前需要先以 UTF-8 進(jìn)行編碼。
注意:有些編程語言的 http 庫(kù)會(huì)自動(dòng)為所有參數(shù)進(jìn)行 urlencode,在這種情況下,就不需要對(duì)簽名串進(jìn)行 URL 編碼了,否則兩次 URL 編碼會(huì)導(dǎo)致簽名失敗。
注意:其他參數(shù)值也需要進(jìn)行編碼,編碼采用?RFC 3986。使用 %XY 對(duì)特殊字符例如漢字進(jìn)行百分比編碼,其中“X”和“Y”為十六進(jìn)制字符(0-9 和大寫字母 A-F),使用小寫將引發(fā)錯(cuò)誤。
4. 簽名失敗
根據(jù)實(shí)際情況,存在以下簽名失敗的錯(cuò)誤碼,請(qǐng)根據(jù)實(shí)際情況處理
| AuthFailure.SignatureExpire | 簽名過期 |
| AuthFailure.SecretIdNotFound | 密鑰不存在 |
| AuthFailure.SignatureFailure | 簽名錯(cuò)誤 |
| AuthFailure.TokenFailure | token 錯(cuò)誤 |
| AuthFailure.InvalidSecretId | 密鑰非法(不是云 API 密鑰類型) |
5. 簽名演示
在實(shí)際調(diào)用 API 3.0 時(shí),推薦使用配套的騰訊云 SDK 3.0 ,SDK 封裝了簽名的過程,開發(fā)時(shí)只關(guān)注產(chǎn)品提供的具體接口即可。
為了更清楚的解釋簽名過程,下面以實(shí)際編程語言為例,將上述的簽名過程具體實(shí)現(xiàn)。請(qǐng)求的域名、調(diào)用的接口和參數(shù)的取值都以上述簽名過程為準(zhǔn),代碼只為解釋簽名過程,并不具備通用性,實(shí)際開發(fā)請(qǐng)盡量使用 SDK 。
最終輸出的 url 可能為:https://cvm.tencentcloudapi.com/?Action=DescribeInstances&InstanceIds.0=ins-09dx96dg&Limit=20&Nonce=11886&Offset=0&Region=ap-guangzhou&SecretId=AKIDz8krbsJ5yKBZQpn74WFkmLPx3EXAMPLE&Signature=EliP9YW3pW28FpsEdkXt%2F%2BWcGeI%3D&Timestamp=1465185768&Version=2017-03-12
注意:由于示例中的密鑰是虛構(gòu)的,時(shí)間戳也不是系統(tǒng)當(dāng)前時(shí)間,因此如果將此 url 在瀏覽器中打開或者用 curl 等命令調(diào)用時(shí)會(huì)返回鑒權(quán)錯(cuò)誤:簽名過期。為了得到一個(gè)可以正常返回的 url ,需要修改示例中的 SecretId 和 SecretKey 為真實(shí)的密鑰,并使用系統(tǒng)當(dāng)前時(shí)間戳作為 Timestamp 。
注意:在下面的示例中,不同編程語言,甚至同一語言每次執(zhí)行得到的 url 可能都有所不同,表現(xiàn)為參數(shù)的順序不同,但這并不影響正確性。只要所有參數(shù)都在,且簽名計(jì)算正確即可。
注意:以下代碼僅適用于 API 3.0,不能直接用于其他的簽名流程,即使是舊版的 API ,由于存在細(xì)節(jié)差異也會(huì)導(dǎo)致簽名計(jì)算錯(cuò)誤,請(qǐng)以對(duì)應(yīng)的實(shí)際文檔為準(zhǔn)。
import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Random; import java.util.TreeMap; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import javax.xml.bind.DatatypeConverter;public class TencentCloudAPIDemo {private final static String CHARSET = "UTF-8";public static String sign(String s, String key, String method) throws Exception {Mac mac = Mac.getInstance(method);SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(CHARSET), mac.getAlgorithm());mac.init(secretKeySpec);byte[] hash = mac.doFinal(s.getBytes(CHARSET));return DatatypeConverter.printBase64Binary(hash);}public static String getStringToSign(TreeMap<String, Object> params) {StringBuilder s2s = new StringBuilder("GETcvm.tencentcloudapi.com/?");// 簽名時(shí)要求對(duì)參數(shù)進(jìn)行字典排序,此處用TreeMap保證順序for (String k : params.keySet()) {s2s.append(k).append("=").append(params.get(k).toString()).append("&");}return s2s.toString().substring(0, s2s.length() - 1);}public static String getUrl(TreeMap<String, Object> params) throws UnsupportedEncodingException {StringBuilder url = new StringBuilder("https://cvm.tencentcloudapi.com/?");// 實(shí)際請(qǐng)求的url中對(duì)參數(shù)順序沒有要求for (String k : params.keySet()) {// 需要對(duì)請(qǐng)求串進(jìn)行urlencode,由于key都是英文字母,故此處僅對(duì)其value進(jìn)行urlencodeurl.append(k).append("=").append(URLEncoder.encode(params.get(k).toString(), CHARSET)).append("&");}return url.toString().substring(0, url.length() - 1);}public static void main(String[] args) throws Exception {TreeMap<String, Object> params = new TreeMap<String, Object>(); // TreeMap可以自動(dòng)排序// 實(shí)際調(diào)用時(shí)應(yīng)當(dāng)使用隨機(jī)數(shù),例如:params.put("Nonce", new Random().nextInt(java.lang.Integer.MAX_VALUE));params.put("Nonce", 11886); // 公共參數(shù)// 實(shí)際調(diào)用時(shí)應(yīng)當(dāng)使用系統(tǒng)當(dāng)前時(shí)間,例如: params.put("Timestamp", System.currentTimeMillis() / 1000);params.put("Timestamp", 1465185768); // 公共參數(shù)params.put("SecretId", "AKIDz8krbsJ5yKBZQpn74WFkmLPx3EXAMPLE"); // 公共參數(shù)params.put("Action", "DescribeInstances"); // 公共參數(shù)params.put("Version", "2017-03-12"); // 公共參數(shù)params.put("Region", "ap-guangzhou"); // 公共參數(shù)params.put("Limit", 20); // 業(yè)務(wù)參數(shù)params.put("Offset", 0); // 業(yè)務(wù)參數(shù)params.put("InstanceIds.0", "ins-09dx96dg"); // 業(yè)務(wù)參數(shù)params.put("Signature", sign(getStringToSign(params), "Gu5t9xGARNpq86cd98joQYCN3EXAMPLE", "HmacSHA1")); // 公共參數(shù)System.out.println(getUrl(params));} }?
三、騰訊SDK
GITHUT地址
package com.tencentcloudapi.es.v20180416;import java.lang.reflect.Type; import com.google.gson.JsonSyntaxException; import com.google.gson.reflect.TypeToken; import com.tencentcloudapi.common.exception.TencentCloudSDKException; import com.tencentcloudapi.common.AbstractClient; import com.tencentcloudapi.common.profile.ClientProfile; import com.tencentcloudapi.common.JsonResponseModel; import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.es.v20180416.models.*;public class EsClient extends AbstractClient{private static String endpoint = "es.tencentcloudapi.com";private static String version = "2018-04-16";/*** 構(gòu)造client* @param credential 認(rèn)證信息實(shí)例* @param region 產(chǎn)品地域*/public EsClient(Credential credential, String region) {this(credential, region, new ClientProfile());}/*** 構(gòu)造client* @param credential 認(rèn)證信息實(shí)例* @param region 產(chǎn)品地域* @param profile 配置實(shí)例*/public EsClient(Credential credential, String region, ClientProfile profile) {super(EsClient.endpoint, EsClient.version, credential, region, profile);}/***創(chuàng)建指定規(guī)格的ES集群實(shí)例* @param req CreateInstanceRequest* @return CreateInstanceResponse* @throws TencentCloudSDKException*/public CreateInstanceResponse CreateInstance(CreateInstanceRequest req) throws TencentCloudSDKException{JsonResponseModel<CreateInstanceResponse> rsp = null;try {Type type = new TypeToken<JsonResponseModel<CreateInstanceResponse>>() {}.getType();rsp = gson.fromJson(this.internalRequest(req, "CreateInstance"), type);} catch (JsonSyntaxException e) {throw new TencentCloudSDKException(e.getMessage());}return rsp.response;}/***銷毀集群實(shí)例 * @param req DeleteInstanceRequest* @return DeleteInstanceResponse* @throws TencentCloudSDKException*/public DeleteInstanceResponse DeleteInstance(DeleteInstanceRequest req) throws TencentCloudSDKException{JsonResponseModel<DeleteInstanceResponse> rsp = null;try {Type type = new TypeToken<JsonResponseModel<DeleteInstanceResponse>>() {}.getType();rsp = gson.fromJson(this.internalRequest(req, "DeleteInstance"), type);} catch (JsonSyntaxException e) {throw new TencentCloudSDKException(e.getMessage());}return rsp.response;}/***查詢用戶該地域下符合條件的ES集群的日志* @param req DescribeInstanceLogsRequest* @return DescribeInstanceLogsResponse* @throws TencentCloudSDKException*/public DescribeInstanceLogsResponse DescribeInstanceLogs(DescribeInstanceLogsRequest req) throws TencentCloudSDKException{JsonResponseModel<DescribeInstanceLogsResponse> rsp = null;try {Type type = new TypeToken<JsonResponseModel<DescribeInstanceLogsResponse>>() {}.getType();rsp = gson.fromJson(this.internalRequest(req, "DescribeInstanceLogs"), type);} catch (JsonSyntaxException e) {throw new TencentCloudSDKException(e.getMessage());}return rsp.response;}/***查詢實(shí)例指定條件下的操作記錄* @param req DescribeInstanceOperationsRequest* @return DescribeInstanceOperationsResponse* @throws TencentCloudSDKException*/public DescribeInstanceOperationsResponse DescribeInstanceOperations(DescribeInstanceOperationsRequest req) throws TencentCloudSDKException{JsonResponseModel<DescribeInstanceOperationsResponse> rsp = null;try {Type type = new TypeToken<JsonResponseModel<DescribeInstanceOperationsResponse>>() {}.getType();rsp = gson.fromJson(this.internalRequest(req, "DescribeInstanceOperations"), type);} catch (JsonSyntaxException e) {throw new TencentCloudSDKException(e.getMessage());}return rsp.response;}/***查詢用戶該地域下符合條件的所有實(shí)例* @param req DescribeInstancesRequest* @return DescribeInstancesResponse* @throws TencentCloudSDKException*/public DescribeInstancesResponse DescribeInstances(DescribeInstancesRequest req) throws TencentCloudSDKException{JsonResponseModel<DescribeInstancesResponse> rsp = null;try {Type type = new TypeToken<JsonResponseModel<DescribeInstancesResponse>>() {}.getType();rsp = gson.fromJson(this.internalRequest(req, "DescribeInstances"), type);} catch (JsonSyntaxException e) {throw new TencentCloudSDKException(e.getMessage());}return rsp.response;}/***重啟ES集群實(shí)例(用于系統(tǒng)版本更新等操作) * @param req RestartInstanceRequest* @return RestartInstanceResponse* @throws TencentCloudSDKException*/public RestartInstanceResponse RestartInstance(RestartInstanceRequest req) throws TencentCloudSDKException{JsonResponseModel<RestartInstanceResponse> rsp = null;try {Type type = new TypeToken<JsonResponseModel<RestartInstanceResponse>>() {}.getType();rsp = gson.fromJson(this.internalRequest(req, "RestartInstance"), type);} catch (JsonSyntaxException e) {throw new TencentCloudSDKException(e.getMessage());}return rsp.response;}/***對(duì)集群進(jìn)行擴(kuò)縮容,修改實(shí)例名稱,修改配置,重置密碼, 添加Kibana黑白名單等操作。參數(shù)中InstanceId為必傳參數(shù),ForceRestart為選填參數(shù),剩余參數(shù)傳遞組合及含義如下:<br>InstanceName:修改實(shí)例名稱(僅用于標(biāo)識(shí)實(shí)例)<br>NodeNum:集群數(shù)據(jù)節(jié)點(diǎn)橫向擴(kuò)縮容<br>NodeType, DiskSize:集群數(shù)據(jù)節(jié)點(diǎn)縱向擴(kuò)縮容<br>MasterNodeNum: 集群專用主節(jié)點(diǎn)橫向擴(kuò)縮容<br>MasterNodeType, MasterNodeDiskSize: 集群專用主節(jié)點(diǎn)縱向擴(kuò)縮容<br>EsConfig:修改集群配置<br>Password:修改集群密碼<br>EsAcl:修改Kibana密碼<br>CosBackUp: 設(shè)置集群COS自動(dòng)備份信息<br> 以上參數(shù)組合只能傳遞一種,多傳或少傳均會(huì)導(dǎo)致請(qǐng)求失敗<br>* @param req UpdateInstanceRequest* @return UpdateInstanceResponse* @throws TencentCloudSDKException*/public UpdateInstanceResponse UpdateInstance(UpdateInstanceRequest req) throws TencentCloudSDKException{JsonResponseModel<UpdateInstanceResponse> rsp = null;try {Type type = new TypeToken<JsonResponseModel<UpdateInstanceResponse>>() {}.getType();rsp = gson.fromJson(this.internalRequest(req, "UpdateInstance"), type);} catch (JsonSyntaxException e) {throw new TencentCloudSDKException(e.getMessage());}return rsp.response;}}?
四、RESTful API
API 概覽
調(diào)用方式
- 請(qǐng)求結(jié)構(gòu)
- 公共參數(shù)
- 接口鑒權(quán) v3
- 接口鑒權(quán)
- 返回結(jié)果
實(shí)例相關(guān)接口
- 創(chuàng)建實(shí)例
- 創(chuàng)建實(shí)例詢價(jià)
- 啟動(dòng)實(shí)例
- 關(guān)閉實(shí)例
- 重啟實(shí)例
- 重裝實(shí)例
- 重裝實(shí)例詢價(jià)
- 重置實(shí)例密碼
- 退還實(shí)例
- 查看實(shí)例列表
- 查看實(shí)例狀態(tài)列表
- 修改實(shí)例的屬性
- 修改實(shí)例所屬項(xiàng)目
- 調(diào)整實(shí)例配置
- 調(diào)整實(shí)例配置詢價(jià)
- 擴(kuò)容實(shí)例磁盤
- 擴(kuò)容實(shí)例磁盤詢價(jià)
- 查詢所支持的實(shí)例機(jī)型族信息
- 查詢實(shí)例機(jī)型列表
- 續(xù)費(fèi)實(shí)例
- 續(xù)費(fèi)實(shí)例詢價(jià)
- 修改實(shí)例續(xù)費(fèi)標(biāo)識(shí)
- 查詢實(shí)例帶寬配置
- 查詢網(wǎng)絡(luò)計(jì)費(fèi)類型
- 調(diào)整實(shí)例帶寬上限
- 調(diào)整實(shí)例帶寬上限詢價(jià)
- 獲取可用區(qū)機(jī)型配置信息
- 創(chuàng)建分散置放群組
- 刪除分散置放群組
- 查詢置放群組配額
- 查詢分散置放群組信息
- 修改分散置放群組屬性
- 綁定安全組
- 查詢實(shí)例管理終端地址
- 查詢實(shí)例操作限制
- 解綁安全組
- 修改實(shí)例計(jì)費(fèi)模式詢價(jià)
- 修改實(shí)例計(jì)費(fèi)模式
- 修改實(shí)例vpc屬性
總結(jié)
以上是生活随笔為你收集整理的常用公有云接入——腾讯的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Cloud 终于按捺不住推
- 下一篇: 常用公有云接入——华为