Создание демонстрационного продукта Cloud Apps
В этом руководстве вы создадите простой продукт Cloud Apps, состоящий из кластера Yandex Managed Service for PostgreSQL и виртуальной машины Yandex Compute Cloud с доступом к кластеру, установите приложение (экземпляр продукта) и протестируете его работу.
Перед началом работы
-
Загрузите образ диска в Yandex Compute Cloud. Для примера можно использовать образ Ubuntu
. Во время установки приложения Cloud Apps из этого образа будет автоматически создаваться виртуальная машина.Совет
Для демонстрационного приложения вы можете создать ВМ из публичного образа Cloud Marketplace, например Ubuntu 22.04 LTS, и создать образ из диска этой ВМ. См. также Начало работы с Packer.
-
Заполните анкету на странице Yandex Cloud Marketplace.
-
Зарегистрируйте аккаунт.
-
Создайте продукт типа Cloud Apps.
Создайте конфигурацию
- Перейдите в продукт, для которого хотите создать конфигурацию.
- Перейдите на вкладку Конфигурации.
- Нажмите
Создать конфигурацию. - На вкладке С нуля:
- Укажите:
- каталог, в который сохранится конфигурация. У вас должна быть роль
cloudapps.editorна этот каталог. - имя конфигурации, например
demo.
- каталог, в который сохранится конфигурация. У вас должна быть роль
- Нажмите кнопку Создать. На вкладке Конфигурации появится конфигурация
demoв статусеЧерновик.
- Укажите:
Настройте конфигурацию
Добавьте артефакт
- Выберите конфигурацию
demo. - На вкладке Выбор артефактов нажмите Добавить артефакт.
- Выберите Тип артефакта —
Образ диска. - Укажите Название, например
ubuntu. - Выберите образ диска, созданный на шаге Перед началом работы.
- Нажмите Добавить.
Создайте форму
-
Перейдите на вкладку Параметры запуска.
-
Нажимая кнопку
Добавить поле, последовательно добавьте следующие поля:-
Поле Имя пользователя БД:
Параметр Значение Описание Тип переменной СтрокаВид поля BaseПростая строка. Имя переменной pg_usernameИмя переменной можно использовать при создании ресурсов для того, чтобы получить значение, введенное пользователем в поле. Обязательное поле Выбрано Поле обязательно для заполнения. Паттерн ^[a-z][a-z0-9]*$Регулярное выражение, которому должно соответствовать имя пользователя БД. Ошибка паттерна Wrong nameТекст ошибки, которую увидит пользователь, если введенное имя пользователя БД не будет соответствовать указанному паттерну. Заголовок поля (RU) Имя пользователя БДИмя поля, которое увидит пользователь в русскоязычном интерфейсе. Заголовок поля (EN) DB usernameИмя поля, которое увидит пользователь в англоязычном интерфейсе. -
Поле Секрет с паролем пользователя БД:
Параметр Значение Описание Тип переменной СтрокаВид поля Lockbox SecretСекрет Yandex Lockbox, в котором хранится пароль пользователя БД. Имя переменной pg_password_secretИмя переменной можно использовать при создании ресурсов для того, чтобы получить значение, введенное пользователем в поле. Обязательное поле Выбрано Поле обязательно для заполнения. Заголовок поля (RU) Секрет с паролем пользователя БДИмя поля, которое увидит пользователь в русскоязычном интерфейсе. Заголовок поля (EN) Secret with DB user passwordИмя поля, которое увидит пользователь в англоязычном интерфейсе. -
Поле Облачная сеть:
Параметр Значение Описание Тип переменной СтрокаВид поля VPC networkОблачная сеть Yandex Virtual Private Cloud, в которой будет развернуто приложение Cloud Apps. Имя переменной vpc_networkИмя переменной можно использовать при создании ресурсов для того, чтобы получить значение, введенное пользователем в поле. Обязательное поле Выбрано Поле обязательно для заполнения. Заголовок поля (RU) Облачная сетьИмя поля, которое увидит пользователь в русскоязычном интерфейсе. Заголовок поля (EN) Cloud networkИмя поля, которое увидит пользователь в англоязычном интерфейсе. -
Поле Подсеть 1:
Параметр Значение Описание Тип переменной СтрокаВид поля VPC subnetПодсеть Yandex Virtual Private Cloud. Имя переменной vpc_subnet_0Имя переменной можно использовать при создании ресурсов для того, чтобы получить значение, введенное пользователем в поле. Обязательное поле Выбрано Поле обязательно для заполнения. Заголовок поля (RU) Подсеть 1Имя поля, которое увидит пользователь в русскоязычном интерфейсе. Заголовок поля (EN) Subnet 1Имя поля, которое увидит пользователь в англоязычном интерфейсе. -
Поле Подсеть 2:
Параметр Значение Описание Тип переменной СтрокаВид поля VPC subnetПодсеть Yandex Virtual Private Cloud. Имя переменной vpc_subnet_1Имя переменной можно использовать при создании ресурсов для того, чтобы получить значение, введенное пользователем в поле. Обязательное поле Выбрано Поле обязательно для заполнения. Заголовок поля (RU) Подсеть 2Имя поля, которое увидит пользователь в русскоязычном интерфейсе. Заголовок поля (EN) Subnet 2Имя поля, которое увидит пользователь в англоязычном интерфейсе.
-
Добавьте ресурсы
-
Перейдите на вкладку Ресурсы.
-
Нажимая кнопку
Добавить ресурс, последовательно добавьте следующие ресурсы:Примечание
Ресурсы пользователя — это ресурсы, которые пользователь создает самостоятельно перед установкой приложения.
Новые ресурсы — это ресурсы, которые автоматически создаются в каталоге пользователя при установке приложения.
-
Ресурс пользователя→VPC облачная сеть:Параметр Значение Описание Имя vpc-networkЧтобы изменить имя, нажмите рядом с именем облачной сети, которое было сгенерировано автоматически. Имя ресурса должно быть уникальным в рамках конфигурации. Пользователь увидит его при установке приложения.Network id Поле ввода→vpc_networkИдентификатор облачной сети будет получен из поля Облачная сеть, пользователь укажет облачную сеть при заполнении формы. -
Ресурс пользователя→VPC подсеть:Подсеть 1
Параметр Значение Описание Имя vpc-subnet-0Чтобы изменить имя, нажмите рядом с именем подсети, которое было сгенерировано автоматически. Имя ресурса должно быть уникальным в рамках конфигурации. Пользователь увидит его при установке приложения.Subnet id Поле ввода→vpc_subnet_0Идентификатор подсети будет получен из поля Подсеть 1, пользователь укажет подсеть при заполнении формы. Подсеть 2
Параметр Значение Описание Имя vpc-subnet-1Чтобы изменить имя, нажмите рядом с именем подсети, которое было сгенерировано автоматически. Имя ресурса должно быть уникальным в рамках конфигурации. Пользователь увидит его при установке приложения.Subnet id Поле ввода→vpc_subnet_1Идентификатор облачной сети будет получен из поля Подсеть 2, пользователь укажет подсеть при заполнении формы. -
Ресурс пользователя→Секрет Lockbox:Параметр Значение Описание Имя lockbox-secret-with-db-passwordЧтобы изменить имя, нажмите рядом с именем секрета Yandex Lockbox, которое было сгенерировано автоматически. Имя ресурса должно быть уникальным в рамках конфигурации. Пользователь увидит его при установке приложения.Secret id Поле ввода→pg_password_secretИдентификатор секрета Lockbox будет получен из поля Секрет с паролем пользователя БД, пользователь укажет секрет при заполнении формы. -
Новый ресурс→Сервисный аккаунт:Параметр Значение Описание Имя service-accountЧтобы изменить имя, нажмите рядом с именем сервисного аккаунта, которое было сгенерировано автоматически. Имя ресурса должно быть уникальным в рамках конфигурации. Пользователь увидит его при установке приложения.Folder id Атрибут приложения→ID каталогаСервисный аккаунт, от имени которого будет развертываться приложение, автоматически создастся в том же каталоге, в котором пользователь будет устанавливать приложение. Name Значение→my-best-appИмя автоматически созданного сервисного аккаунта будет my-best-app. -
Новый ресурс→Пользователь каталога:Параметр Значение Описание Имя lockbox-payload-viewerЧтобы изменить имя, нажмите рядом с именем пользователя каталога, которое было сгенерировано автоматически. Имя ресурса должно быть уникальным в рамках конфигурации. Пользователь увидит его при установке приложения.Folder id Атрибут приложения→ID каталогаУказанные роли будут назначены сервисному аккаунту на каталог, в котором пользователь будет устанавливать приложение. Member Значение→Сервисный аккаунт→Референс→service-account→idУказанные роли будут назначены сервисному аккаунту my-best-app.Role Значение→lockbox.payloadViewerСервисному аккаунту будет назначена роль lockbox.payloadViewer. Она нужна ему для доступа к секрету Lockbox, в котором хранится пароль пользователя БД. -
Новый ресурс→Кластер PostgreSQL:Параметр Значение Описание Имя postgres-clusterЧтобы изменить имя, нажмите рядом с именем кластера Yandex Managed Service for PostgreSQL, которое было сгенерировано автоматически. Имя ресурса должно быть уникальным в рамках конфигурации. Пользователь увидит его при установке приложения.Environment Значение→PRODUCTIONОкружение, в котором нужно создать кластер. PRODUCTION-окружение используется для стабильных версий приложений. Folder id Атрибут приложения→ID каталогаКластер автоматически создастся в том же каталоге, в котором пользователь будет устанавливать приложение. Name Значение→my-best-app-pg-clusterИмя созданного кластера будет my-best-app-pg-cluster.Network id Ресурс→vpc-networkКластер автоматически создастся в облачной сети vpc-network.Config Значение→Ключ: Version→Значение→16Версия СУБД. Config Значение→Ключ: Resources→Значение→Ключ: Disk size→Значение→10Размер диска. Config Значение→Ключ: Resources→Значение→Ключ: Disk type id→Значение→network-ssdТип диска. Config Значение→Ключ: Resources→Значение→Ключ: Resource preset id→Значение→c3-c2-m4Класс хоста. Host Значение→Элемент 1→Значение→Ключ: Subnet id→Ресурс→vpc-subnet-0Кластер будет состоять из двух хостов. Первый хост будет расположен в подсети vpc-subnet-0.Host Значение→Элемент 1→Значение→Ключ: Zone→Референс→vpc-subnet-0→zoneПервый хост будет расположен в той же зоне доступности, что и подсеть vpc-subnet-0.Host Значение→Элемент 2→Значение→Ключ: Subnet id→Ресурс→vpc-subnet-1Кластер будет состоять из двух хостов. Второй хост будет расположен в подсети vpc-subnet-1.Host Значение→Элемент 2→Значение→Ключ: Zone→Референс→vpc-subnet-1→zoneВторой хост будет расположен в той же зоне доступности, что и подсеть vpc-subnet-1. -
Новый ресурс→Пользователь PostgreSQL:Параметр Значение Описание Имя postgresql-userЧтобы изменить имя, нажмите рядом с именем пользователя PostgreSQL, которое было сгенерировано автоматически. Имя ресурса должно быть уникальным в рамках конфигурации. Пользователь увидит его при установке приложения.Cluster id Ресурс→postgres-clusterКластер, к которому пользователь pg_usernameбудет иметь доступ.Name Поле ввода→pg_usernameИмя пользователя будет получено из поля Имя пользователя БД, пользователь укажет его при заполнении формы. Password Референс→lockbox-secret-with-db-password→entries[0].text_valueДля доступа к кластеру пользователь pg_usernameбудет использовать пароль, полученный из секрета Lockboxlockbox-secret-with-db-password. -
Новый ресурс→База данных PostgreSQL:Параметр Значение Описание Имя postgresql-dbЧтобы изменить имя, нажмите рядом с именем базы данных PostgreSQL, которое было сгенерировано автоматически. Имя ресурса должно быть уникальным в рамках конфигурации. Пользователь увидит его при установке приложения.Cluster id Ресурс→postgres-clusterКластер, в котором автоматически создастся база данных pg_username.Name Поле ввода→pg_usernameИмя базы данных будет получено из поля Имя пользователя БД, пользователь укажет его при заполнении формы. Имя пользователя БД и имя БД в демонстрационном примере совпадают. Owner Референс→postgresql-user→nameИмя владельца базы данных будет именем пользователя PostgreSQL postgresql-user. -
Новый ресурс→Виртуальная машина:Параметр Значение Описание Имя instanceЧтобы изменить имя, нажмите рядом с именем виртуальной машины, которое было сгенерировано автоматически. Имя ресурса должно быть уникальным в рамках конфигурации. Пользователь увидит его при установке приложения.Folder id Атрибут приложения→ID каталогаВиртуальная машина Compute Cloud автоматически создастся в том же каталоге, в котором пользователь будет устанавливать приложение. Boot disk Значение→Ключ: Initialize params→Значение→Ключ: Image id→Значение→ubuntuОбраз диска, из которого будет создана ВМ. Вы добавили его на шаге Добавьте артефакт. Boot disk Значение→Ключ: Initialize params→Значение→Ключ: Size→Значение→32Размер диска. Boot disk Значение→Ключ: Initialize params→Значение→Ключ: Type→Значение→network-ssdТип диска. Network interface Значение→Элемент 1→Значение→Ключ: Subnet id→Ресурс→vpc-subnet-0Виртуальная машина будет расположена в подсети vpc-subnet-0.Resources Значение→Ключ: Cores→Значение→2Количество vCPU. Resources Значение→Ключ: Memory→Значение→8Объем RAM. Metadata Значение→Элемент 1→Ключ: pg-host-0→Референс→postgres-cluster→host[0].fqdnПараметры подключения из ВМ к БД. Первый хост кластера. Metadata Значение→Элемент 2→Ключ: pg-host-1→Референс→postgres-cluster→host[1].fqdnПараметры подключения из ВМ к БД. Второй хост кластера. Metadata Значение→Элемент 3→Ключ: pg-username→Референс→postgres-user→nameПараметры подключения из ВМ к БД. Имя пользователя БД. Metadata Значение→Элемент 4→Ключ: pg-password-lockbox-secret-id→Поле ввода→postgres_password_secretПараметры подключения из ВМ к БД. Пароль пользователя БД. Platform id Значение→standard-v3Платформа, на которой будет работать ВМ. Service account id Ресурс→service-accountСервисный аккаунт, у которого есть права на чтение секрета Lockbox, в котором хранится пароль пользователя БД. Zone Референс→vpc-subnet-0→zoneВМ будет расположена в той же зоне доступности, что и подсеть vpc-subnet-0.Зависит от lockbox-payload-viewerВМ будет создана после ресурса lockbox-payload-viewer.
-
-
Нажмите Сохранить, чтобы сохранить конфигурацию.
Установите приложение
- В правом верхнем углу нажмите Запустить.
- Заполните форму.
- Нажмите Установить.
- Дождитесь, когда сервис проверит, какие ресурсы будут созданы, и нажмите Подтвердить.
- В списке приложений появится приложение
demo-appв статусеDeploying. Дождитесь, когда статус изменится наDeployed. Это может занять несколько минут. - Убедитесь, что все ресурсы созданы. Подключитесь к ВМ и проверьте, что с нее есть доступ к кластеру Yandex Managed Service for PostgreSQL.