文档首页/ 云防火墙 CFW/ 最佳实践/ 使用API购买并查询CFW
更新时间:2024-10-12 GMT+08:00

使用API购买并查询CFW

应用场景

对于专业人士而言,使用API的效率高于控制台操作,CFW提供多个功能的API接口,请参见API接口

本文介绍如何通过API的方式快速购买和查询标准版防火墙实例。

前提条件

当前账号拥有BSS Administrator和CFW FullAccess权限。

购买并查询标准版防火墙

  1. 登录管理控制台
  2. 在右上角选择工具 > API Explorer
  3. 在左侧导航栏中,单击“所有产品”,选择安全与合规 > 云防火墙
  4. 购买标准版防火墙:选择“创建防火墙”接口,填写关键参数如下,其余参数按需填写:

    • Region:选择云资产所在的区域。
    • project_id:项目ID,自动获取。
    • flavor:填写规格信息。
      • version:防火墙版本,本文购买标准版,选择“Standard”, 各版本之间的差异请参见服务版本差异
    • charge_info:填写计费类型信息。
      • charge_mode:计费模式,本文购买包年/包月,填写“prePaid”
      • is_auto_renew:是否自动续订,本文以购买一个月为例,选择“false”
      • is_auto_pay:支付方式是否选择自动支付,本文选择自动支付,选择“true”

  5. 查询购买的防火墙:选择“查询防火墙列表”接口,填写关键参数如下,其余参数按需填写:

    • Region:选择防火墙所在的区域。
    • project_id:项目ID,自动获取。
    • key_word:填写关键字,例如防火墙的名称。
    • limit:每页显示的结果数量,本文查询一个防火墙,此处填“1”
    • offset:偏移量,指定返回记录的开始位置,此处填0。

代码示例

请准备基础认证信息:
  • ak: 华为账号Access Key,获取方式请参见获取AK/SK
  • sk: 华为账号Secret Access Key,获取方式请参见获取AK/SK
  • Region:区域ID,例如cn-east-3,获取方式请参见地区和终端节点
import com.huaweicloud.sdk.cfw.v1.CfwClient;
import com.huaweicloud.sdk.cfw.v1.model.*;
import com.huaweicloud.sdk.cfw.v1.region.CfwRegion;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;

import java.util.ArrayList;
import java.util.List;

public class CreateFirewallSolution {

    public static void main(String[] args) {
        String ak = "xxxx";
        String sk = "xxxx";

        BasicCredentials auth = new BasicCredentials().withAk(ak).withSk(sk);

        CfwClient client = CfwClient.newBuilder()
            .withCredential(auth)
            .withRegion(CfwRegion.valueOf("xxxx"))
            .build();

        //创建创建防火墙请求体
        CreateFirewallRequest request = new CreateFirewallRequest();
        CreateFirewallReq body = new CreateFirewallReq();
        body.setName("cfwtest");
        body.setEnterpriseProjectId("0");
        CreateFirewallReqTags createFirewallReqTags = new CreateFirewallReqTags();
        createFirewallReqTags.setKey("TagKey");
        createFirewallReqTags.setValue("TagValue");
        List<CreateFirewallReqTags> createFirewallReqTagsList = new ArrayList<>();
        createFirewallReqTagsList.add(createFirewallReqTags);
        body.setTags(createFirewallReqTagsList);
        CreateFirewallReqFlavor flavor = new CreateFirewallReqFlavor();
        flavor.setVersion(CreateFirewallReqFlavor.VersionEnum.STANDARD);
        body.setFlavor(flavor);
        CreateFirewallReqChargeInfo createFirewallReqChargeInfo = new CreateFirewallReqChargeInfo();
        createFirewallReqChargeInfo.setChargeMode("prePaid");
        createFirewallReqChargeInfo.setPeriodType("month");
        createFirewallReqChargeInfo.setPeriodNum(1);
        createFirewallReqChargeInfo.setIsAutoPay(true);
        createFirewallReqChargeInfo.setIsAutoRenew(true);
        body.setChargeInfo(createFirewallReqChargeInfo);
        request.setBody(body);

        //创建查询防火墙请求体
        ListFirewallListRequest listFirewallListRequest = new ListFirewallListRequest();
        QueryFireWallInstanceDto queryFireWallInstanceDto = new QueryFireWallInstanceDto();
        queryFireWallInstanceDto.setOffset(0);
        queryFireWallInstanceDto.setLimit(1);
        queryFireWallInstanceDto.setKeyWord("cfwtest");
        listFirewallListRequest.setBody(queryFireWallInstanceDto);
        try {
            //创建防火墙
            CreateFirewallResponse createFirewallResponse = client.createFirewall(request);
            System.out.println(createFirewallResponse.toString());

            //查询防火墙列表
            ListFirewallListResponse listFirewallListResponse = client.listFirewallList(listFirewallListRequest);
            System.out.println(listFirewallListResponse.toString());
        } catch (ConnectionException e) {
            System.out.println(e.getMessage());
        } catch (RequestTimeoutException e) {
            System.out.println(e.getMessage());
        } catch (ServiceResponseException e) {
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}