Создать HTTP-роутер
Создайте группу бэкендов в этом же каталоге по инструкции.
Чтобы создать HTTP-роутер и добавить в него маршрут:
- В консоли управления выберите каталог, в котором будет создаваться HTTP-роутер.
- В списке сервисов выберите Application Load Balancer.
- На панели слева выберите HTTP-роутеры.
- Нажмите кнопку Создать HTTP-роутер.
- Введите имя роутера:
test-router
. - В блоке Виртуальные хосты нажмите кнопку Добавить виртуальный хост.
- Введите имя хоста:
test-host-1
. - Нажмите кнопку Добавить маршрут.
- Введите Имя:
test-route
. - В поле Путь выберите
Совпадает с
и укажите путь/
. - В списке Методы HTTP выберите
GET
. - В поле Действие оставьте
Маршрутизация
. - В списке Группа бэкендов выберите
test-backend-group
. - Остальные настройки оставьте без изменений и нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для создания HTTP-роутера:
yc alb http-router create --help
-
Выполните команду:
yc alb http-router create <имя HTTP-роутера>
Результат:
id: a5dcsselagj4o2v4a6e7 name: test-http-router folder_id: aoerb349v3h4bupphtaf created_at: "2021-02-11T21:04:59.438292069Z"
-
Посмотрите описание команды CLI для создания виртуального хоста:
yc alb virtual-host create --help
-
Создайте виртуальный хост, указав имя HTTP-роутера и настройки виртуального хоста:
yc alb virtual-host create <имя виртуального хоста> \ --http-router-name <имя HTTP-роутера> \ --authority your-domain.foo.com \ --modify-request-header name=Accept-Language,append=ru-RU
Где:
--authority
— домены для заголовковHost
иauthority
, которые будут связаны с этим виртуальным хостом. Поддерживаются символы подстановки, например*.foo.com
или*-bar.foo.com
.--modify-request-header
— настройки модификации заголовка запроса:name
— имя модифицируемого заголовка.append
— строка, которая будет добавлена к значению заголовка.
Результат:
name: test-virtual-host authority: - your-domain.foo.com modify_request_headers: - name: Accept-Language append: ru-RU
-
Посмотрите описание команды CLI для добавления маршрута:
yc alb virtual-host append-http-route --help
-
Добавьте маршрут, указав идентификатор или имя роутера и параметры маршрутизации:
yc alb virtual-host append-http-route <имя маршрута> \ --virtual-host-name <имя виртуального хоста> \ --http-router-name <имя HTTP-роутера> \ --prefix-path-match / \ --backend-group-name <имя группы бэкендов> \ --request-timeout <тайм-аут запроса>s \ --request-idle-timeout <тайм-аут ожидания запроса>s
Результат:
done (1s) name: test-virtual-host authority: - your-domain.foo.com routes: - name: test-route http: match: path: prefix_match: / route: backend_group_id: a5d4db973944t2fh8gor timeout: 2s idle_timeout: 3s modify_request_headers: - name: Accept-Language append: ru-RU
Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). Terraform и его провайдеры распространяются под лицензией Mozilla Public License.
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле параметры HTTP-роутера и виртуального хоста:
resource "yandex_alb_http_router" "tf-router" { name = "<имя HTTP-роутера>" labels = { tf-label = "tf-label-value" empty-label = "" } } resource "yandex_alb_virtual_host" "my-virtual-host" { name = "<имя виртуального хоста>" http_router_id = "${yandex_alb_http_router.tf-router.id}" route { name = "<имя маршрута>" http_route { http_route_action { backend_group_id = "<идентификатор группы бэкендов>" timeout = "3s" } } } }
Где:
yandex_alb_virtual_host
— описание HTTP-роутера:-
name
— имя HTTP-роутера. Формат имени:- Длина — от 3 до 63 символов.
- Может содержать строчные буквы латинского алфавита, цифры и дефисы.
- Первый символ — буква. Последний символ — не дефис.
-
labels
— метки для HTTP-роутера. Укажите пару ключ-значение.
-
yandex_alb_virtual_host
— описание виртуального хоста:-
name
— имя виртуального хоста. Формат имени:- Длина — от 3 до 63 символов.
- Может содержать строчные буквы латинского алфавита, цифры и дефисы.
- Первый символ — буква. Последний символ — не дефис.
-
http_router_id
— идентификатор HTTP-роутера. -
route
— описание маршрута HTTP-роутера. Укажите имя маршрута, идентификатор группы бэкендов и время для обработки запроса (по умолчанию 60 секунд).
-
Более подробную информацию о параметрах ресурсов в Terraform см. в документации провайдера (yandex_alb_http_router и yandex_alb_virtual_host).
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления или с помощью команд CLI:
yc alb http-router get <идентификатор http-роутера>
-