На этой странице описано, как развернуть Metrics Configuration Generator (MCG).
Как получить доступ к исходному коду
Исходный код MCG размещен на GitHub в репозитории aaos-sdv-telemetry-mcg. Вы можете запустить MCG локально для разработки и тестирования или развернуть его в облачной среде для командного доступа.
Локальный запуск
Чтобы запустить MCG из каталога с исходными файлами для локальной разработки и тестирования, используйте Bazel. Bazel должен быть установлен. При локальном запуске необходимо включить кеш памяти, задав значение MCG_LOCALCACHE=true. Это позволяет хранить каталоги сигналов транспортных средств. Чтобы собрать и запустить сервис локально, выполните следующие команды из каталога с исходными файлами:
# Build and run on default port 8005
MCG_LOCALCACHE=true bazel run //:mcg
# Or, to change the port, use:
MCG_LOCALCACHE=true bazel run //:mcg -- --listen :9000
Развернуть в Google Cloud
База кода MCG включает файлы Terraform и Google Cloud Build для развертывания MCG в Google Cloud в качестве сервиса Google Cloud Run. В следующих разделах описан процесс развертывания, который включает создание файла переменных, развертывание инфраструктуры, создание и развертывание приложения, а также предоставление доступа и проверку развертывания.
Cloud Run – это бессерверная платформа, которая экономит ресурсы, запуская контейнеры только при обработке запросов, а не поддерживая активность сервера круглосуточно. Это означает, что данные в памяти теряются, когда экземпляры контейнера завершают работу между запросами. Поэтому для обеспечения постоянного хранения данных каталога между вызовами сервиса требуется Redis. Этот подход обеспечивает масштабируемое развертывание, подходящее для использования в команде или на производстве.
Требования
Прежде чем начать развертывание в Google Cloud, убедитесь, что у вас есть:
- Облачный проект Google Cloud с включенной оплатой и достаточными разрешениями для предоставления ресурсов и ролей IAM.
- Установлен Terraform (версии 1.0.0 или более поздней).
- Установленный и аутентифицированный Google Cloud CLI (
gcloud).
Структура файла
Чтобы выполнить развертывание в Google Cloud, запустите команды Terraform из подкаталога infrastructure/ и команды Cloud Build из корневого каталога репозитория. Основные файлы и каталоги, с которыми вы взаимодействуете:
repository-root/
├── cloudbuild.yaml
└── infrastructure/
└── terraform.tfvars <-- you create this file
Создайте файл переменных Terraform
В каталоге infrastructure/ создайте файл с названием terraform.tfvars, чтобы указать значения переменных, определенных в variables.tf, и настроить развертывание. В этом файле необходимо определить значения для project_id и region. Все остальные переменные необязательны. Добавить в чат-группу "terraform.tfvars":
project_id = "your-gcp-project-id" region = "your-gcp-region" # For example, us-central1 or europe-west1
Все доступные переменные и их значения по умолчанию приведены в variables.tf. Вы можете переопределить значения по умолчанию, задав их в terraform.tfvars.
Развертывание инфраструктуры
После создания файла terraform.tfvars вы можете инициализировать и применить конфигурацию Terraform. На этом шаге будут подготовлены все необходимые ресурсы Google Cloud, включая Artifact Registry, Redis и Cloud Run. После этого Terraform создаст сервис Google Cloud Run, который запустит образ контейнера-плейсхолдера.
Это может занять несколько минут.
# Run from the infrastructure/ directory
terraform init
terraform apply
Когда terraform apply предложит, проверьте план и введите yes, чтобы подтвердить его.
Как создать и развернуть приложение MCG
После подготовки инфраструктуры нужно создать исходный код MCG и развернуть его в Google Cloud Run. Для этого исходный код отправляется в Google Cloud Build, который создает образ Docker, отправляет его в Artifact Registry и обновляет сервис Google Cloud Run, чтобы использовать новый образ.
Google Cloud Build использует переменную подстановки COMMIT_SHA, чтобы пометить созданный образ. Вы можете использовать номер версии (например, v1.0.0) или SHA коммита вашего репозитория. Теги помогают различать версии в Artifact Registry, управлять развертываниями и при необходимости откатываться к предыдущей версии.
Чтобы запустить сборку и развертывание, выполните следующую команду gcloud:
# Run from the repository root
#
# The command tags the image with the Git commit SHA.
# To tag with a version number, replace '$(git rev-parse --short HEAD)' with the version number.
gcloud builds submit . \
--config=cloudbuild.yaml \
--substitutions=COMMIT_SHA=$(git rev-parse --short HEAD)
Эта команда выполняет начальное развертывание кода приложения. Чтобы развернуть обновления исходного кода MCG, выполните эту команду ещё раз.
Предоставьте доступ и проверьте развертывание
Чтобы пользователи или сервисные аккаунты могли вызывать MCG API, им нужно назначить роль IAM Cloud Run Invoker (roles/run.invoker).
gcloud run services add-iam-policy-binding mcg-service \ --member=MEMBER_TYPE:EMAIL_ADDRESS \ --role=roles/run.invoker \ --region=your-gcp-region
Чтобы получить URL сервиса, выполните следующую команду: URL остается неизменным при развертывании.
SERVICE_URL=$(gcloud run services describe mcg-service \ --region your-gcp-region \ --format='value(status.url)')
Предоставив разрешения, убедитесь, что сервис работает и доступен, вызвав его конечную точку /health. Поскольку сервисы Google Cloud Run требуют аутентификации, при вызове конечной точки необходимо включить в заголовок запроса токен авторизации из gcloud:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
$SERVICE_URL/health
Если сервис запущен, команда возвращает OK, и вы можете вызвать любую из конечных точек API, как описано в разделе Вызов API.