Antigravity ile Google Cloud'da Derleme ve Dağıtım

1. Giriş

fca14bb9f4bb74f4.png

Bu codelab'de, Google Cloud'da sunucusuz bir uygulama tasarlamak, oluşturmak ve dağıtmak için Google Antigravity'yi nasıl kullanacağınızı öğreneceksiniz. Google Cloud Storage'dan (GCS) dosyaları alan, Cloud Run ve Gemini kullanarak işleyen ve meta verilerini BigQuery'ye aktaran sunucusuz ve olaya dayalı bir belge ardışık düzeni oluşturacağız.

Neler öğreneceksiniz?

  • Mimari planlama ve tasarım için Antigravity'yi kullanma
  • Yapay zeka aracısı ile kod olarak altyapı (kabuk komut dosyaları) oluşturun.
  • Python tabanlı bir Cloud Run hizmeti oluşturup dağıtın.
  • Çok formatlı belge analizi için Vertex AI'da Gemini'ı entegre edin.
  • Antigravity'nin adım adım açıklamalı kılavuz yapısını kullanarak uçtan uca ardışık düzeni doğrulayın.

Gerekenler

  • Google Antigravity yüklü olmalıdır.
  • Faturalandırmanın etkin olduğu bir Google Cloud projesi.
  • gcloud CLI yüklü ve kimliği doğrulanmış olmalıdır.

2. Uygulamaya genel bakış

Antigravity kullanarak uygulamayı tasarlayıp uygulamaya geçmeden önce, kendimiz için oluşturmak istediğimiz uygulamayı ana hatlarıyla açıklayalım.

Google Cloud Storage'dan (GCS) dosyaları alan, Cloud Run ve Gemini kullanarak işleyen ve meta verilerini BigQuery'ye aktaran sunucusuz ve etkinliğe dayalı bir doküman ardışık düzeni oluşturmak istiyoruz.

Bu uygulama için üst düzey bir mimari şeması şu şekilde görünebilir:

3bd519cfab38258d.png

Bu bilgi kesin olmak zorunda değildir. Antigravity, ilerledikçe mimari ayrıntıları anlamamıza yardımcı olabilir. Ancak ne oluşturmak istediğiniz konusunda bir fikrinizin olması faydalıdır. Ne kadar çok ayrıntı sağlarsanız Antigravity'den mimari ve kod açısından o kadar iyi sonuçlar alırsınız.

3. Mimarinin planlanması

Antigravity ile mimari ayrıntılarını planlamaya başlamaya hazırız.

Antigravity, karmaşık sistemleri planlama konusunda uzmandır. Hemen kod yazmaya başlamak yerine, üst düzey mimariyi tanımlayarak başlayabiliriz. Antigravity'nin isteğimizi değerlendirmesine, bize ek sorular sormasına ve ardından planlama ve uygulama aşamasına geçmesine yardımcı olmak için özelliklerden birini kullanabiliriz.

Antigravity'yi başlattığınızı varsayarak bu codelab için yeni bir proje oluşturacağız.

Aşağıda gösterildiği gibi Projects laboratuvarının yanındaki yeni proje simgesini ve ardından New Project simgesini tıklayın:

949cd615a1ce8dc3.png

Bu işlemle, aşağıdaki resimde gösterildiği gibi Add Folder seçeneği gösterilir:

ee8ff88b71c10e9f.png

Projenize klasör eklemek için Klasör Ekle düğmesini tıklayın. Makinemde google-cloud-serverless-app klasörü oluşturdum ve bu klasörü projeye ekledim.

Bu işlem, google-cloud-serverless-app projesinde bir görüşme başlatır.

Ekranın sol alt kısmındaki ana ayarlar simgesini ⚙️ tıklayın ve projeye özel ayarlara gidin. google-cloud-serverless-app projesini görmüyorsanız tek bir görüşme yapıp Proje Ayarları'na geri dönmeniz yeterlidir.

Aşağıda gösterildiği gibi Agent Settings / Security Preset (Aracı Ayarları/Güvenlik Ön Ayarı) seçeneğini Default (Varsayılan) ve Agent Behaviour / Artifact Review Policy (Aracı Davranışı/Öğeleri İnceleme Politikası) seçeneğini Always Ask (Her Zaman Sor) olarak ayarlayın:

b28e175be64f4390.png

