Menghubungkan GitHub ke Google Cloud dengan Developer Connect

1. Pengantar

Dalam codelab ini, Anda akan membuat koneksi yang aman ke repositori GitHub menggunakan Developer Connect dan menggunakan koneksi tersebut untuk men-deploy agen secara langsung menggunakan Agent Runtime di Platform Agen Gemini Enterprise.

Developer Connect membuat konektivitas dengan memandu Anda melalui konfigurasi izin, otorisasi, autentikasi, dan jaringan ke alat developer non-Google. Hal ini memberikan cara langsung dan native untuk menarik kode aplikasi Anda ke layanan Google Cloud.

Untuk codelab ini, kita akan menggunakan Koneksi Repositori Git Developer Connect untuk men-deploy agen secara langsung menggunakan Agent Runtime di Platform Agen Gemini Enterprise. Developer Connect mendukung GitHub, GitHub Enterprise, Bitbucket Cloud, Bitbucket Data Center, GitLab, dan GitLab Enterprise. Dalam codelab ini, kita akan mempelajari cara membuat koneksi ke GitHub.

Yang akan Anda lakukan

  • Buat agen dasar di Agent Runtime dan kirimkan ke GitHub
  • Menggunakan Developer Connect untuk menautkan repositori GitHub Anda ke Google Cloud
  • Men-deploy agen di Agent Runtime menggunakan repositori yang terhubung secara native
  • Memanggil dan menguji agen jarak jauh yang di-deploy

Yang Anda butuhkan

  • Browser web seperti Chrome
  • Project Google Cloud yang mengaktifkan penagihan
  • Akun GitHub dan Token Akses Pribadi (klasik) dengan akses repositori

Codelab ini ditujukan bagi developer dari semua level, termasuk para pemula. Sebagian besar resource yang dikelola dalam codelab ini adalah API tanpa server dan biayanya kurang dari $1.

2. Sebelum memulai

Buat Project Google Cloud

  1. Di Konsol Google Cloud, di halaman pemilih project, pilih atau buat project Google Cloud.
  2. Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.

Mulai Cloud Shell

  1. Klik Activate Cloud Shell di bagian atas konsol Google Cloud.
  2. Setelah terhubung ke Cloud Shell, verifikasi autentikasi Anda:
    gcloud auth list
    
  3. Pastikan project Anda dikonfigurasi:
    export PROJECT_ID=$(gcloud config get-value project)
    
  4. Jika project Anda tidak ditetapkan seperti yang diharapkan, tetapkan project:
    export PROJECT_ID=<YOUR_PROJECT_ID>
    gcloud config set project $PROJECT_ID
    

Mengaktifkan API

Jalankan perintah ini untuk mengaktifkan semua API yang diperlukan untuk Developer Connect dan Vertex AI:

gcloud services enable \
  developerconnect.googleapis.com \
  aiplatform.googleapis.com

3. Menyiapkan Kode Sumber Agen

Pertama, Anda akan membuat repositori GitHub baru untuk menyimpan kode sumber agen, dan menambahkan agen penalaran Python sederhana ke repositori tersebut.

  1. Login ke akun GitHub Anda.
  2. Buat repositori pribadi baru bernama devconnect-agent.
  3. Jangan melakukan inisialisasi dengan README atau .gitignore.

Buat file agen secara lokal

Kembali di terminal Cloud Shell, buat direktori untuk agen Anda dan tentukan dependensinya:

mkdir -p devconnect-agent/test
cd devconnect-agent

Buat file requirements.txt di direktori test yang menentukan library Agent Runtime:

cat <<EOF > test/requirements.txt
google-cloud-aiplatform[agent_engines]
EOF

Buat file my_agent.py di direktori test. Skrip ini menentukan agen sederhana yang menjawab kueri daftar:

cat <<EOF > test/my_agent.py
class MyAgent:

  def query_none(self):
    return None

  def query_list(self):
    return [1, 2, 3]

  def register_operations(self):
    return {
        "": ["query_none", "query_list"],
    }

agent = MyAgent()
EOF

Kirim kode ke GitHub

Lakukan inisialisasi repositori Git dan kirim kode Anda ke repositori GitHub yang baru dibuat.

Ganti `<YOUR_GITHUB_USERNAME>` dengan nama pengguna GitHub Anda dan `<YOUR_GITHUB_TOKEN>` dengan Token Akses Pribadi Anda.

git init
git branch -M main
git add .
git commit -m "Initial commit of agent source"
git remote add origin https://<YOUR_GITHUB_TOKEN>@github.com/<YOUR_GITHUB_USERNAME>/devconnect-agent.git
git push -u origin main

4. Mengonfigurasi Developer Connect

Setelah repositori Anda ada di GitHub, Developer Connect akan menautkan project Google Cloud Anda ke repositori tersebut secara aman.

Menyiapkan izin IAM

Beri otorisasi Developer Connect untuk mengakses project Google Cloud Anda dengan membuat identitas layanan.

gcloud beta services identity create \
    --service=developerconnect.googleapis.com \
    --project=$PROJECT_ID

Anda dapat membuat koneksi dan penautan menggunakan konsol Google Cloud atau gcloud CLI.

Opsi 1: Menggunakan Konsol Google Cloud

  1. Di konsol Google Cloud, buka Developer Connect.
  2. Klik Hubungkan di bagian GitHub
  3. Beri Nama Koneksi Anda my-github-connection dan pilih di us-central1
  4. Ikuti perintah untuk memberi otorisasi pada aplikasi GitHub Developer Connect.
  5. Pilih repositori devconnect-agent untuk menautkannya ke project Anda.

