云防火墻服務不提供管理(包含查詢、創建、變更、續費)實例的接口。您可以通過調用阿里云交易和賬單管理API提供的接口來管理云防火墻實例。文本介紹調用API管理云防火墻實例的請求方法和示例。
背景信息
阿里云交易和賬單管理API是一套通用的管理阿里云資源的接口,可以用于查詢服務價格、管理實例、獲取賬單信息等。關于阿里云交易和賬單管理API支持的所有接口,請參見API概覽。
您可以調用阿里云交易和賬單管理API提供的接口,查詢、創建、變更、續費云防火墻實例。關于該接口的調用方式,請參見請求結構。
查詢實例
調用QueryAvailableInstances查詢實例資源。
調試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
請求參數
名稱 | 類型 | 必填 | 示例值 | 描述 |
Region | String | 否 | cn-hangzhou | 地域。 |
PageNum | Integer | 否 | 1 | 頁碼。 |
PageSize | Integer | 否 | 20 | 每頁條數。 |
ProductCode | String | 是 | vipcloudfw | 產品代碼。可通過接口QueryProductList - 查詢產品信息查詢產品代碼,或查看阿里云產品Code速查手冊。云防火墻的產品代碼。取值:
|
ProductType | String | 否 | vipcloudfw | 產品類型。 |
SubscriptionType | String | 否 | Subscription | 付費類型。取值:
|
InstanceIDs | String | 否 | vipcloudfw-cn-pe3xxxxxx | 實例ID。多個ID用英文逗號分隔,最大不超過100個。 |
EndTimeStart | String | 否 | 2024-01-01T00:00:00Z | 結束時間段起。符合ISO8601標準的utc時間格式。 |
EndTimeEnd | String | 否 | 2024-01-01T00:00:00Z | 結束時間段止。符合ISO8601標準的utc時間格式。 |
CreateTimeStart | String | 否 | 2023-01-01T00:00:00Z | 創建時間段起。符合ISO8601標準的utc時間格式。 |
CreateTimeEnd | String | 否 | 2023-01-01T00:00:00Z | 創建時間段止。符合ISO8601標準的utc時間格式。 |
RenewStatus | String | 否 | AutoRenewal | 續費狀態。取值:
|
響應參數
名稱 | 類型 | 示例值 | 描述 |
Code | String | Success | 狀態碼。 |
Message | String | Successful! | 錯誤信息。 |
RequestId | String | C7C15585-8349-4C62-BEE4-5A391841XXXX | 請求ID。 |
Success | Boolean | TRUE | 是否成功。 |
Data | Object | 返回數據。關于Data的詳細信息,請參見Data。 |
Data
名稱 | 類型 | 示例值 | 描述 |
PageNum | Integer | 1 | 頁碼。 |
PageSize | Integer | 10 | 每頁條數。 |
TotalCount | Integer | 11 | 總記錄數。 |
InstanceList | Object | 實例信息的列表。關于InstanceList的詳細介紹,請參見InstanceList。 |
InstanceList
名稱 | 類型 | 示例值 | 描述 |
SubStatus | String | Normal | 續費的子狀態。取值:
|
Status | String | Normal | 購買的云防火墻狀態。取值:
|
ExpectedReleaseTime | String | 2019-09-08T16:00:00Z | 期望釋放時間。 |
RenewStatus | String | ManualRenewal | 續費狀態。取值:
|
CreateTime | String | 2019-09-08T16:00:00Z | 創建時間。 |
SellerId | Long | 123123123 | 賣方ID。 |
InstanceID | String | vipcloudfw-cn-pe333nx**** | 訂單對應的實例ID。 |
Seller | String | 2**** | 賣方。 |
StopTime | String | 2019-09-08T16:00:00Z | 停止時間。 |
RenewalDurationUnit | String | M | 自動續費周期單位。取值:
|
SubscriptionType | String | Subscription | 訂閱類型。取值:
|
OwnerId | Long | 325352345 | 所有者ID。 |
EndTime | String | 2019-09-08T16:00:00Z | 結束時間。 |
ProductType | String | vipcloudfw | 產品類型。 |
Region | String | cn-hangzhou | 地域。 |
ReleaseTime | String | 2019-09-08T16:00:00Z | 釋放時間。 |
RenewalDuration | Integer | 1 | 自動續費周期數量。 |
ProductCode | String | vipcloudfw | 產品代碼。 |
示例
請求示例
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.util.*;
import com.aliyuncs.bssopenapi.model.v20171214.*;
/*
pom.xml
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.0</version>
</dependency>
*/
public class QueryAvailableInstances {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<your-access-key-id>"<YOUR-ACCESS-KEY-ID>secret>");
/** use STS Token
DefaultProfile profile = DefaultProfile.getProfile(
"<your-region-id>", <YOUR-REGION-ID>on ID.
"<your-access-key-id>", // The AccessKey ID of the RAM account.
"<your-access-key-secret>",<YOUR-ACCESS-KEY-SECRET>et of the RAM account
"<your-sts-token>"); <YOUR-STS-TOKEN> **/
IAcsClient client = new DefaultAcsClient(profile);
QueryAvailableInstancesRequest request = new QueryAvailableInstancesRequest();
request.setProductCode("vipcloudfw");
try {
QueryAvailableInstancesResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}
正常返回示例
{
"RequestId": "FDE58AA9-37C8-5001-948B-82DE61353864",
"Message": "Successful!",
"Data": {
"TotalCount": 1,
"PageNum": 1,
"PageSize": 20,
"InstanceList": [
{
"Status": "Normal",
"SubscriptionType": "Subscription",
"OwnerId": 19xxxxxxxxx6359163,
"EndTime": "2023-06-21T16:00:00Z",
"ProductCode": "vipcloudfw",
"InstanceID": "vipcloudfw-cn-pe333nx****",
"CreateTime": "2021-12-21T05:17:32Z",
"ProductType": "vipcloudfw",
"RenewalDurationUnit": "M",
"Seller": "2****",
"SubStatus": "Normal",
"RenewStatus": "ManualRenewal"
}
]
},
"Code": "Success",
"Success": true
}
創建實例
調用CreateInstance創建一個實例資源,調用接口會自動創建一個新購實例資源的訂單,并自動支付。
調試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
請求參數
名稱 | 類型 | 是否必選 | 示例值 | 描述 |
Action | String | 是 | CreateInstance | 系統規定參數。取值:CreateInstance。 |
Parameter.N.Code | String | 是 | ? | 第n個模塊屬性code配置,n的取值范圍為(1~100),如有多個模塊屬性參數,按照n=1,2,3…n的形式拼接多個參數。具體信息,請參見Parameter。 |
Parameter.N.Value | String | 是 | ? | 第n個模塊屬性value配置,n的取值范圍為(1~100)。具體信息,請參見Parameter。 |
ProductCode | String | 是 | vipcloudfw | 產品代碼。可通過接口QueryProductList - 查詢產品信息查詢產品代碼,或查看阿里云產品Code速查手冊。 云防火墻的產品代碼,取值:
|
SubscriptionType | String | 是 | Subscription | 付費類型。取值:
|
RenewPeriod | Integer | 否 | 12 | 自動續費周期。單位為月。 說明 當設置RenewalStatus為AutoRenewal時,必須設置。 |
Period | Integer | 否 | 1 | 預付費周期。單位為月,按年付費產品請輸入12的整數倍。 說明 當創建預付費實例時,必須設置。 |
RenewalStatus | String | 否 | ManualRenewal | 自動續費狀態。取值:
|
Parameter
Parameter.N.Code | 類型 | 是否必選 | 示例值? | 描述 |
CfwAccount | String | 是 | true | 多賬戶統一管理。取值:
|
VpcBandwidth | Integer | 是 | 1000 | VPC流量處理能力。單位:Mbps。各版本支持情況和取值范圍:
|
AclExtension | Integer | 是 | 1000 | 訪問控制全局擴展。各版本取值范圍:
|
CfwAccountNum | Integer | 是 | 1 | 多賬號管控數。各版本取值范圍:
|
FwVpcNumber | Integer | 是 | 10 | 可防護VPC數。各版本支持情況和取值范圍:
|
IpNumber | Integer | 是 | 100 | 可防護公網IP數。各版本取值范圍:
|
CfwLogStorage | Integer | 是 | 10000 | 日志存儲容量。單位:GB。各版本取值范圍:
|
CfwLog | String | 是 | true | 日志分析。取值:
|
BandWidth | Integer | 是 | 200 | 公網流量處理能力。單位:Mbps。各版本取值范圍:
|
Spec | String | 是 | 2 | 當前云防火墻版本。取值:
|
NatFwNumber | Integer | 否 | 2 | NAT防火墻實例數。取值:
|
NatFwBandwidth | Integer | 否 | 200 | NAT私網流量處理能力。單位:Mbps。取值:
|
CfwOverflow | String | 否 | true | 超量彈性流量處理。取值:
|
返回參數
名稱 | 類型 | 示例值 | 描述 |
Code | String | Success | 狀態碼。 |
InstanceId | String | vipcloudfw-cn-pe333nx**** | 訂單對應的實例ID。 |
OrderId | String | 22165938636**** | 創建成功的訂單ID。 |
Message | String | Successful! | 錯誤信息。 |
RequestId | String | 13B1DCF7-0B7C-5426-BC08-869887FCCCEC | 請求ID。 |
Success | Boolean | true | 是否成功。 |
示例
下面代碼創建了預付費中國站云防火墻,使用手動續費,且預付費用1個月。
請求示例
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
/*
pom.xml
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.0</version>
</dependency>
*/
public class CreateInstance {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<your-access-key-id><YOUR-ACCESS-KEY-ID>-secret>");
/** use STS Token
DefaultProfile profile = DefaultProfile.getProfile(
"<your-region-id>", <YOUR-REGION-ID>ion ID.
"<your-access-key-id>", // The AccessKey ID of the RAM account.
"<your-access-key-secret>"<YOUR-ACCESS-KEY-SECRET>ret of the RAM account.
"<your-sts-token>"); <YOUR-STS-TOKEN>
**/
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
request.setSysDomain("business.aliyuncs.com");
request.setSysVersion("2017-12-14");
request.setSysAction("CreateInstance");
request.putQueryParameter("RenewalStatus", "ManualRenewal");
request.putQueryParameter("ProductCode", "vipcloudfw");
request.putQueryParameter("Parameter.1.Code", "CfwAccount");
request.putQueryParameter("Parameter.1.Value", "true");
request.putQueryParameter("Parameter.2.Code", "CfwAccount");
request.putQueryParameter("Parameter.2.Value", "true");
request.putQueryParameter("Parameter.3.Code", "VpcBandwidth");
request.putQueryParameter("Parameter.3.Value", "1000");//VPC流量處理能力為1000 Mbps。
request.putQueryParameter("Parameter.4.Code", "AclExtension");
request.putQueryParameter("Parameter.4.Value", "1000");//訪問控制全局擴展為1000條。
request.putQueryParameter("Parameter.5.Code", "CfwAccountNum");
request.putQueryParameter("Parameter.5.Value", "1");//多賬號管控數為1。
request.putQueryParameter("Parameter.6.Code", "FwVpcNumber");
request.putQueryParameter("Parameter.6.Value", "10");//可防護的VPC數為10個。
request.putQueryParameter("Parameter.7.Code", "IpNumber");
request.putQueryParameter("Parameter.7.Value", "400");//可防護公網IP數為400。
request.putQueryParameter("Parameter.8.Code", "CfwLogStorage");
request.putQueryParameter("Parameter.8.Value", "10000");//日志存儲容量為10000 GB。
request.putQueryParameter("Parameter.9.Code", "CfwLog");
request.putQueryParameter("Parameter.9.Value", "true");//開通日志分析功能。
request.putQueryParameter("Parameter.10.Code", "BandWidth");
request.putQueryParameter("Parameter.10.Value", "200");//公網流量處理能力為200 Mbps。
request.putQueryParameter("Parameter.11.Code", "Spec");
request.putQueryParameter("Parameter.11.Value", "4");//旗艦版。
request.putQueryParameter("SubscriptionType", "Subscription");//預付費類型。
request.putQueryParameter("Period", "1");//1個月。
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}
正常返回示例
云防火墻創建成功會返回實例ID(InstanceId),實例ID在后續變配和續費中將用到。
{
"RequestId": "13B1DCF7-0B7C-5426-BC08-869887FCCCEC",
"Message": "Successful!",
"Data": {
"InstanceId": "vipcloudfw-cn-pe333nx****",
"OrderId": 22165938636****
},
"Code": "Success",
"Success": true
}
變更實例
調用ModifyInstance對實例資源配置進行變更。調用接口會創建一個變配實例資源的訂單,并自動支付。
降低配置后,已經開始的收費周期內不支持退費,會從下一個收費周期開始按照降配后的最新規格計費。
調試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
請求參數
名稱 | 類型 | 是否必選 | 示例值 | 描述 |
Action | String | 是 | ModifyInstance | 系統規定參數。取值:ModifyInstance。 |
Parameter.N.Code | String | 是 | ? | 第n個模塊屬性code配置,n的取值范圍為(1~100),如有多個模塊屬性參數,按照n=1,2,3…n的形式拼接多個參數。具體信息,請參見Parameter。 |
Parameter.N.Value | String | 是 | ? | 第n個模塊屬性value配置,n的取值范圍為(1~100)。具體信息,請參見Parameter。 |
ProductCode | String | 是 | vipcloudfw | 產品代碼。可通過接口QueryProductList - 查詢產品信息查詢產品代碼,或查看阿里云產品Code速查手冊。 云防火墻的產品代碼。取值:
|
SubscriptionType | String | 是 | Subscription | 付費類型。取值:
|
ModifyType | Upgrade | 變配類型。取值:
| ||
InstanceId | String | 否 | vipcloudfw-cn-pe333nx**** | 訂單對應的實例ID。 |
Parameter
Parameter.N.Code | 類型 | 是否必選 | 示例值? | 描述 |
CfwAccount | String | 是 | true | 多賬戶統一管理。取值:
|
VpcBandwidth | Integer | 是 | 1000 | VPC流量處理能力。單位:Mbps。各版本支持情況和取值范圍:
|
AclExtension | Integer | 是 | 1000 | 訪問控制全局擴展。各版本取值范圍:
|
CfwAccountNum | Integer | 是 | 1 | 多賬號管控數。各版本取值范圍:
|
FwVpcNumber | Integer | 是 | 10 | 可防護VPC數。各版本支持情況和取值范圍:
|
IpNumber | Integer | 是 | 100 | 可防護公網IP數。各版本取值范圍:
|
CfwLogStorage | Integer | 是 | 10000 | 日志存儲容量。單位:GB。各版本取值范圍:
|
CfwLog | String | 是 | true | 日志分析。取值:
|
BandWidth | Integer | 是 | 200 | 公網流量處理能力。單位:Mbps。各版本取值范圍:
|
Spec | String | 是 | 2 | 當前云防火墻版本。取值:
|
NatFwNumber | Integer | 否 | 2 | NAT防火墻實例數。取值:
|
NatFwBandwidth | Integer | 否 | 200 | NAT私網流量處理能力。單位:Mbps。取值:
|
CfwOverflow | String | 否 | true | 超量彈性流量處理。取值:
|
響應參數
名稱 | 類型 | 示例值 | 描述 |
Code | String | Success | 狀態碼。 |
HostId | String | cn**** | 主機ID。 |
OrderId | String | 22165938810**** | 創建成功的訂單ID。 |
Message | String | Successful! | 錯誤信息。 |
RequestId | String | 3EC4C157-46E3-5341-82B0-8CEEC7637F93 | 請求ID。 |
Success | Boolean | true | 是否成功。 |
示例
下面代碼為您實現將公網流量處理能力從200 Mbps升級到500 Mbps。
請求示例
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
/*
pom.xml
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.0</version>
</dependency>
*/
public class ModifyInstance {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<your-access-key-id><YOUR-ACCESS-KEY-ID>-sec<YOUR-ACCESS-KEY-SECRET>TS Token
DefaultProfile profile = DefaultProfile.getProfile(
"<your-region-id>", <YOUR-REGION-ID>>ion ID
"<your-access-key-id>", // The AccessKey ID of the RAM account
"<your-access-key-secret><YOUR-ACCESS-KEY-SECRET>cret of the RAM account
"<your-sts-token>"); <YOUR-STS-TOKEN>> **/
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
request.setSysDomain("business.aliyuncs.com");
request.setSysVersion("2017-12-14");
request.setSysAction("ModifyInstance");
request.putQueryParameter("ProductCode", "vipcloudfw");
request.putQueryParameter("SubscriptionType", "Subscription");
request.putQueryParameter("ModifyType", "Upgrade");
request.putQueryParameter("InstanceId", "vipcloudfw-cn-pe333nx****");
request.putQueryParameter("Parameter.1.Code", "BandWidth");
request.putQueryParameter("Parameter.1.Value", "500");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}
正常返回示例
{
"Message": "Successful!",
"RequestId": "3EC4C157-46E3-5341-82B0-8CEEC7637F93",
"Data": {
"OrderId": 22165938810****,
"HostId": "cn****"
},
"Code": "Success",
"Success": true
}
實例續費
調用RenewInstance對相關實例進行續費。
調試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
請求參數
名稱 | 類型 | 是否必選 | 示例值 | 描述 |
Action | String | 是 | RenewInstance | 系統規定參數。取值:RenewInstance。 |
ProductCode | String | 是 | vipcloudfw | 產品代碼。可通過接口QueryProductList - 查詢產品信息查詢產品代碼,或查看阿里云產品Code速查手冊。 云防火墻的產品代碼。取值:
|
RenewPeriod | Integer | 是 | 6 | 預付費續費時長。單位:月。取值:
|
InstanceId | String | 否 | vipcloudfw-cn-pe333nx**** | 訂單對應的實例ID。 |
響應參數
錯誤碼 | 類型 | 示例值 | 描述 |
Code | String | Success | 狀態碼。 |
OrderId | String | 22165938810**** | 創建成功的訂單ID。 |
Message | String | Successful! | 錯誤信息。 |
RequestId | String | E15FB71F-7FF8-5272-80B1-B4E73BE4CB99 | 請求ID。 |
Success | Boolean | true | 是否成功。 |
示例
以下是實現續費6個月的代碼示例。
請求示例
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.util.*;
import com.aliyuncs.bssopenapi.model.v20171214.*;
/*
pom.xml
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.0</version>
</dependency>
*/
public class RenewInstance {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<your-access-key-id>"<YOUR-ACCESS-KEY-ID>secret>");
/** use STS Token
DefaultProfile profile = DefaultProfile.getProfile(
"<your-region-id>", <YOUR-REGION-ID>on ID.
"<your-access-key-id>", // The AccessKey ID of the RAM account.
"<your-access-key-secret>",<YOUR-ACCESS-KEY-SECRET>et of the RAM account.
"<your-sts-token>"); <YOUR-STS-TOKEN> **/
IAcsClient client = new DefaultAcsClient(profile);
RenewInstanceRequest request = new RenewInstanceRequest();
request.setProductCode("vipcloudfw");
request.setInstanceId("vipcloudfw-cn-pe333nx****");
request.setRenewPeriod(6);
try {
RenewInstanceResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}
正常返回示例
{
"Message": "Successful!",
"RequestId": "E15FB71F-7FF8-5272-80B1-B4E73BE4CB99",
"Data": {
"OrderId": 22167752456****
},
"Code": "Success",
"Success": true
}