Bu sayede, temsilci planı uygulamadan önce her adımda planı inceleyip onaylayabilirsiniz.

İstem

Artık Antigravity'ye ilk istemimizi göndermeye hazırız. İsteğimizi değerlendirmek için eğik çizgi komutu /grill-me kullanacağız.

/grill-me yazın, ardından aşağıdaki istemi girip gönder düğmesini tıklayın:

/grill-me 

I want to build a serverless event-driven document processing pipeline on Google Cloud.
Architecture:
- Ingestion: Users upload files to a Cloud Storage bucket.
- Trigger: File uploads trigger a Pub/Sub message.
- Processor: A Python-based Cloud Run service receives the message, processes the file (simulated OCR), and extracts metadata.
- Storage: Stream the metadata (filename, date, tags, word_count) into a BigQuery dataset. 

/grill-me komutu, bilginiz dahilinde yanıtlamaya çalışabileceğiniz bir dizi ek soru sorar. Ayrıca Önerilen Yanıtlar da sunar. İsterseniz bu yanıtları kullanabilirsiniz.

/grill-me komutumun örnek bir çalıştırılması aşağıda gösterilmiştir:

How would you like the Cloud Run service to receive events from Cloud Storage and Pub/Sub?
(Recommended) Cloud Storage Pub/Sub Notification with a Pub/Sub Push Subscription (HTTP POST to Cloud Run)

How should access to the Cloud Run service endpoint be secured for Pub/Sub push requests?
Publicly accessible Cloud Run service without authentication (for prototyping/quick testing only)

How should the Python processor handle file inspection and the simulated OCR logic?
(Recommended) Download file from GCS: if plain text/utf-8, extract actual words and tags; if binary/image/PDF, simulate OCR processing (mock latency, generate synthetic text & tags, count words)

How should the processor write metadata to BigQuery and handle table/schema provisioning?
(Recommended) Use BigQuery Streaming Inserts (`insert_rows_json`) with auto-creation of the dataset and table if they do not exist

How should the Cloud Run service handle processing failures and retries from Pub/Sub?
(Recommended) Return HTTP 500 on transient errors for Pub/Sub automatic retry; return HTTP 200/204 on non-retryable errors (e.g., file not found, bad event format) to avoid poison pill loops

Which web framework would you prefer for the Python Cloud Run service?
Flask with Gunicorn: minimal, classic lightweight standard for GCP microservices

How would you like the cloud infrastructure (Bucket, Pub/Sub, Cloud Run, BigQuery) to be provisioned and deployed?
(Recommended) Provide both: automated `gcloud` CLI setup/deploy scripts for quick manual rollout AND Terraform manifests for reproducible IaC

How would you like to handle local testing and development before deploying to Google Cloud?
(Recommended) Include a local mock test suite and script (`test_local.py`) that can simulate Pub/Sub push envelopes and test processing with both mocked GCP clients and actual files

Antigravity'den şunları yapmasını istediğimi fark edin:

  • Kaynak sağlamak için basit bir gcloud CLI komut dosyası
  • Yerel Cloud Storage Pub/Sub bildirimleri + Cloud Run'a Pub/Sub Push aboneliği
  • Çerçeve için Flask'ı (Gunicorn ile) kullanın.
  • Canlı OCR verileri yerine veriler için yalnızca bir metin dosyasıyla yerel simülasyon kullanın.
  • BigQuery'ye satır eklemek için BigQuery table.insert_rows() işlevini kullanma
  • Kimliği doğrulanmamış Cloud Run dağıtımı

ve diğer önerilen seçenekler.

Uygulama planı ve görev listesi

Antigravity çalışmaya başlayacak ve Uygulama Planı oluşturacak. Aşağıdakine benzer bir mesaj göstererek yanıtı incelemenize sunar:

3cc503e352eee935.png

Sağ üstteki pencerede Yardımcı Bölme açma/kapatma düğmesini tıklayabilir ve oluşturulan yapay nesneleri (şu anda yalnızca Uygulama Planı) görüntüleyebilirsiniz.

883adedf0157a073.png

Bu planda şunlar belirtilir:

  • Altyapı: GCS paketi, Pub/Sub konusu, BigQuery veri kümesi.
  • İşlemci: Python/Flask uygulaması, Dockerfile, Requirements.
  • Entegrasyon: GCS Bildirimleri → Pub/Sub → Cloud Run.

