Ta strona zawiera opis wdrażania generatora konfiguracji danych (MCG).
Dostęp do kodu źródłowego
Kod źródłowy MCG jest hostowany na GitHubie w repozytorium aaos-sdv-telemetry-mcg. MCG możesz uruchomić lokalnie na potrzeby programowania i testowania lub wdrożyć w środowisku chmurowym, aby umożliwić dostęp zespołowi.
Uruchamianie lokalne
Aby uruchomić MCG z katalogu źródłowego na potrzeby lokalnego programowania i testowania, użyj Bazela. Bazel musi być zainstalowany. Podczas uruchamiania lokalnego musisz włączyć buforowanie w pamięci, ustawiając MCG_LOCALCACHE=true. Umożliwia to przechowywanie katalogów sygnałów
pojazdu. Aby utworzyć i uruchomić usługę lokalnie, użyj tych poleceń z katalogu źródłowego:
# 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
Wdrażanie w Google Cloud
Baza kodu MCG zawiera pliki Terraform i Google Cloud Build, które umożliwiają wdrożenie MCG w Google Cloud jako usługi Google Cloud Run. W kolejnych sekcjach znajdziesz instrukcje dotyczące procesu wdrażania, który obejmuje utworzenie pliku zmiennych, wdrożenie infrastruktury, utworzenie i wdrożenie aplikacji oraz przyznanie dostępu i weryfikację wdrożenia.
Cloud Run to platforma bezserwerowa, która oszczędza zasoby, uruchamiając kontenery tylko wtedy, gdy przetwarza żądania, a nie utrzymując serwera aktywnego przez całą dobę. Oznacza to, że dane w pamięci są tracone, gdy instancje kontenerów są wyłączane między żądaniami. Dlatego do zapewnienia pamięci trwałej danych katalogu w przypadku wywołań usługi wymagany jest Redis. To podejście zapewnia skalowalne wdrożenie odpowiednie do użytku zespołowego lub produkcyjnego.
Wymagania wstępne
Zanim rozpoczniesz wdrażanie w Google Cloud, sprawdź, czy spełniasz te wymagania wstępne:
- Projekt Google Cloud z włączonym rozliczeniem i wystarczającymi uprawnieniami do udostępniania zasobów i ról IAM.
- Zainstalowany Terraform (wersja 1.0.0 lub nowsza).
- Zainstalowany i uwierzytelniony Google Cloud CLI (
gcloud).
Struktura pliku
Wdrażanie w Google Cloud obejmuje uruchamianie poleceń Terraform z podkatalogu infrastructure/ i poleceń Cloud Build z katalogu głównego repozytorium. Główne pliki i katalogi, z którymi będziesz pracować:
repository-root/
├── cloudbuild.yaml
└── infrastructure/
└── terraform.tfvars <-- you create this file
Tworzenie pliku zmiennych Terraform
W katalogu infrastructure/ utwórz plik o nazwie terraform.tfvars, aby
podać wartości zmiennych zdefiniowanych w variables.tf i dostosować
wdrożenie. W tym pliku musisz zdefiniować wartości project_id i region. Wszystkie inne zmienne są opcjonalne. Dodaj do terraform.tfvars te informacje:
project_id = "<var label="Google Cloud project ID">your-gcp-project-id</var>"
region = "<var label="Google Cloud region">your-gcp-region</var>" # For example, us-central1 or europe-west1
Wszystkie dostępne zmienne i ich wartości domyślne znajdziesz w variables.tf. Wartości domyślne możesz zastąpić, ustawiając je w terraform.tfvars.
Wdrażanie infrastruktury
Po utworzeniu terraform.tfvars możesz zainicjować i zastosować konfigurację Terraform. Ten krok obejmuje udostępnienie wszystkich wymaganych zasobów Google Cloud,
w tym Artifact Registry, Redis i Cloud Run. Po zakończeniu Terraform utworzy usługę Google Cloud Run, która uruchamia zastępczy obraz kontenera.
Ten krok może potrwać kilka minut.
# Run from the infrastructure/ directory
terraform init
terraform apply
Gdy pojawi się prośba terraform apply, sprawdź plan i wpisz yes, aby potwierdzić.
Tworzenie i wdrażanie aplikacji MCG
Po udostępnieniu infrastruktury następnym krokiem jest utworzenie kodu źródłowego MCG i wdrożenie go w Google Cloud Run. W tym celu prześlij kod źródłowy do Google Cloud Build, który utworzy obraz Dockera, przeniesie go do Artifact Registry i zaktualizuje usługę Google Cloud Run, aby używała nowego obrazu.
Google Cloud Build używa zmiennej zastępczej COMMIT_SHA do oznaczania utworzonego obrazu. Możesz użyć numeru wersji (np. v1.0.0) lub SHA zatwierdzenia w repozytorium. Oznaczanie ułatwia odróżnianie wersji w Artifact Registry, zarządzanie wdrożeniami i w razie potrzeby wycofanie zmian do poprzedniej wersji.
Aby uruchomić tworzenie i wdrażanie, uruchom to polecenie 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)
To polecenie wykonuje początkowe wdrożenie kodu aplikacji. Aby wdrożyć aktualizacje kodu źródłowego MCG, uruchom to polecenie ponownie.
Przyznawanie dostępu i weryfikowanie wdrożenia
Aby umożliwić użytkownikom lub kontom usługi wywoływanie interfejsu MCG API, musisz przyznać im rolę IAM
Wywołujący Cloud Run (roles/run.invoker):
gcloud run services add-iam-policy-binding mcg-service \
--member=<var label="member type, e.g. user or serviceAccount">MEMBER_TYPE</var>:<var label="email address of member">EMAIL_ADDRESS</var> \
--role=roles/run.invoker \
--region=<var label="Google Cloud region">your-gcp-region</var>
Adres URL usługi możesz uzyskać, uruchamiając to polecenie. Adres URL pozostaje stabilny we wszystkich wdrożeniach.
SERVICE_URL=$(gcloud run services describe mcg-service \
--region <var label="Google Cloud region">your-gcp-region</var> \
--format='value(status.url)')
Po przyznaniu uprawnień sprawdź, czy usługa działa i jest dostępna, wywołując jej punkt końcowy /health. Ponieważ usługi Google Cloud Run wymagają uwierzytelnienia, podczas wywoływania punktu końcowego musisz uwzględnić w nagłówku żądania token autoryzacji z gcloud:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
$SERVICE_URL/health
Jeśli usługa działa, to polecenie zwraca OK. Możesz teraz wywoływać dowolne
punkty końcowe interfejsu API zgodnie z opisem w sekcji Wywoływanie interfejsu API.