API размещения каналов ExpressRoute
API размещения партнерских каналов ExpressRoute позволяет партнерам ExpressRoute настраивать подключение каналов на определенной паре портов. В частности, если партнер ExpressRoute управляет несколькими парами портов в одном расположении пиринга, он может использовать этот API, чтобы выбрать, какая пара портов упростит канал ExpressRoute.
Этот API использует тип ресурса expressRouteCrossConnection. Дополнительные сведения см. в статье Разработка и интеграция API crossConnection в ExpressRoute.
Регистрация подписки поставщика для типа ресурса expressRouteProviderPort
Чтобы использовать API размещения каналов, сначала необходимо зарегистрировать подписку для доступа к типу ресурса порта.
Выполните вход в свою учетную запись Azure и план подписки, которую планируете зарегистрировать.
Connect-AzAccount Select-AzSubscription -Subscription "<SubscriptionID or SubscriptionName>"
Зарегистрируйте подписку.
Register-AzProviderFeature -FeatureName AllowExpressRoutePorts -ProviderNamespace Microsoft.Network
После регистрации убедитесь, что поставщик ресурсов Microsoft.Network зарегистрирован в вашей подписке. Регистрация поставщика ресурсов настраивает подписку для работы с поставщиком ресурсов.
Рабочий процесс
Клиенты ExpressRoute совместно могут делиться ключом обслуживания целевого канала ExpressRoute.
Партнер ExpressRoute выполняет операцию GET с помощью API expressRouteProviderPorts, чтобы определить PortPairDescription для пары целевых портов. Партнер ExpressRoute может запросить список PortPairDescriptions для всех пар портов в подписке или ограничить область запроса для определенного расположения пиринга.
После идентификации целевого PortPairDescription партнер ExpressRoute выполнит операцию GET/PUT expressRouteCrossConnection, чтобы переместить канал ExpressRoute в пару целевых портов.
Партнеры ExpressRoute управляют конфигурацией уровня 2 и уровня 3 путем выдачи операций REST для ресурса expressRouteCrossConnections.
Этапы разработки и интеграции API
Операция GET с использованием API expressRouteProviderPorts для вывода списка пар портов
Партнер ExpressRoute может перечислить все пары портов в подписке целевого поставщика или перечислить пары портов в определенном расположении пиринга.
Получение списка всех пар портов для поставщика
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Network/expressRouteProviderPorts?api-version={api-version}
{
"parameters": {
"api-version": "2021-12-01",
"subscriptionId": "subid"
},
"responses": {
"200": {
"body": {
"value": [
{
"portPairDescriptor": "bvtazureixpportpair1",
"id": "/subscriptions/subid/providers/Microsoft.Network/ExpressRouteProviderPort/bvtazureixpportpair1",
"type": "Microsoft.Network/expressRouteProviderPort",
"location": "uswest",
"etag": "W/\"c0e6477e-8150-4d4f-9bf6-bb10e6acb63a\"",
"properties": {
"portPairDescriptor": "bvtazureixpportpair",
"primaryAzurePort": "bvtazureixp01a",
"secondaryAzurePort": "bvtazureixp01b",
"peeringLocation": "SiliconValley",
"overprovisionFactor": 4,
"portBandwidthInMbps": 4000,
"usedBandwidthInMbps": 2500,
"remainingBandwidthInMbps": 1500
}
},
{
"portPairDescriptor": "bvtazureixpportpair2",
"id": "/subscriptions/subid/providers/Microsoft.Network/ ExpressRouteProviderPort/bvtazureixpportpair2",
"type": "Microsoft.Network/expressRouteProviderPort",
"location": "uswest",
"etag": "W/\"c0e6477e-8150-4d4f-9bf6-bb10e6acb63a\"",
"properties": {
"portPairDescriptor": "bvtazureixpportpair2",
"primaryAzurePort": "bvtazureixp02a",
"secondaryAzurePort": "bvtazureixp02b",
"peeringLocation": "seattle",
"overprovisionFactor": 4,
"portBandwidthInMbps": 4000,
"usedBandwidthInMbps": 1200,
"remainingBandwidthInMbps": 1800
}
}
]
}
}
}
}
}
}
Код состояния ответа
- 200 (ОК) Запрос успешен. Он получит список портов.
- 4XX (Ошибка запроса) Одна из проверок не удалась, например: subid поставщика не является допустимым.
Получение списка всех пар портов для расположения
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Network/expressRouteProviderPorts?location={locationName}&api-version={api-version}
{
"parameters": {
"api-version": "2021-12-01",
"locationName": "SiliconValley",
"subscriptionId": "subid"
},
"responses": {
"200": {
"body": {
"value": [
{
"portPairDescriptor": "bvtazureixpportpair1",
"id": "/subscriptions/subid/providers/Microsoft.Network/ ExpressRouteProviderPort /bvtazureixpportpair1",
"type": "Microsoft.Network/expressRouteProviderPort",
"location": "uswest",
"etag": "W/\"c0e6477e-8150-4d4f-9bf6-bb10e6acb63a\"",
"properties": {
"portPairDescriptor": "bvtazureixpportpair",
"primaryAzurePort": "bvtazureixp01a",
"secondaryAzurePort": "bvtazureixp01b",
"peeringLocation": "SiliconValley",
"overprovisionFactor": 4,
"portBandwidthInMbps": 4000,
"usedBandwidthInMbps": 2500,
"remainingBandwidthInMbps": 1500
}
}
]
}
}
}
}
Код состояния ответа
- 200 (ОК) Запрос успешен. Он получит список портов.
- 4XX (Ошибка запроса) Одна из проверок не удалась, например: subid поставщика не является допустимым или неверное расположение.
Получение определенной пары портов с помощью идентификатора дескриптора для пары портов.
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Network/expressRouteProviderPorts/{portPairDescriptor}?api-version={api-version}
{
"parameters": {
"api-version": "2021-12-01",
"portPairDescriptor": " bvtazureixpportpair1",
"subscriptionId": "subid"
},
"responses": {
"200": {
"body": {
"value": [
{
"portPairDescriptor": "bvtazureixpportpair1",
"id": "/subscriptions/subid/providers/Microsoft.Network/ExpressRouteProviderPort/bvtazureixpportpair1",
"type": "Microsoft.Network/expressRouteProviderPort",
"location": "uswest",
"etag": "W/\"c0e6477e-8150-4d4f-9bf6-bb10e6acb63a\"",
"properties": {
"portPairDescriptor": "bvtazureixpportpair",
"primaryAzurePort": "bvtazureixp01a",
"secondaryAzurePort": "bvtazureixp01b",
"peeringLocation": "SiliconValley",
"overprovisionFactor": 4,
"portBandwidthInMbps": 4000,
"usedBandwidthInMbps": 2500,
"remainingBandwidthInMbps": 15
}
}
]
}
}
}
}
Описание кода состояния
- 200 (ОК) Запрос успешен. Будет извлечена информация о порте.
- 204 Пара портов с указанным идентификатором дескриптора недоступна.
- 4XX (Ошибка запроса) Одна из проверок не удалась, например: subid поставщика не является допустимым.
Перемещение целевого канала ExpressRoute в определенную пару портов
После определения portPairDescriptor пары целевых портов партнер ExpressRoute может использовать API ExpressRouteCrossConnection для перемещения канала ExpressRoute на определенную пару портов.
В настоящее время поставщики используют этот API для обновления состояния канала. Этот же API будет использоваться поставщиками для обновления пары портов канала.
В настоящее время основные свойства AzurePort и secondaryAzurePort являются свойствами только для чтения. Теперь мы отключили свойства только для чтения для этих портов.
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCrossConnections/{crossConnectionName}?api-version={api-version}
{
"parameters": {
"api-version": "2021-12-01",
"crossConnectionName": "The name of the cross connection",
"subscriptionId": "subid"
}
},
{
Request "body": {
" primaryAzurePort ": " bvtazureixp03a"
"secondaryAzurePort": "bvtazureixp03b",
}
}
Response:
{
"name": "<circuitServiceKey>",
"id": "/subscriptions/subid/resourceGroups/CrossConnectionSiliconValley/providers/Microsoft.Network/expressRouteCrossConnections/<circuitServiceKey>",
"type": "Microsoft.Network/expressRouteCrossConnections",
"location": "brazilsouth",
"properties": {
"provisioningState": "Enabled",
"expressRouteCircuit": {
"id": "/subscriptions/subid/resourceGroups/ertest/providers/Microsoft.Network/expressRouteCircuits/er1"
},
"peerings": [],
"peeringLocation": "SiliconValley",
"bandwidthInMbps": 1000,
"primaryAzurePort": "bvtazureixp03a",
"secondaryAzurePort": "bvtazureixp03b",
"sTag": 2,
"serviceProviderProvisioningState": "NotProvisioned"
}
}
Дальнейшие действия
Дополнительные сведения о всех REST API для ExpressRoute см. в разделе API-интерфейсы для ExpressRoute.