Aşağıdakine benzer bir ifade görürsünüz. Makinenizdeki uygulama planının kısmi bir listesi aşağıda gösterilmektedir:

5fb0baef49bdb8b1.png

Dikkatlice okuyun. Bu, uygulama hakkında geri bildirimde bulunabileceğiniz bir fırsattır. Uygulama planının herhangi bir bölümünü tıklayıp yorum ekleyebilirsiniz. Bazı yorumlar ekledikten sonra, özellikle adlandırma, Google Cloud proje kimliği ve bölgeyle ilgili olmak üzere görmek istediğiniz tüm değişiklikleri incelemeye gönderdiğinizden emin olun.

Her şey yolunda göründüğünde Proceed düğmesini tıklayarak temsilciye uygulama planına devam etme izni verin.

4. Uygulamayı oluşturma

Plan onaylandıktan sonra Antigravity, temel hazırlık komut dosyalarından uygulama koduna kadar uygulama için gerekli dosyaları oluşturmaya başlar.

Antigravity bir klasör oluşturur ve proje için gerekli dosyaları oluşturmaya başlar. Yapıları kontrol ettiğinizde birkaç dosyanın (kaynak kodu, komut dosyaları vb.) oluşturulduğunu görürsünüz.

f6f4e4473fb2a8b3.png

Çalışmasını tamamladığında bunu belirtir ve inceleyebileceğiniz bir Walkthrough belgesi oluşturur. Örnek bir çıkış aşağıda gösterilmektedir:

752ebdb9767a82c9.png

Adım Adım Açıklamalı Kılavuz belgesinde, uygulananlar, oluşturulan komut dosyaları ve en önemlisi yapılan doğrulama ve onaylama işlemleri belirtilir. Doğrulama ve onaylamayı içeren, adım adım açıklama belgesinin kısmi çıktısı aşağıda gösterilmektedir:

3. Verification & Validation
Test Suite Execution
We ran the automated test suite using pytest:
bash
.venv/bin/pytest tests/ -v
tests/test_local.py::test_health_check PASSED                            [  9%]
tests/test_local.py::test_invalid_pubsub_envelope PASSED                 [ 18%]
tests/test_local.py::test_ignore_delete_events PASSED                    [ 27%]
tests/test_local.py::test_gcs_file_not_found PASSED                      [ 36%]
tests/test_local.py::test_successful_contract_processing PASSED          [ 45%]
tests/test_local.py::test_successful_pdf_ocr_processing PASSED           [ 54%]
tests/test_local.py::test_transient_bq_error_triggers_500_retry PASSED   [ 63%]
tests/test_processor.py::test_tag_extraction_filters_stopwords PASSED    [ 72%]
tests/test_processor.py::test_process_plain_text_document PASSED         [ 81%]
tests/test_processor.py::test_process_binary_pdf_simulated_ocr PASSED    [ 90%]
tests/test_processor.py::test_process_empty_text_document PASSED         [100%]
============================== 11 passed in 2.37s ==============================
Standalone End-to-End Simulation
We executed the standalone simulation script:
bash
.venv/bin/python tests/test_local.py
Sample Output:
=================================================================
Running Serverless Document Processing Local Simulation
=================================================================
[1] Health Check: Status=200, Payload={'service': 'document-processor', 'status': 'healthy'}
[2] Simulating GCS Event: Object Finalized 'sample_contract.txt' in 'finance-bucket'
   Response: Status=200, Body={'file_name': 'sample_contract.txt', 'ocr_status': 'EXTRACTED_TEXT', 'status': 'success', 'tags': ['provider', 'cloud', 'client', 'agreement', 'shall'], 'word_count': 181}
[3] Simulating GCS Event: Object Finalized 'sample_invoice.pdf' in 'invoices-bucket'
   Response: Status=200, Body={'file_name': 'sample_invoice.pdf', 'ocr_status': 'SIMULATED_OCR', 'status': 'success', 'tags': ['invoice', 'finance', 'billing', 'acme', 'pdf'], 'word_count': 62}
