Изменить параметры HTTP-роутера
Чтобы изменить параметры HTTP-роутера:
- В консоли управления
выберите каталог, в котором создан HTTP-роутер. - Выберите сервис Application Load Balancer.
- На панели слева выберите
HTTP-роутеры. - Нажмите на имя нужного роутера.
- Нажмите Редактировать.
- Измените параметры роутера, виртуального хоста или маршрута.
- Внизу страницы нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для изменения балансировщиков:
yc alb http-router update --help
-
Выполните команду, указав новые параметры роутера:
yc alb http-router update <имя_HTTP-роутера> --new-name <новое_имя_HTTP-роутера>
Результат:
id: a5dld80l32ed******** name: new-http-router folder_id: aoe197919j8e******** virtual_hosts: - name: test-virtual-host authority: - your-domain.foo.com routes: - name: test-route http: match: path: prefix_match: / route: backend_group_id: a5d4db973944******** timeout: 2s idle_timeout: 3s modify_request_headers: - name: Accept-Language append: ru-RU created_at: "2021-02-11T21:31:01.676592016Z"
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте файл конфигурации Terraform и измените фрагмент с описанием HTTP-роутера:
... resource "yandex_alb_http_router" "tf-router" { name = "my-http-router" labels = { tf-label = "tf-label-value" empty-label = "" } } ...
Более подробную информацию о параметрах ресурса
yandex_alb_http_router
в Terraform см. в документации провайдера . -
Чтобы добавить, изменить или удалить виртуальные хосты HTTP-роутера, используйте ресурс
yandex_alb_virtual_host
с указанием на роутер в полеhttp_router_id
:resource "yandex_alb_virtual_host" "my-virtual-host" { name = "my-virtual-host" http_router_id = "${yandex_alb_http_router.tf-router.id}" route { name = "my-route" http_route { http_route_action { backend_group_id = "${yandex_alb_backend_group.backend-group.id}" timeout = "3s" } } } }
Более подробную информацию о параметрах ресурса
yandex_alb_virtual_host
в Terraform см. в документации провайдера . -
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter.Проверить изменение HTTP-роутера можно в консоли управления
или с помощью команды CLI:yc alb http-router get <идентификатор_http-роутера>
Воспользуйтесь методом REST API update для ресурса HttpRouter или вызовом gRPC API HttpRouterService/Update.
Добавить маршрут в виртуальный хост
Чтобы добавить новый маршрут в виртуальный хост HTTP-роутера:
- В консоли управления
выберите каталог, в котором создан HTTP-роутер. - Выберите сервис Application Load Balancer.
- На панели слева выберите
HTTP-роутеры. - Нажмите на имя нужного роутера.
- Нажмите Редактировать.
- Нажмите кнопку Добавить маршрут.
- Задайте параметры маршрута и нажмите Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Посмотрите описание команды CLI для работы с виртуальными хостами:
yc alb virtual-host --help
-
HTTP
Вы можете добавить новый маршрут в начало, в конец или в определенное место списка маршрутов хоста.
Добавить маршрут в конец списка маршрутов хоста
-
Посмотрите описание команды CLI для добавления маршрута в конец списка маршрутов хоста:
yc alb virtual-host append-http-route --help
-
Выполните команду:
yc alb virtual-host append-http-route <имя_маршрута> \ --virtual-host-name <имя_виртуального_хоста> \ --http-router-name <имя_HTTP-роутера> \ --match-http-method <метод_HTTP> \ --exact-path-match / \ --backend-group-name <имя_группы_бэкендов> \ --request-timeout <тайм-аут_запроса>s \ --request-idle-timeout <тайм-аут_ожидания_запроса>s
Подробную информацию о параметрах команды
yc alb virtual-host append-http-route
см. в справочнике CLI.Результат:
name: test-virtual-host authority: - your-domain.foo.com routes: - name: test-route ... - name: test-route-toend http: match: path: prefix_match: / route: backend_group_id: a5d3e9ko2qf0******** timeout: 2s idle_timeout: 3s
Добавить маршрут в начало списка маршрутов хоста
-
Посмотрите описание команды CLI для добавления маршрута в начало списка маршрутов хоста:
yc alb virtual-host prepend-http-route --help
-
Выполните команду:
yc alb virtual-host prepend-http-route <имя_маршрута> \ --virtual-host-name <имя_виртуального_хоста> \ --http-router-name <имя_HTTP-роутера> \ --match-http-method <метод_HTTP> \ --exact-path-match / \ --backend-group-name <имя_группы_бэкендов> \ --request-timeout <тайм-аут_запроса>s \ --request-idle-timeout <тайм-аут_ожидания_запроса>s
Подробную информацию о параметрах команды
yc alb virtual-host prepend-http-route
см. в справочнике CLI.Результат:
name: test-virtual-host authority: - your-domain.foo.com routes: - name: test-route-tostart http: match: http_method: - GET path: exact_match: / route: backend_group_id: a5d3e9ko2qf0******** timeout: 2s idle_timeout: 3s - name: test-route ...
Добавить маршрут перед определенным маршрутом
-
Посмотрите описание команды CLI для добавления маршрута перед определенным маршрутом:
yc alb virtual-host insert-http-route --help
-
Выполните команду:
yc alb virtual-host insert-http-route <имя_маршрута> \ --virtual-host-name <имя_виртуального_хоста> \ --before <имя_маршрута_перед_которым_надо_поставить_новый_маршрут> \ --http-router-name <имя_HTTP-роутера> \ --match-http-method <метод_HTTP> \ --exact-path-match / \ --backend-group-name <имя_группы_бэкендов> \ --request-timeout <тайм-аут_запроса>s \ --request-idle-timeout <тайм-аут_ожидания_запроса>s
Подробную информацию о параметрах команды
yc alb virtual-host insert-http-route
см. в справочнике CLI.Результат:
done (2s) name: test-virtual-host authority: - your-domain.foo.com routes: ... - name: test-route-insbefore http: match: http_method: - GET path: exact_match: / route: backend_group_id: a5d3e9ko2qf0******** timeout: 2s idle_timeout: 3s - name: test-route ...
Добавить маршрут после определенного маршрута
-
Посмотрите описание команды CLI для добавления нового маршрута после определенного маршрута:
yc alb virtual-host insert-http-route --help
-
Выполните команду:
yc alb virtual-host insert-http-route <имя_маршрута> \ --virtual-host-name <имя_виртуального_хоста> \ --after <имя_маршрута_после_которого_надо_поставить_новый_маршрут> \ --http-router-name <имя_HTTP-роутера> \ --match-http-method <метод_HTTP> \ --exact-path-match / \ --backend-group-name <имя_группы_бэкендов> \ --request-timeout <тайм-аут_запроса>s \ --request-idle-timeout <тайм-аут_ожидания_запроса>s
Подробную информацию о параметрах команды
yc alb virtual-host insert-http-route
см. в справочнике CLI.Результат:
done (2s) name: test-virtual-host authority: - your-domain.foo.com routes: - name: test-route ... - name: test-route-insafter http: match: path: prefix_match: / route: backend_group_id: a5d3e9ko2qf0******** timeout: 2s idle_timeout: 3s ...
-
-
gRPC
Вы можете добавить новый маршрут в начало, в конец или в определенное место списка маршрутов хоста.
Добавить маршрут в конец списка маршрутов хоста
-
Посмотрите описание команды CLI для добавления маршрута в конец списка маршрутов хоста:
yc alb virtual-host append-grpc-route --help
-
Выполните команду:
yc alb virtual-host append-grpc-route <имя_маршрута> \ --virtual-host-name <имя_виртуального_хоста> \ --http-router-name <имя_HTTP-роутера> \ --prefix-fqmn-match /<первое_слово_названия_сервиса> \ --backend-group-name <имя_группы_бэкендов> \ --request-max-timeout <таймаут>s
Подробную информацию о параметрах команды
yc alb virtual-host append-grpc-route
см. в справочнике CLI.Результат:
name: <имя_виртуального_хоста> authority: - * routes: - name: grpc-route ... - name: grpc-route-toend grpc: match: fqmn: prefix_match: /helloworld route: backend_group_id: ds7snban2dvn******** max_timeout: 60s auto_host_rewrite: false
Добавить маршрут в начало списка маршрутов хоста
-
Посмотрите описание команды CLI для добавления маршрута в начало списка маршрутов хоста:
yc alb virtual-host prepend-grpc-route --help
-
Выполните команду:
yc alb virtual-host prepend-grpc-route <имя_маршрута> \ --virtual-host-name <имя_виртуального_хоста> \ --http-router-name <имя_HTTP-роутера> \ --prefix-fqmn-match /<первое_слово_названия_сервиса> \ --backend-group-name <имя_группы_бэкендов> \ --request-max-timeout <таймаут>s
Подробную информацию о параметрах команды
yc alb virtual-host prepend-grpc-route
см. в справочнике CLI.Результат:
name: <имя_виртуального_хоста> authority: - * routes: - name: grpc-route-tostart grpc: match: fqmn: prefix_match: /helloworld route: backend_group_id: ds7snban2dvn******** max_timeout: 60s auto_host_rewrite: false - name: grpc-route ...
Добавить маршрут перед определенным маршрутом
-
Посмотрите описание команды CLI для добавления маршрута перед определенным маршрутом:
yc alb virtual-host insert-grpc-route --help
-
Выполните команду:
yc alb virtual-host insert-grpc-route <имя_маршрута> \ --virtual-host-name <имя_виртуального_хоста> \ --before <имя_маршрута> \ --http-router-name <имя_HTTP-роутера> \ --prefix-fqmn-match /<первое_слово> \ --backend-group-name <имя_группы_бэкендов> \ --request-max-timeout <таймаут>s
Где:
--virtual-host-name
— имя виртуального хоста, к которому необходимо добавить маршрут.--before
— имя маршрута, перед которым надо поставить новый маршрут.--http-router-name
— имя HTTP-роутера.--prefix-fqmn-match
— первое слово названия сервиса.--backend-group-name
— имя группы бэкендов.--request-max-timeout
— таймаут, в секундах.
Подробную информацию о параметрах команды
yc alb virtual-host insert-grpc-route
см. в справочнике CLI.Результат:
name: grpc-host authority: - * routes: ... - name: grpc-route-before grpc: match: fqmn: prefix_match: /helloworld route: backend_group_id: ds7snban2dvn******** max_timeout: 60s auto_host_rewrite: false - name: grpc-route ...
Добавить маршрут после определенного маршрута
-
Посмотрите описание команды CLI для добавления нового маршрута после определенного маршрута:
yc alb virtual-host insert-grpc-route --help
-
Выполните команду:
yc alb virtual-host insert-grpc-route <имя_маршрута> \ --virtual-host-name <имя_виртуального_хоста> \ --after <имя_маршрута> \ --http-router-name <имя_HTTP-роутера> \ --prefix-fqmn-match /<первое_слово> \ --backend-group-name <имя_группы_бэкендов> \ --request-max-timeout <таймаут>s
Где:
--virtual-host-name
— имя виртуального хоста, к которому необходимо добавить маршрут.--after
— имя маршрута, после которого надо поставить новый маршрут.--http-router-name
— имя HTTP-роутера.--prefix-fqmn-match
— первое слово названия сервиса.--backend-group-name
— имя группы бэкендов.--request-max-timeout
— таймаут, в секундах.
Подробную информацию о параметрах команды
yc alb virtual-host insert-grpc-route
см. в справочнике CLI.Результат:
name: grpc-host authority: - * routes: ... - name: grpc-route ... - name: grpc-route-after grpc: match: fqmn: prefix_match: /helloworld route: backend_group_id: ds7snban2dvn******** max_timeout: 60s auto_host_rewrite: false ...
-
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте файл конфигурации Terraform и измените фрагмент с описанием виртуального хоста, добавив блок
route
:resource "yandex_alb_virtual_host" "my-virtual-host" { name = "my-virtual-host" http_router_id = "${yandex_alb_http_router.tf-router.id}" route { name = "my-route" http_route { http_route_action { backend_group_id = "${yandex_alb_backend_group.backend-group.id}" timeout = "3s" } } } }
Более подробную информацию о параметрах ресурса
yandex_alb_virtual_host
в Terraform см. в документации провайдера .Порядок маршрутов важен в описании виртуального хоста. Более подробную информацию см. в концепции.
-
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter.Проверить изменение виртуального хоста можно в консоли управления
или с помощью команды CLI:yc alb virtual-host get <идентификатор_виртуального_хоста>
Воспользуйтесь методом REST API update для ресурса VirtualHost или вызовом gRPC API VirtualHostService/Update.
Изменить порядок маршрутов в виртуальном хосте
Чтобы изменить порядок маршрутов HTTP-роутера:
- В консоли управления
выберите каталог, в котором создан HTTP-роутер. - Выберите сервис Application Load Balancer.
- На панели слева выберите
HTTP-роутеры. - Нажмите на имя нужного роутера.
- Нажмите Редактировать.
- Нажмите кнопку Сортировать.
- В открывшемся окне перетащите маршрут на новое место в списке.
- Нажмите Сохранить.
- Завершите редактирование роутера и нажмите Сохранить.
-
HTTP
-
Посмотрите описание команды CLI для удаления маршрута:
yc application-load-balancer virtual-host remove-http-route --help
-
Удалите маршрут:
yc alb virtual-host remove-http-route <имя_маршрута> \ --virtual-host-name <имя_виртуального_хоста> \ --http-router-name <имя_роутера>
-
Добавьте маршрут в нужном месте одним из способов, описанных выше.
-
-
gRPC
-
Посмотрите описание команды CLI для удаления маршрута:
yc application-load-balancer virtual-host remove-gRPC-route --help
-
Удалите маршрут:
yc alb virtual-host remove-grpc-route <имя_маршрута> \ --virtual-host-name <имя_виртуального_хоста> \ --http-router-name <имя_роутера>
-
Добавьте маршрут в нужном месте одним из способов, описанных выше.
-
Воспользуйтесь методом REST API update для ресурса VirtualHost или вызовом gRPC API VirtualHostService/Update.