# Запуск статического сайта и бекенда под одним доменом
API Gateway умеет проксировать запросы на разные сервисы в Яндекс.Облаке (opens new window).
При разработке веб-приложения адреса можно организовать следующим образом:
- фронтенд, развернутый в Object Storage может размещаться на корневом адресе (
/
) - бекенд, развернутый в Serverless Container может размещаться на адресе
/api
Вот пример конфигурации API Gateway, позволяющий реализовать такую схему (сделайте замену в выделенных строчках):
openapi: 3.0.0
info:
title: Web app
version: 1.0.0
paths:
/: # раздаем index.html
get:
summary: Serve static file from Yandex Cloud Object Storage
x-yc-apigateway-integration:
type: object_storage
bucket: bucketname # вставьте название бакепа
object: index.html
error_object: error.html
service_account_id: serviceaccountid # вставьте ID сервисного аккаунта
/{file+}: # раздаем остальные файлы фронтенда
get:
summary: Serve static file from Yandex Cloud Object Storage
parameters:
- name: file
explode: false
in: path
required: true
schema:
type: string
x-yc-apigateway-integration:
type: object_storage
bucket: bucketname # вставьте название бакепа
object: '{file}'
error_object: index.html
service_account_id: serviceaccountid # вставьте ID сервисного аккаунта
/api/{url+}: # запускаем API
x-yc-apigateway-any-method:
summary: Execute container
operationId: container
parameters:
- explode: false
in: path
name: url
required: false
style: simple
x-yc-apigateway-integration:
type: serverless_containers
container_id: containerid # ID контейнера
service_account_id: serviceaccountid # ID сервисного аккаунта
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45