ibm-cloud-infrastructure - 通过 Softlayer Rest Api 在 Softlayer 中看不到 Multi-Vlan Firewall 的类型
问题描述
当我们订购多 Vlan 防火墙时,我们会选择防火墙的类型和插件配置。我需要知道 MultiVlan 防火墙的设备类型,即。加强安全设备或其他任何东西。我没有从 api 中得到这个来列出我帐户中的多 VLAN 防火墙。这是我用来在我的帐户中获取多 Vlan 防火墙的 api。
https://api.softlayer.com/rest/v3/SoftLayer_Account/getNetworkGateways?objectMask=mask[id,name,networkFirewall[id,customerManagedFlag,datacenter.name],publicIpAddress.ipAddress,publicVlan[id,primaryRouter.hostname],privateIpAddress.ipAddress,insideVlans[id],memberCount,status.keyName]
但是在获取防火墙列表时,我没有看到防火墙的类型和我用防火墙订购的附加配置。请告诉我应该为此目的使用哪个 api?
解决方案
这似乎由控制门户管理,该控制门户使用 API 响应来定义通过它在防火墙列表中显示的类型(即:“FortiGate 安全设备”和“专用防火墙”类型,包括单 FortiGate 安全设备和 高可用性 FortiGate 安全分别在订购时使用)。
提供的 api 调用是可以的,但是上面提到的防火墙列表的类型以及您可以在 UI 中看到的类型将由属性“customerManagedFlag”定义,当这是“true”时,它将是一个 FortiGate FW, FortiGate 和专用防火墙类型之间的区别将由 memberCount 属性定义,该属性声明 memberCount = 1 表示“独立”,memberCount > 1 表示“高可用性”。
在 Api 响应中,将您的 MultiVlan 防火墙与其他防火墙进行比较,并验证它们的属性是否符合前面提到的属性。
例如见下文: - FortiGate:
{
"id": 8888888,
"name": "multiVlanFW",
"memberCount": 1,
"insideVlans": [],
"networkFirewall": {
"customerManagedFlag": true,
"id": 12345,
"datacenter": {
"name": "dal10"
}
},
......
高可用性 FortiGate:
{
"id": 999999,
"name": "multiVlanFWwithHA",
"memberCount": 2,
"insideVlans": [],
"networkFirewall": {
"customerManagedFlag": true,
"id": 67890,
"datacenter": {
"name": "dal13"
}
},
关于订购时的插件,我改进了请求,以便您可以通过相同的调用或直接在 FG Firewall 的 id 上使用SoftLayer_Network_Vlan_Firewall::getObject方法来检索它们。
我会发两个,请看下面:
https://api.softlayer.com/rest/v3/Account/getNetworkGateways?objectMask=mask[id,name,networkFirewall[id,customerManagedFlag,datacenter.name, billingItem[id,notes,orderItemId,activeChildren[categoryCode, description]]],publicIpAddress.ipAddress,publicVlan[id,primaryRouter.hostname],privateIpAddress.ipAddress,insideVlans[id],memberCount,status.keyName]
或者
https://api.softlayer.com/rest/v3/Network_Vlan_Firewall/12345/getObject?objectMask=mask[datacenter.name,billingItem[id,cancellationDate,nextBillDate,activeChildren.categoryCode],networkGateway[id,name,status.name,publicIpAddress.ipAddress,publicIpv6Address.ipAddress,privateIpAddress.ipAddress,memberCount,publicVlan[primaryRouter.hostname,vlanNumber],privateVlan[primaryRouter.hostname,vlanNumber],insideVlans[id,bypassFlag,networkVlan[id,vlanNumber,name,networkSpace]]]]
推荐阅读
- excel - 循环遍历每个切片器项目并将工作簿保存为文件名等于所选切片器项目的 xls?
- node.js - 我想知道为什么我使用express,axios和cors时会出现不同的错误结果
- android - 如何使用 Hilt 在可组合的内部获取 Viewmodel
- c++ - 如何找到最佳线程数以使用现代 C++ 计算一个非常大的向量的总和?
- visual-studio-code - 如何在终端 VSCode 中激活当前的 venv(不是通过 conda/venv)
- macos - 开发人员如何在本地开发大型 dockerized 应用程序?
- rust - 在实现图时,不能像可变一样借用,因为它已经被借用了
- javascript - 数组在下面输出新数据而不是覆盖
- java - 两个引用指向内存中的同一个对象但在java中独立工作?
- amazon-web-services - 具有自定义实例类型的 AWS RDS Aurora 自动扩展