Opsi 2: Menggunakan gcloud CLI

Jalankan perintah berikut di Cloud Shell untuk menautkan repositori GitHub Anda.

Pertama, Anda harus memberikan akses akun layanan Developer Connect ke Secret Manager.

# Get the service account
SERVICE_ACCOUNT=$(gcloud beta services identity create \
    --service=developerconnect.googleapis.com \
    --project=$PROJECT_ID \
    --format="value(email)")

# Grant access to Secret Manager
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="serviceAccount:$SERVICE_ACCOUNT" \
    --role="roles/secretmanager.admin"
# 1. Create the general Developer Connect connection to GitHub
gcloud developer-connect connections create my-github-connection \
    --location=us-central1 \
    --github-config-app=developer-connect
# 2. Link your specific agent repository to the connection
# Replace <YOUR_GITHUB_USERNAME> with your actual GitHub username
gcloud developer-connect connections git-repository-links create devconnect-agent \
    --connection=my-github-connection \
    --location=us-central1 \
    --clone-uri=https://github.com/<YOUR_GITHUB_USERNAME>/devconnect-agent.git

5. Men-deploy Agen dari Developer Connect

Dengan repositori yang terhubung dengan aman, Anda dapat men-deploy agen Agent Runtime secara langsung dengan memanfaatkan link Developer Connect secara native.

Men-deploy Runtime Agen

Buat dan jalankan skrip Python secara lokal di Cloud Shell untuk men-deploy agen Anda menggunakan Vertex AI SDK.

cd ~
cat <<EOF > deploy.py
import vertexai

PROJECT_ID = "$PROJECT_ID"
LOCATION = "us-central1"

vertexai.init(project=PROJECT_ID, location=LOCATION)
client = vertexai.Client(project=PROJECT_ID, location=LOCATION)

# Define the full URI string for the Developer Connect repository link
repo_link = f"projects/{PROJECT_ID}/locations/{LOCATION}/connections/my-github-connection/gitRepositoryLinks/devconnect-agent"

print("Deploying to Agent Runtime from Developer Connect...")

remote_agent = client.agent_engines.create(
    config={
        "developer_connect_source": {
            "git_repository_link": repo_link,
            "revision": "main",
            "dir": "test",
        },
        "entrypoint_module": "my_agent",
        "entrypoint_object": "agent",
        "requirements_file": "requirements.txt",
        "class_methods": [
            {"name": "query_list", "api_mode": ""}
        ],
        "display_name": "DevConnect Agent",
    },
)

print(f"Agent Runtime deployed successfully: {remote_agent.api_resource.name}")
EOF

Konfigurasi kredensial aplikasi default di gcloud.

gcloud auth application-default login

Jalankan skrip deployment. Perhatikan bahwa arsitektur ini memungkinkan Vertex AI melewati cakupan eksekusi lokal sepenuhnya dan membangun image agen jarak jauh dari sumber.

python3 deploy.py

Menguji Agen

Setelah deployment selesai, jalankan skrip untuk membuat kueri endpoint agen Anda.

cat <<EOF > invoke.py
import vertexai

PROJECT_ID = "$PROJECT_ID"
LOCATION = "us-central1"

client = vertexai.Client(project=PROJECT_ID, location=LOCATION)

# Retrieve the latest reasoning engine
engines = list(client.agent_engines.list())
if engines:
    agent = client.agent_engines.get(name=engines[0].api_resource.name)
    print("Invoking remote agent via endpoint...")
    # NOTE: Invoking remote agent
    response = agent.query_list()
    print(f"Agent response: {response}")
else:
    print("No deployment found.")
EOF

python3 invoke.py

Anda akan melihat output yang mirip dengan:

Invoking remote agent via endpoint...
Agent response: [1, 2, 3]

6. Pembersihan

Untuk menghindari biaya berkelanjutan pada akun Google Cloud Anda, hapus resource yang dibuat selama codelab ini.

Bersihkan resource Developer Connect dan Agent Runtime:

cat <<EOF > cleanup.py
import vertexai

PROJECT_ID = "$PROJECT_ID"
LOCATION = "us-central1"

client = vertexai.Client(project=PROJECT_ID, location=LOCATION)

for engine in client.agent_engines.list():
    print(f"Deleting {engine.api_resource.name}")
    engine.delete()
EOF

python3 cleanup.py

Membersihkan resource Developer Connect:

gcloud developer-connect connections git-repository-links delete devconnect-agent \
    --connection=my-github-connection \
    --location=us-central1 \
    --quiet

gcloud developer-connect connections delete my-github-connection \
    --location=us-central1 \
    --quiet

7. Selamat

Selamat! Anda telah membuat integrasi repositori GitHub secara aman menggunakan Developer Connect dan men-deploy agen AI secara native langsung dari pohon sumber Anda.

Yang telah Anda pelajari

  • Mengonfigurasi project Google Cloud dengan Developer Connect dan Vertex AI
  • Menyimpan Token Akses Pribadi ke Secret Manager dengan aman
  • Koneksi Developer Connect yang dibuat secara eksplisit melalui gcloud CLI
  • Membuat instance Vertex AI Agent Runtime secara terprogram, menggunakan pemetaan objek developer_connect_source.

Langkah berikutnya

  • Jelajahi lebih lanjut dengan Gemini Code Assist yang disesuaikan menggunakan integrasi codebase Developer Connect Anda.
  • Bereksperimen dengan membangun agen runtime agen yang andal.

Dokumen referensi