Запуск контейнерного приложения в Yandex Serverless Containers
- Подготовьте облако к работе
- Создайте сервисный аккаунт
- Создайте облачную сеть и подсеть
- Настройте группу безопасности
- Создайте виртуальную машину с MongoDB
- Создайте секрет Yandex Lockbox
- Создайте реестр Container Registry
- Загрузите Docker-образ в реестр
- Создайте контейнер Serverless Containers
- Создайте API-шлюз API Gateway
- Проверьте работу приложения
- Как удалить созданные ресурсы
С помощью этого руководства вы сможете развернуть контейнер с приложением в сервисе Serverless Containers для администрирования СУБД MongoDB.
СУБД развернута на виртуальной машине Yandex Compute Cloud, контейнер с приложением хранится в реестре Yandex Container Registry, чувствительные данные зашифрованы с помощью Yandex Lockbox, а безопасный доступ к приложению реализован через API-шлюз Yandex API Gateway. Вся инфраструктура контейнерного приложения располагается в одном каталоге.
Чтобы развернуть контейнерное приложение:
- Подготовьте облако к работе.
- Создайте сервисный аккаунт.
- Создайте облачную сеть и подсеть.
- Настройте группу безопасности.
- Создайте виртуальную машину Compute Cloud с MongoDB.
- Создайте секрет Yandex Lockbox и версию.
- Создайте реестр Container Registry.
- Загрузите Docker-образ в Container Registry.
- Создайте контейнер Serverless Containers.
- Создайте API-шлюз API Gateway.
- Проверьте работу приложения.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки приложения входит:
- плата за постоянно запущенную ВМ (см. тарифы Yandex Compute Cloud);
- плата за хранение секретов (см. тарифы Yandex Lockbox);
- плата за хранение Docker-образа (см. тарифы Yandex Container Registry);
- плата за количество вызовов контейнера, вычислительные ресурсы, выделенные для выполнения приложения, и исходящий трафик (см. тарифы Serverless Containers);
- плата за запросы к API-шлюзу (см. тарифы Yandex API Gateway);
- плата за запись и хранение данных в лог-группе (см. тарифы Yandex Cloud Logging).
Создайте сервисный аккаунт
Создайте сервисный аккаунт и назначьте ему роли на каталог, в котором будет размещаться инфраструктура контейнерного приложения.
- В консоли управления
перейдите в каталог, в котором будет размещаться инфраструктура контейнерного приложения. - В списке сервисов выберите Identity and Access Management.
- Нажмите Создать сервисный аккаунт.
- Введите имя сервисного аккаунта —
mongo-express
. - Нажмите Добавить роль и выберите роли
container-registry.images.puller
,lockbox.payloadViewer
иserverless-containers.containerInvoker
. - Нажмите Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
-
Создайте сервисный аккаунт с именем
mongo-express
:yc iam service-account create --name mongo-express
Результат:
id: aje3pdqm1cul******** folder_id: b1g681qpemb4******** created_at: "2025-06-14T10:31:06.911280565Z" name: mongo-express
-
Назначьте сервисному аккаунту роли
container-registry.images.puller
,lockbox.payloadViewer
иserverless-containers.containerInvoker
на каталог, в котором будет размещаться контейнер:yc resource-manager folder add-access-binding <имя_или_идентификатор_каталога> \ --role container-registry.images.puller \ --subject serviceAccount:<идентификатор_сервисного_аккаунта> yc resource-manager folder add-access-binding <имя_или_идентификатор_каталога> \ --role lockbox.payloadViewer \ --subject serviceAccount:<идентификатор_сервисного_аккаунта> yc resource-manager folder add-access-binding <имя_или_идентификатор_каталога> \ --role serverless-containers.containerInvoker \ --subject serviceAccount:<идентификатор_сервисного_аккаунта>
Где:
<имя_или_идентификатор_каталога>
— имя или идентификатор каталога, в котором будет размещаться контейнер.--subject serviceAccount
— идентификатор сервисного аккаунтаmongo-express
.
Результат:
effective_deltas: - action: ADD access_binding: role_id: container-registry.images.puller subject: id: aje3pdqm1cul******** type: serviceAccount effective_deltas: - action: ADD access_binding: role_id: lockbox.payloadViewer subject: id: aje3pdqm1cul******** type: serviceAccount effective_deltas: - action: ADD access_binding: role_id: serverless-containers.containerInvoker subject: id: aje3pdqm1cul******** type: serviceAccount
- Чтобы создать сервисный аккаунт, воспользуйтесь методом REST API create для ресурса ServiceAccount или вызовом gRPC API ServiceAccountService/Create.
- Чтобы назначить сервисному аккаунту роли на каталог, воспользуйтесь методом REST API updateAccessBindings для ресурса Folder или вызовом gRPC API FolderService/UpdateAccessBindings.
Создайте облачную сеть и подсеть
Создайте облачную сеть и подсеть, в которых будет располагаться ВМ.
- В консоли управления
в списке сервисов выберите Virtual Private Cloud. - Справа сверху нажмите Создать сеть.
- В поле Имя укажите
mongo-express-network
. - В поле Дополнительно выберите опцию Создать подсети.
- Нажмите Создать сеть.
- На панели слева выберите Подсети.
- Справа сверху нажмите Создать.
- В поле Имя укажите
mongo-express-subnet-ru-central1-b
. - В поле Зона выберите зону доступности
ru-central1-b
. - В поле Сеть выберите облачную сеть
mongo-express-network
. - В поле CIDR укажите
192.168.1.0/24
. - Нажмите Создать подсеть.
-
Создайте облачную сеть:
yc vpc network create \ --name mongo-express-network
Результат:
id: enp1b4okmg57******** folder_id: b1g681qpemb4******** created_at: "2025-06-13T12:57:02Z" name: mongo-express-network default_security_group_id: enphs1omp6m4********
Сохраните идентификатор группы безопасности по умолчанию, указанный в поле
default_security_group_id
. -
Создайте подсеть:
yc vpc subnet create \ --name mongo-express-subnet-ru-central1-b \ --zone ru-central1-b \ --network-id <идентификатор_сети> \ --range 192.168.1.0/24
Где:
--name
— название подсети.--zone
— зона доступности.--network-id
— идентификатор сетиmongo-express-network
.--range
— список IPv4-адресов, откуда или куда будет поступать трафик.
Результат:
id: e2l9i0eaq32t******** folder_id: b1g681qpemb4******** created_at: "2025-06-14T09:27:37Z" name: mongo-express-subnet-ru-central1-b network_id: enp1b4okmg57******** zone_id: ru-central1-b v4_cidr_blocks: - 192.168.1.0/24
-
Чтобы создать облачную сеть, воспользуйтесь методом REST API create для ресурса Network или вызовом gRPC API NetworkService/Create и передайте в запросе:
- Идентификатор каталога, в котором будет размещаться сеть.
- Имя новой сети
mongo-express-network
в параметреname
.
-
Чтобы создать подсеть, воспользуйтесь методом REST API create для ресурса Subnet или вызовом gRPC API SubnetService/Create.
Настройте группу безопасности
Настройте группу безопасности по умолчанию в созданной ранее облачной сети.
-
В консоли управления
в списке сервисов выберите Virtual Private Cloud. -
На панели слева выберите
Группы безопасности. -
Напротив группы безопасности, созданной по умолчанию для сети
mongo-express-network
, нажмите и выберите Редактировать. -
В блоке Правила перейдите на вкладку Исходящий трафик.
-
Нажмите Добавить правило и создайте правило по таблице:
Направление
трафикаОписание Диапазон портов Протокол Назначение /
ИсточникCIDR блоки Входящий
any
27017
Любой
CIDR
0.0.0.0/0
-
Нажмите Сохранить.
Добавьте правило в группу безопасности:
yc vpc security-group update-rules <идентификатор_группы_безопасности> \
--add-rule "direction=ingress,port=27017,protocol=any,v4-cidrs=[0.0.0.0/0,0.0.0.0/0]"
Где <идентификатор_группы_безопасности>
— значение default_security_group_id
, полученное на предыдущем шаге.
Результат:
id: enpmal7qcb1q********
folder_id: b1g681qpemb4********
created_at: "2025-06-14T09:24:47Z"
name: default-sg-enpeiqghds1j********
description: Default security group for network
network_id: enpeiqghds1j********
status: ACTIVE
rules:
...
- id: enprm96de4ec********
direction: INGRESS
ports:
from_port: "27017"
to_port: "27017"
protocol_name: ANY
protocol_number: "-1"
cidr_blocks:
v4_cidr_blocks:
- 0.0.0.0/0
- 0.0.0.0/0
default_for_network: true
Чтобы добавить правило в группу безопасности, воспользуйтесь методом REST API updateRules для ресурса SecurityGroup или вызовом gRPC API SecurityGroupService/UpdateRules и передайте в запросе:
-
Идентификатор группы безопасности, в которую будут добавлены правила, в параметре
securityGroupId
.Чтобы узнать идентификатор группы безопасности, воспользуйтесь методом REST API list для ресурса SecurityGroup или вызовом gRPC API SecurityGroupService/List и передайте в запросе идентификатор каталога в параметре
folderId
. -
Новые правила группы безопасности в массиве
additionRuleSpecs[]
:- Направление трафика —
ingress
. - Имя протокола передачи трафика в параметре
additionRuleSpecs[].protocolName
—any
. - Список CIDR и масок подсетей в параметре
additionRuleSpecs[].cidrBlocks.v4CidrBlocks[]
—[0.0.0.0/0,0.0.0.0/0]
. - Первый порт из диапазона портов для трафика в параметре
additionRuleSpecs[].ports.fromPort
—0
. - Последний порт из диапазона портов для трафика в параметре
additionRuleSpecs[].ports.toPort
—65535
.
- Направление трафика —
Создайте виртуальную машину с MongoDB
Рекомендуем использовать ВМ в минимальной конфигурации.
-
На странице каталога в консоли управления
нажмите Создать ресурс и выберитеВиртуальная машина
. -
Выберите вариант Расширенная настройка.
-
В блоке Образ загрузочного диска:
-
Перейдите на вкладку Container Solution и нажмите Настроить.
-
В открывшемся окне перейдите на вкладку Docker-compose и укажите спецификацию Docker-контейнера:
version: '3.1' services: mongo: image: mongo restart: always environment: MONGO_INITDB_ROOT_USERNAME: mongo_db_user MONGO_INITDB_ROOT_PASSWORD: <пароль> ports: - 27017:27017
В значении параметра
MONGO_INITDB_ROOT_PASSWORD
задайте пароль, который будет использоваться для доступа к БД. Для создания пароля можно воспользоваться генератором паролей . Сохраните пароль, он понадобится вам на следующих шагах. -
Нажмите Применить.
-
-
В блоке Расположение выберите зону доступности, в которой будет создана ВМ. Если вы не знаете, какая зона доступности вам нужна, оставьте выбранную по умолчанию.
-
В блоке Сетевые настройки:
- В поле Подсеть выберите подсеть
mongo-express-subnet-ru-central1-b
. - В поле Публичный IP-адрес выберите
Автоматически
.
- В поле Подсеть выберите подсеть
-
В блоке Доступ выберите вариант SSH-ключ и укажите данные для доступа на ВМ:
- В поле Логин введите имя пользователя. Не используйте имя
root
или другие имена, зарезервированные ОС. Для выполнения операций, требующих прав суперпользователя, используйте командуsudo
. -
В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.
Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:
-
Нажмите кнопку Добавить ключ.
-
Задайте имя SSH-ключа.
-
Выберите вариант:
-
Ввести вручную
— вставьте содержимое открытого SSH-ключа. Пару SSH-ключей необходимо создать самостоятельно. -
Загрузить из файла
— загрузите открытую часть SSH-ключа. Пару SSH-ключей необходимо создать самостоятельно. -
Сгенерировать ключ
— автоматическое создание пары SSH-ключей.При добавлении сгенерированного SSH-ключа будет создан и загружен архив с парой ключей. В ОС на базе Linux или macOS распакуйте архив в папку
/home/<имя_пользователя>/.ssh
. В ОС Windows распакуйте архив в папкуC:\Users\<имя_пользователя>/.ssh
. Дополнительно вводить открытый ключ в консоли управления не требуется.
-
-
Нажмите кнопку Добавить.
SSH-ключ будет добавлен в ваш профиль пользователя организации. Если в организации отключена возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя внутри создаваемого ресурса.
-
- В поле Логин введите имя пользователя. Не используйте имя
-
В блоке Общая информация задайте имя ВМ:
mongo-vm
. -
Нажмите Создать ВМ.
Дождитесь перехода ВМ в статус Running
и сохраните ее публичный IP-адрес — он потребуется для подключения к БД.
-
Подготовьте пару ключей (открытый и закрытый) для SSH-доступа на ВМ.
-
Подготовьте файл спецификации Docker-контейнера
docker-spec.yaml
:version: '3.1' services: mongo: image: mongo restart: always environment: MONGO_INITDB_ROOT_USERNAME: mongo_db_user MONGO_INITDB_ROOT_PASSWORD: <пароль> ports: - 27017:27017
В значении параметра
MONGO_INITDB_ROOT_PASSWORD
задайте пароль, который будет использоваться для доступа к БД. Для создания пароля можно воспользоваться генератором паролей . Сохраните пароль, он понадобится вам на следующих шагах. -
Выполните команду:
yc compute instance create-with-container \ --docker-compose-file docker-spec.yaml \ --name mongo-vm \ --zone ru-central1-b \ --network-interface subnet-name=mongo-express-subnet-ru-central1-b,nat-ip-version=ipv4 \ --ssh-key <путь_к_файлу_открытого_ключа> \ --create-boot-disk size=30
Где:
-
--docker-compose-file
— путь к файлу спецификации Docker-контейнера. -
--name
— имя ВМ. -
--zone
— зона доступности. -
--network-interface
— сетевые настройки ВМ. -
--ssh-key
— путь к файлу открытого ключа SSH, например./ssh-key.pub
. Имя пользователя по умолчанию для доступа по SSH —yc-user
. -
--create-boot-disk size
— размер загрузочного диска. Должен быть не менее 30 ГБ.
Результат:
id: epde18u4mahl******** folder_id: b1g7gvsi89m3******** created_at: "2023-02-08T10:34:06.601Z" name: mongo-vm ...
-
Создайте секрет Yandex Lockbox
В секрете Yandex Lockbox в зашифрованном виде будут храниться данные для аутентификации.
-
В консоли управления
в списке сервисов выберите Lockbox. -
Нажмите Создать секрет.
-
В поле Имя введите имя секрета —
mongodb-creds
. -
В блоке Версия:
- В поле Ключ введите
login
. - В поле Значение введите логин пользователя БД —
mongo_db_user
.
- В поле Ключ введите
-
Нажмите Добавить ключ/значение и укажите второй секрет:
- В поле Ключ введите
password
. - В поле Значение введите пароль для доступа к БД — значение
MONGO_INITDB_ROOT_PASSWORD
из спецификации Docker-контейнера.
- В поле Ключ введите
-
Нажмите Создать.
Создайте секрет mongodb-creds
:
yc lockbox secret create \
--name mongodb-creds \
--payload "[{'key': 'login', 'text_value': 'mongo_db_user'},{'key': 'password', 'text_value': '<пароль>'}]"
Где:
--name
— имя секрета.--payload
— содержимое секрета в виде массива YAML или JSON.<пароль>
— значениеMONGO_INITDB_ROOT_PASSWORD
из спецификации Docker-контейнера.
Результат:
id: e6q6nbjfu9m2********
folder_id: b1qt6g8ht345********
created_at: "2023-02-08T10:34:06.601Z"
name: mongodb-creds
status: ACTIVE
current_version:
id: e6q0s9airqca********
secret_id: e6q6nbjfu9m2********
created_at: "2023-02-08T10:34:06.601Z"
status: ACTIVE
payload_entry_keys:
- login
- password
Чтобы создать секрет, воспользуйтесь методом REST API create для ресурса Secret или вызовом gRPC API SecretService/Create.
Создайте реестр Container Registry
В реестре Container Registry будет храниться Docker-образ приложения mongo-express
.
- В консоли управления
в списке сервисов выберите Container Registry. - Нажмите Создать реестр.
- Задайте имя реестра
app-registry
. - Нажмите Создать реестр.
Создайте реестр app-registry
:
yc container registry create --name app-registry
Результат:
id: crpd50616s9a********
folder_id: b1g88tflru0e********
name: app-registry
status: ACTIVE
created_at: "2023-02-08T10:34:06.601Z"
Чтобы создать реестр, воспользуйтесь методом REST API create для ресурса Registry или вызовом gRPC API RegistryService/CreateRegistryRequest.
Загрузите Docker-образ в реестр
-
Зарегистрируйтесь на Docker Hub
. -
Установите Docker:
-
Скачайте
образmongo-express
:docker pull mongo-express
Результат выполнения команды:
Using default tag: latest latest: Pulling from library/mongo-express 6a428f9f83b0: Pull complete ... e60224d64a04: Pull complete Digest: sha256:dcfcf89bf91238ff129469a5a94523b3025913dcc41597d72d4d5f4a******** Status: Downloaded newer image for mongo-express:latest docker.io/library/mongo-express:latest
-
Аутентифицируйтесь в Container Registry с помощью Docker Credential helper:
CLI-
Сконфигурируйте Docker для использования
docker-credential-yc
:yc container registry configure-docker
Результат:
Credential helper is configured in '/home/<user>/.docker/config.json'
Настройки сохраняются в профиле текущего пользователя.
-
Проверьте, что Docker сконфигурирован — в конфигурационном файле
${HOME}/.docker/config.json
должна появиться строка:"cr.yandex": "yc"
Docker готов к использованию.
-
-
Загрузите Docker-образ в реестр:
CLI-
Присвойте загруженному образу
mongo-express
URL видаcr.yandex/<идентификатор_реестра>/<имя_Docker-образа>:<тег>
:docker tag mongo-express \ cr.yandex/<идентификатор_реестра>/mongo-express:mongo-tag
-
Загрузите образ
mongo-express
в реестр:docker push cr.yandex/<идентификатор_реестра>/mongo-express:mongo-tag
Результат:
\The push refers to repository [cr.yandex/crpbr3qaut47********/mongo-express] 7c550ce9591d: Pushed ... aedc3bda2944: Pushed mongo-tag: digest: sha256:c641... size: 1993
-
Создайте контейнер Serverless Containers
Чтобы запустить приложение в Yandex Cloud, создайте контейнер и его ревизию.
-
В консоли управления
в списке сервисов выберите сервис Serverless Containers. -
Нажмите Создать контейнер.
-
Введите имя контейнера
mongo-express-container
. -
Нажмите Создать.
-
Перейдите на вкладку Редактор.
-
В блоке Ресурсы укажите объем RAM —
1024 МБ
. -
В блоке Параметры образа:
-
В поле URL образа укажите URL Docker-образа, загруженного ранее.
-
В поле Переменные окружения добавьте переменные:
ME_CONFIG_BASICAUTH_USERNAME
— оставьте значение пустым.ME_CONFIG_BASICAUTH_PASSWORD
— оставьте значение пустым.VCAP_APP_PORT
— укажите порт8080
.ME_CONFIG_MONGODB_SERVER
— укажите публичный адрес ВМ, полученный ранее.
-
В поле Секреты Lockbox укажите секреты:
ME_CONFIG_MONGODB_AUTH_USERNAME
— укажите секрет с ключомlogin
.ME_CONFIG_MONGODB_AUTH_PASSWORD
— укажите секрет с ключомpassword
.
-
-
В блоке Настройки:
- В поле Сервисный аккаунт укажите
mongo-express
. - В поле Таймаут укажите
15
.
- В поле Сервисный аккаунт укажите
-
-
Нажмите Создать ревизию.
-
Создайте контейнер:
yc serverless container create --name mongo-express-container
Результат:
id: bba3fva6ka5g******** folder_id: b1gqvft7kjk3******** created_at: "2023-02-08T10:34:06.601Z" name: mongo-express-container url: https://bba3fva6ka5g********.containers.yandexcloud.net/ status: ACTIVE
-
Создайте ревизию контейнера:
yc serverless container revision deploy \ --container-name mongo-express-container \ --cores 1 \ --memory 1GB \ --image cr.yandex/<идентификатор_реестра>/mongo-express:mongo-tag \ --environment ME_CONFIG_BASICAUTH=false \ --environment VCAP_APP_PORT=8080 \ --environment ME_CONFIG_MONGODB_SERVER=<публичный_адрес_ВМ> \ --secret environment-variable=ME_CONFIG_MONGODB_AUTH_USERNAME,key=login,id=<идентификатор_секрета> \ --secret environment-variable=ME_CONFIG_MONGODB_AUTH_PASSWORD,key=password,id=<идентификатор_секрета> \ --service-account-id <идентификатор_сервисного_аккаунта_mongo-express> \ --network-id <идентификатор_сети> \ --execution-timeout 15s \ --concurrency 1
Где:
-
--image
— URL Docker-образаmongo-express
, загруженного ранее. -
--environment
— переменные окружения:ME_CONFIG_BASICAUTH
— укажите значениеfalse
.VCAP_APP_PORT
— укажите порт8080
.ME_CONFIG_MONGODB_SERVER
— укажите публичный адрес ВМ, полученный ранее.
-
--secret environment-variable
— секретыME_CONFIG_MONGODB_AUTH_USERNAME
иME_CONFIG_MONGODB_AUTH_PASSWORD
, созданные ранее. -
--service-account-id
— идентификатор сервисного аккаунтаmongo-express
, созданного ранее. -
--network-id
— идентификатор сетиmongo-express-network
.
Результат:
id: bbas0ktemln9******** container_id: bbai45hrl5et******** created_at: "2025-06-14T10:18:06.791Z" image: image_url: cr.yandex/crpbr3qaut47********/mongo-express:mongo-tag image_digest: sha256:c641.... environment: ME_CONFIG_BASICAUTH: "false" ME_CONFIG_MONGODB_SERVER: 89.169.***.*** VCAP_APP_PORT: "8080" resources: memory: "1073741824" cores: "1" core_fraction: "100" execution_timeout: 15s concurrency: "1" service_account_id: ajeldi88vl73******** status: ACTIVE secrets: - id: e6qfi832v2j8******** version_id: e6qj9a9oifme******** key: login environment_variable: ME_CONFIG_MONGODB_AUTH_USERNAME - id: e6qfi832v2j8******** version_id: e6qj9a9oifme******** key: password environment_variable: ME_CONFIG_MONGODB_AUTH_PASSWORD log_options: folder_id: b1g681qpemb4******** runtime: http: {}
-
- Чтобы создать контейнер, воспользуйтесь методом REST API create для ресурса Container или вызовом gRPC API ContainerService/Create.
- Чтобы создать ревизию контейнера, воспользуйтесь методом REST API deployRevision для ресурса Container или вызовом gRPC API ContainerService/DeployRevision.
Создайте API-шлюз API Gateway
Создайте API-шлюз с расширением x-yc-apigateway-integration:serverless_containers
.
-
В консоли управления
в списке сервисов выберите API Gateway. -
Нажмите Создать API-шлюз.
-
В поле Имя введите название API-шлюза —
mongo-express-gw
. -
В блок Спецификация добавьте спецификацию:
openapi: 3.0.0 info: title: Sample API version: 1.0.0 paths: /{proxy+}: x-yc-apigateway-any-method: x-yc-apigateway-integration: type: serverless_containers container_id: <идентификатор_контейнера> service_account_id: <идентификатор_сервисного_аккаунта> parameters: - explode: false in: path name: proxy required: false schema: default: '-' type: string style: simple
Где:
container_id
— идентификатор контейнераmongo-express-container
.service_account_id
— идентификатор сервисного аккаунтаmongo-express
.
-
Нажмите Создать.
-
Откройте созданный API-шлюз и скопируйте ссылку из поля Служебный домен.
-
Подготовьте файл спецификации API по стандарту OpenAPI 3.0
.Спецификация
openapi: 3.0.0 info: title: Sample API version: 1.0.0 paths: /{proxy+}: x-yc-apigateway-any-method: x-yc-apigateway-integration: type: serverless_containers container_id: <идентификатор_контейнера> service_account_id: <идентификатор_сервисного_аккаунта> parameters: - explode: false in: path name: proxy required: false schema: default: '-' type: string style: simple
Где:
container_id
— идентификатор контейнераmongo-express-container
.service_account_id
— идентификатор сервисного аккаунтаmongo-express
.
-
Укажите параметры и создайте API-шлюз с помощью команды:
yc serverless api-gateway create \ --name mongo-express-gw \ --spec=<путь_к_файлу_спецификации>
Результат:
id: d5d63uh1h26g******** folder_id: b1g681qpemb4******** created_at: "2025-06-14T10:23:19.682Z" name: mongo-express-gw status: ACTIVE domain: d5d63uh1h26g********.********.apigw.yandexcloud.net connectivity: {} log_options: folder_id: b1g681qpemb4******** execution_timeout: 300s
Сохраните ссылку, указанную в поле
domain
.
Чтобы создать API-шлюз, воспользуйтесь методом REST API create для ресурса ApiGateway или вызовом gRPC API ApiGatewayService/Create.
Проверьте работу приложения
Перейдите по ссылке вида d5d63uh1h26g********.********.apigw.yandexcloud.net
, полученной на предыдущем шаге. Откроется административная панель MongoDB.
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы: