Подключите GitHub к Google Cloud с помощью Developer Connect.

1. Введение

В этом практическом занятии вы создадите защищенное соединение с репозиторием GitHub с помощью Developer Connect и используете это соединение для непосредственного развертывания агента с помощью Agent Runtime на платформе Gemini Enterprise Agent Platform.

Developer Connect обеспечивает подключение, помогая вам настроить разрешения, авторизацию, аутентификацию и сетевые параметры для работы с инструментами разработки, не относящимися к Google. Это предоставляет прямой, нативный способ загрузки кода вашего приложения в сервисы Google Cloud.

В этом практическом занятии мы будем использовать подключение к репозиторию Git через Developer Connect для прямого развертывания агента с помощью Agent Runtime на платформе Gemini Enterprise Agent Platform. Developer Connect поддерживает GitHub, GitHub Enterprise, Bitbucket Cloud, Bitbucket Data Center, Gitlab и GitLab Enterprise. В этом практическом занятии мы рассмотрим процесс подключения к GitHub.

Что вы будете делать

  • Создайте базовый агент в Agent Runtime и загрузите его в GitHub.
  • Используйте Developer Connect , чтобы связать свой репозиторий GitHub с Google Cloud.
  • Разверните агент в среде выполнения агента, используя подключенный репозиторий, непосредственно в среде выполнения.
  • Запустите и протестируйте развернутый удаленный агент.

Что вам понадобится

  • Веб-браузер, например Chrome.
  • Проект Google Cloud с включенной функцией выставления счетов.
  • Учетная запись GitHub и персональный токен доступа (классический) с доступом к репозиторию.

Этот практический семинар предназначен для разработчиков всех уровней, включая начинающих. В семинаре используются преимущественно бессерверные API, стоимость которых не должна превышать 1 доллар.

2. Прежде чем начать

Создайте проект в Google Cloud.

  1. В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud .
  2. Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .

Запустить Cloud Shell

  1. В верхней части консоли Google Cloud нажмите кнопку «Активировать Cloud Shell» .
  2. После подключения к Cloud Shell подтвердите свою аутентификацию:
    gcloud auth list
    
  3. Убедитесь, что ваш проект настроен:
    export PROJECT_ID=$(gcloud config get-value project)
    
  4. Если параметры вашего проекта заданы не так, как ожидалось, настройте их следующим образом:
    export PROJECT_ID=<YOUR_PROJECT_ID>
    gcloud config set project $PROJECT_ID
    

Включить API

Выполните эту команду, чтобы включить все необходимые API для Developer Connect и Vertex AI:

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

3. Подготовьте исходный код агента.

Сначала вам нужно будет создать новый репозиторий GitHub для хранения исходного кода вашего агента и добавить в него простого агента, работающего с логическими рассуждениями на Python.

  1. Войдите в свою учетную запись GitHub .
  2. Создайте новый, закрытый репозиторий под названием devconnect-agent .
  3. Не следует инициализировать его файлом README или .gitignore .

Создайте файлы агента локально.

В терминале Cloud Shell создайте каталог для вашего агента и определите его зависимости:

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

Создайте файл requirements.txt в test каталоге, указав библиотеки среды выполнения агента:

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

Создайте файл my_agent.py в директории test . Этот скрипт определяет простой агент, отвечающий на запросы со списками:

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

Загрузите код на GitHub.

Инициализируйте репозиторий Git и отправьте свой код в только что созданный репозиторий GitHub.

Замените `<YOUR_GITHUB_USERNAME>` на ваше имя пользователя GitHub, а `<YOUR_GITHUB_TOKEN>` на ваш персональный токен доступа.

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. Настройка Developer Connect

Теперь, когда ваш репозиторий размещен на GitHub, Developer Connect безопасно свяжет с ним ваш проект Google Cloud.

Настройте разрешения IAM.

Предоставьте Developer Connect доступ к вашему проекту Google Cloud, сгенерировав идентификатор службы.

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

Создать соединение и установить связь можно либо с помощью консоли Google Cloud, либо с помощью интерфейса командной строки gcloud .

Вариант 1: Использование консоли Google Cloud

  1. В консоли Google Cloud перейдите в раздел Developer Connect .
  2. Нажмите «Подключиться» в разделе GitHub.
  3. Назовите ваше соединение my-github-connection и выберите его в us-central1
  4. Следуйте инструкциям, чтобы авторизовать приложение Developer Connect GitHub.
  5. Выберите репозиторий devconnect-agent , чтобы связать его с вашим проектом.

Вариант 2: Использование интерфейса командной строки gcloud.

Выполните следующие команды в Cloud Shell, чтобы связать свой репозиторий GitHub.

Для начала вам потребуется предоставить учетной записи службы Developer Connect доступ к 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. Разверните агент через Developer Connect.

После установления безопасного соединения с вашим репозиторием вы можете напрямую развернуть агент Agent Runtime, используя ссылку Developer Connect.

Разверните среду выполнения агента.

Создайте и запустите локально скрипт Python в Cloud Shell, чтобы развернуть своего агента с помощью 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

Настройте учетные данные приложения по умолчанию в gcloud.

gcloud auth application-default login

Запустите скрипт развертывания. Обратите внимание, что эта архитектура позволяет Vertex AI полностью обойти локальные области выполнения и собрать образ удаленного агента из исходного кода.

python3 deploy.py

Проверьте агента

После завершения развертывания запустите скрипт для запроса к конечной точке вашего агента.

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

Вы должны увидеть результат, похожий на следующий:

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

6. Уборка

Чтобы избежать дальнейших списаний средств с вашего аккаунта Google Cloud, удалите ресурсы, созданные в ходе этого практического занятия.

Удалите ресурсы Developer Connect и 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

Очистка ресурсов 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. Поздравляем!

Поздравляем! Вы успешно настроили интеграцию с репозиторием GitHub с помощью Developer Connect и развернули агента ИИ непосредственно из исходного кода.

Что вы узнали

  • Настроил проект в Google Cloud с использованием Developer Connect и Vertex AI.
  • Персональный токен доступа надежно сохранен в Secret Manager.
  • Создание подключений Developer Connect осуществляется явно через интерфейс командной строки gcloud.
  • Экземпляр среды выполнения агента Vertex AI был создан программным способом с использованием сопоставления объектов developer_connect_source .

Следующие шаги

  • Изучите подробнее возможности Gemini Code Assist , адаптированные под вашу кодовую базу Developer Connect.
  • Поэкспериментируйте с созданием надежных агентов Agent Runtime .

Справочная документация