Невозможно добавить конечную точку диспетчера трафика с профилем диспетчера трафика - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь добавить Traffic Manager Profile с Traffic Manager Endpoint, включенным через azure-sdk-for-ruby.

Однако тело, созданное SDK для профиля TM, не содержит пары атрибутов (имя, тип), которые необходимы для создания конечной точки TM. Без этих атрибутов SDK завершается ошибкой со следующей ошибкой

"body": "{\"code\":\"BadRequest\",\"message\":\"Endpoint name '' is invalid. 
Endpoint names cannot be empty or all whitespace, and must be up to 260 alphanumeric characters long. 
The type '<null>' specified for endpoint '<null>' is invalid. Valid endpoint types are: 
'Microsoft.Network\\/trafficManagerProfiles\\/azureEndpoints', 
'Microsoft.Network\\/trafficManagerProfiles\\/externalEndpoints', 
'Microsoft.Network\\/trafficManagerProfiles\\/nestedEndpoints'.\"}"

Если вы создаете конечную точку TM отдельно и профиль TM отдельно (без конечной точки TM), оба случая проходят успешно. Но создание или обновление профиля TM с помощью конечной точки TM всегда приводит к вышеупомянутой ошибке.

Это тело запроса, которое я отправляю в SDK

<Azure::TrafficManager::Mgmt::V2018_04_01::Models::Profile:0x0055c26806f678 
@traffic_routing_method="Performance", @location="global", @profile_status="Enabled", @dns_config=#<Azure::TrafficManager::Mgmt::V2018_04_01::Models::DnsConfig:0x0055c26806f650 
@relative_name="testapplication", @ttl="30">, @monitor_config=#<Azure::TrafficManager::Mgmt::V2018_04_01::Models::MonitorConfig:0x0055c26806f628 
@path="/monitorpage.aspx", @protocol="http", @port="80">, @endpoints=[#<Azure::TrafficManager::Mgmt::V2018_04_01::Models::Endpoint:0x0055c26806f538 
@min_child_endpoints=nil, @target_resource_id=nil, @endpoint_location="eastus", @priority=5, 
@target="test-app.com", @weight=10, @name="endpoint1", 
@type="Microsoft.Network/trafficManagerProfiles/externalEndpoints">], @tags={:key1=>"value1", :key2=>"value2"}>

Как видите,Я включаю атрибуты name и type для конечной точки TM.

Это тело, которое SDK отправляет вперед

"body": "{\"tags\":{\"key1\":\"value1\",\"key2\":\"value2\"},\"location\":\"global\",\"properties\":
{\"profileStatus\":\"Enabled\",\"trafficRoutingMethod\":\"Performance\",\"dnsConfig\":
{\"relativeName\":\"testapplication\",\"ttl\":\"30\"},\"monitorConfig\":
{\"protocol\":\"http\",\"port\":\"80\",\"path\":\"/monitorpage.aspx\"},\"endpoints\":[{\"properties\":
{\"target\":\"test-app.com\",\"weight\":10,\"priority\":5,\"endpointLocation\":\"eastus\"}}]}}"

В теле, отправленном SDK, исключаются оба name и атрибут type.

Следует отметить, что атрибуты name и type были установлены на read_only в модели Endpoint, что, вероятно, означает, что пользователь не можетустановить их сам. Но в этом случае я не могу понять, как установить одни и те же атрибуты при создании конечной точки отдельно, а не при ее создании с помощью профиля.

Пожалуйста, дайте мне знать, что мне не хватает. Пример создания конечной точки TM с профилем TM будет наиболее полезным!

Версия Azure SDK: 0.17.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...