=================================================================
BigQuery Streamed Table Inspection (Mock Table)
=================================================================
Row #1:
 File:       sample_contract.txt (gs://finance-bucket)
 Status:     EXTRACTED_TEXT
 Words:      181
 Tags:       ['provider', 'cloud', 'client', 'agreement', 'shall']
 Processed:  2026-09-08T02:50:37.436225+00:00
Row #2:
 File:       sample_invoice.pdf (gs://invoices-bucket)
 Status:     SIMULATED_OCR
 Words:      62
 Tags:       ['invoice', 'finance', 'billing', 'acme', 'pdf']
 Processed:  2026-09-08T02:50:37.641931+00:00

Bu uygulamayı Google Cloud'a nasıl dağıtabileceğimiz konusunda Antigravity'den yardım alabilir miyiz? Aşağıda listelenenlerle ilgili tüm ayrıntılar geri döner. Özetle, Google Cloud SDK'nın bir Google Cloud projesi kurulumuyla birlikte yüklendiğinden emin olmamız isteniyor. Bu işlem tamamlandıktan sonra

1. adım: Gerekli GCP API'lerini etkinleştirin

Cloud Run, Pub/Sub, Cloud Storage, BigQuery ve Cloud Build API'lerini etkinleştirmek için setup_gcp.sh dosyasını çalıştırın: ./scripts/setup_gcp.sh

2. adım: Tüm işlem hattını dağıtın

deploy.sh koşu:

export GCP_PROJECT="<YOUR_PROJECT_ID>"
export GCP_REGION="us-central1"               # or your region
./scripts/deploy.sh

Bu komut dosyası arka planda şunları yapar:

  1. Google Cloud Build'i kullanarak container görüntüsünü oluşturur ve Container/Artifact Registry'ye aktarır.
  2. Hizmeti uygun ortam değişkenleriyle (GCP_PROJECT, BQ_DATASET_ID, BQ_TABLE_ID) Cloud Run'a dağıtır.
  3. Cloud Storage alım paketini (gs://<PROJECT_ID>-document-ingest) oluşturur.
  4. Pub/Sub konusunu (document-upload-events) oluşturur ve GCS'ye bu konuya yayın yapma izni verir.
  5. Pakette bir GCS bildirimi (OBJECT_FINALIZE) yapılandırır.
  6. Otomatik yeniden deneme geri yükleme aralığıyla Cloud Run hizmeti URL'sini hedefleyen bir Pub/Sub Push aboneliği oluşturur.

Ayrıca, ardışık düzenin nasıl test edileceği de önerilir.

test_pipeline.sh dosyasını çalıştırın: ./scripts/test_pipeline.sh

Bu komut, samples/sample_contract.txt ve samples/sample_invoice.pdf dosyalarını paketinize yükler, işlenmeyi bekler ve çıkarılan meta verileri, kelime sayısını ve etiketleri gösteren bir BigQuery SQL sorgusu çalıştırır.

5. Uygulamayı dağıtın

Uygulamayı belirtildiği şekilde dağıtalım. Antigravity'den bunu bizim için çalıştırmasını isteyebiliriz ancak bunu yapmadan önce gcloud CLI'nın mevcut olduğundan ve Google Cloud projesi için yapılandırıldığından emin olun.

Antigravity'ye "Uygulamayı benim için dağıt" istemini verebiliriz. Bu işlem, çeşitli izinler için sizden onay ister ve ardından komut dosyalarını yürütmeye devam eder.

Aşağıdaki mesajda açıklandığı gibi, işlemi arka plan görevi olarak başlatır:

I have initiated the deployment of the document processing pipeline to Google Cloud project PROJECT_ID in REGION.The deployment process is currently executing in the background:
Building and publishing the container image via Cloud Build.
Configuring service account IAM permissions and deploying the Cloud Run service.
Provisioning the Cloud Storage bucket (gs://PROJECT_ID-document-ingest).
Setting up the Pub/Sub topic, GCS notification, and push subscription.
I will notify you as soon as the deployment finishes!

6. Uygulamayı doğrulama

Ardışık düzen dağıtıldıktan sonra Antigravity, uygulamanın gerçekten çalıştığını doğrular. test_pipeline.sh dosyasını çalıştırıp çalıştıramayacağını soruyor. İzin verebiliriz.

Son olarak, bize şunları söyler:

🚀 Deployment Successful & Verified on Google Cloud!

The application has been deployed to Google Cloud project PROJECT_ID in REGION and end-to-end event-driven processing has been verified.

Ayrıca, sonuçları görüntülemek için adım adım açıklamalı kılavuz yapısını da güncelledi (aşağıda kısmi bir listeleme verilmiştir):

Dağıtım Özeti

  • GCP Projesi: PROJECT_ID
  • Bölge: REGION
  • Cloud Run hizmeti: document-processor
  • Cloud Run uç noktası: SERVICE_URL
  • Cloud Storage paketi: gs://PROJECT_ID-document-ingest
  • Pub/Sub konusu: document-upload-events
  • Pub/Sub Push Aboneliği: document-upload-events-push-sub
  • BigQuery hedefi: PROJECT_ID.document_processing.document_metadata

Canlı Ardışık Düzen Doğrulaması

Canlı Google Cloud ortamında scripts/test_pipeline.sh komutunu çalıştırdık:

  1. sample_contract.txt ve sample_invoice.pdf dosyalarını Cloud Storage paketine yükledim.
  2. GCS, Pub/Sub'a OBJECT_FINALIZE etkinlikleri oluşturur.
  3. Pub/Sub, zarfları Cloud Run mikro hizmetine gönderdi.
  4. Cloud Run, meta verileri çıkardı, simüle edilmiş OCR'yi işledi ve kayıtları BigQuery'ye aktardı.

Canlı BigQuery sorgu çıkışı

+------------------------------+------------+----------------+---------------------------------------------------+---------------------+
|          file_name           | word_count |   ocr_status   |                       tags                        |    processed_at     |
+------------------------------+------------+----------------+---------------------------------------------------+---------------------+
| test_invoice_1788840194.pdf  |         62 | SIMULATED_OCR  | ["invoice","finance","billing","acme","pdf"]      | 2026-09-08 04:03:27 |
| test_contract_1788840194.txt |        181 | EXTRACTED_TEXT | ["provider","cloud","client","agreement","shall"] | 2026-09-08 04:03:22 |
+------------------------------+------------+----------------+---------------------------------------------------+---------------------+

Tüm ardışık düzen bileşenleri etkin, sağlıklı ve canlı sürümde doğrulanmış olmalıdır.

İsteğe bağlı: Manuel doğrulama

Antigravity uygulamayı doğrulamış olsa da dilerseniz aşağıdaki adımları uygulayarak Google Cloud Console'da tüm kaynakların oluşturulup oluşturulmadığını manuel olarak da kontrol edebilirsiniz.

Cloud Storage

Amaç: Bucket'ın mevcut olduğunu doğrulayın ve yüklenen dosyaları kontrol edin.

  1. Cloud Storage > Buckets'a (Cloud Storage > Paketler) gidin.
  2. PROJECT_ID-document-processing adlı paketi bulun.
  3. Dosyalara göz atmak için paket adını tıklayın.
  4. Doğrulama: Yüklediğiniz dosyaları (ör. sample_contract.txt) görmelisiniz.

Pub/Sub

Hedef: Konunun mevcut olduğunu ve push aboneliği olduğunu onaylayın.

  1. Pub/Sub > Konular'a gidin.
  2. document-uploads-events etkinliğini bulun.
  3. Konu kimliğini tıklayın.
  4. Aşağı kaydırarak Abonelikler sekmesine gidin.
  5. Doğrulama: doc-uploads-events-push-sub öğesinin listelendiğinden emin olun.

Cloud Run

Amaç: Hizmet durumunu ve günlüklerini kontrol edin.

  1. Cloud Run'a gidin.
  2. document-processor hizmetini tıklayın.
  3. Doğrulayın:
  4. Health: Hizmetin etkin olduğunu belirten yeşil onay işareti.
  5. Günlükler: Günlükler sekmesini tıklayın. "Processing document: gs://..." ve "Successfully streamed metadata..." gibi girişleri bulun.

BigQuery

Hedef: Verilerin gerçekten depolandığını doğrulayın.

  1. BigQuery > SQL Çalışma Alanı'na gidin.
  2. Gezgin bölmesinde project > document_processing veri kümenizi genişletin.
  3. document_metadata tablosunu tıklayın.
  4. Sorgu sekmesini tıklayın ve SELECT * ifadesiyle tablodaki tüm satırları alın.
  5. Doğrulama: file_name, process_at, tags ve word_count içeren satırları görmeniz gerekir.

7. Uygulamayı keşfetme

Bu noktada, temel uygulama sağlanmış ve çalışıyor durumdadır. Bu uygulamayı daha fazla genişletmeye başlamadan önce kodu inceleyin. Artifacts'ü görüntüleyebilirsiniz. Burada, oluşturulan kod dosyaları gösterilir.

Görebileceğiniz bazı dosyaların kısa bir özetini aşağıda bulabilirsiniz:

  1. deploy.sh: Tüm Google Cloud kaynaklarını sağlayan ve gerekli API'leri etkinleştiren ana komut dosyası.
  2. main.py: Ardışık düzenin ana giriş noktası. Bu Python uygulaması, Pub/Sub anlık iletilerini alan, dosyayı GCS'den indiren, "işleyen" (OCR'yi simüle eden) ve meta verileri BigQuery'ye aktaran bir web sunucusu oluşturur.
  3. Dockerfile: Uygulamanın bir kapsayıcı resmine nasıl paketleneceğini tanımlar.
  4. requirements.txt: Python bağımlılıklarını listeler.

Test ve doğrulama için gereken diğer komut dosyalarını ve metin dosyalarını da görebilirsiniz.

8. Uygulamayı genişletme

Çalışan bir temel uygulamanız olduğuna göre, uygulamayı yinelemeye ve genişletmeye devam edebilirsiniz. Aşağıdaki önerilerden yararlanabilirsiniz.

Ön uç ekleme

İşlenen dokümanları görüntülemek için basit bir web arayüzü oluşturun.

Aşağıdaki istemi deneyin: Create a simple Streamlit or Flask web application that connects to BigQuery. It should display a table of the processed documents (filename, upload_date, tags, word_count) and allow me to filter the results by tag

Gerçek yapay zeka/makine öğrenimi ile entegrasyon

Simüle edilmiş OCR işleme yerine, ayıklama, sınıflandırma ve çeviri için Gemini modellerini kullanın.

  1. Sahte OCR mantığını değiştirin. Gerçek metin ve verileri ayıklamak için resmi/PDF'yi Gemini'a gönderin. Belge türünü (fatura, sözleşme, özgeçmiş) sınıflandırmak veya varlıkları (tarihler, adlar, konumlar) ayıklamak için ayıklanan metni analiz edin.
  2. Dokümanın dilini otomatik olarak algılayıp depolamadan önce İngilizceye çevirir. Diğer dilleri de kullanabilirsiniz.

Depolama ve analiz özelliklerini geliştirme

Maliyetten tasarruf etmek için eski dosyaları "Coldline" veya "Archive" depolama alanına taşıyacak şekilde pakette yaşam döngüsü kuralları yapılandırabilirsiniz.

Sağlamlık ve Güvenlik

Uygulamayı daha sağlam ve güvenli hale getirebilirsiniz. Örneğin:

  1. Ölü harf kuyrukları (DLQ): Hataları işlemek için Pub/Sub aboneliğini güncelleyin. Cloud Run hizmeti bir dosyayı 5 kez işlemeyi başarısız olursa iletiyi insan incelemesi için ayrı bir "Dead Letter" konusuna/paketine gönderin.
  2. Secret Manager: Uygulamanızın API anahtarlarına veya hassas yapılandırmaya ihtiyacı varsa bunları Secret Manager'da depolayın ve dizeleri sabit kodlamak yerine Cloud Run'dan güvenli bir şekilde erişin.
  3. Eventarc: Daha esnek etkinlik yönlendirme için doğrudan Pub/Sub'dan Eventarc'a yükseltin. Bu sayede, karmaşık denetim günlüklerine veya diğer GCP hizmeti etkinliklerine göre tetikleme yapabilirsiniz.

Elbette kendi fikirlerinizi de üretebilir ve bunları uygulamak için Antigravity'den yardım alabilirsiniz.

9. Sonuç

Google Antigravity'yi kullanarak dakikalar içinde ölçeklenebilir, sunucusuz ve yapay zeka destekli bir belge ardışık düzeni oluşturdunuz. Öğrendikleriniz:

  • Yapay zeka ile mimariler planlayın.
  • Antigravity'yi, kod oluşturmadan dağıtıma ve doğrulamaya kadar uygulama oluşturma sürecinde yönlendirin ve yönetin.
  • Dağıtımları ve doğrulamayı adım adım açıklamalarla doğrulayın.

Referans belgeler