Cloud Run을 사용하여 Firebase Genkit 흐름을 웹 서비스로 배포할 수 있습니다. 예를 들어 이 페이지에서는 기본 샘플 흐름을 배포하는 프로세스를 안내합니다.
아직 설치하지 않았다면 Google Cloud CLI를 설치합니다.
Cloud 콘솔을 사용하여 새 Google Cloud 프로젝트를 만들거나 기존 프로젝트를 선택합니다. 프로젝트를 결제 계정에 연결해야 합니다.
프로젝트를 만들거나 선택한 후 이를 사용하도록 Google Cloud CLI를 구성합니다.
gcloud auth login
gcloud init
Genkit 샘플 프로젝트용 디렉터리를 만듭니다.
mkdir -p ~/tmp/genkit-cloud-project
cd ~/tmp/genkit-cloud-project
IDE를 사용할 경우 이 디렉터리로 열어 둡니다.
프로젝트 디렉터리에서 Go 모듈을 초기화합니다.
go mod init example/cloudrun
프로젝트에서 Genkit를 초기화합니다.
genkit init
사용할 모델 제공업체를 선택합니다.
나머지 프롬프트의 기본값을 수락합니다.
genkit
도구는 자체 AI 흐름 개발을 시작하는 데 도움이 되는 샘플 소스 파일을 만듭니다. 하지만 이 튜토리얼의 나머지 부분에서는 샘플 흐름을 배포하기만 하면 됩니다.샘플 파일(
main.go
또는genkit.go
)을 수정하여 흐름 서버가 리슨해야 하는 포트를 명시적으로 지정합니다.if err := genkit.Init(ctx, &genkit.Options{FlowAddr: ":3400"}, // Add this parameter. ); err != nil { log.Fatal(err) }
배포된 함수에 API 사용자 인증 정보를 제공합니다. 선택한 모델 공급업체에 따라 다음 작업 중 하나를 수행합니다.
Gemini(Google AI)
Google AI를 해당 리전에서 사용할 수 있는지 확인합니다.
Google AI Studio를 사용하는 Gemini API의 API 키를 생성합니다.
Cloud Run 환경에서 API 키를 사용할 수 있도록 설정합니다.
- Cloud 콘솔에서 Secret Manager API를 사용 설정합니다.
- Secret Manager 페이지에서 API 키가 포함된 새 보안 비밀을 만듭니다.
- 보안 비밀을 만든 후 같은 페이지에서 Secret Manager 보안 비밀 접근자 역할을 통해 기본 컴퓨팅 서비스 계정에 보안 비밀에 대한 액세스 권한을 부여합니다. (IAM 페이지에서 기본 컴퓨팅 서비스 계정의 이름을 찾을 수 있습니다.)
이후 단계에서 서비스를 배포할 때 이 보안 비밀의 이름을 참조해야 합니다.
Gemini(Vertex AI)
Cloud 콘솔에서 프로젝트에 대해 Vertex AI API를 사용 설정합니다.
IAM 페이지에서 기본 컴퓨팅 서비스 계정에 Vertex AI 사용자 역할이 부여되었는지 확인합니다.
이 튜토리얼에서 설정해야 하는 유일한 보안 비밀은 모델 제공업체이지만, 일반적으로 흐름에서 사용하는 각 서비스에 대해 유사한 작업을 수행해야 합니다.
선택사항: 개발자 UI에서 흐름을 사용해 봅니다.
선택한 모델 제공업체의 로컬 환경을 설정합니다.
Gemini(Google AI)
export GOOGLE_GENAI_API_KEY=<your API key>
Gemini(Vertex AI)
export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
gcloud auth application-default login
UI를 시작합니다.
genkit start
개발자 UI(http://localhost:4000/)에서 흐름을 실행합니다.
menuSuggestionFlow를 클릭합니다.
JSON 입력 탭에서 모델의 주체를 입력합니다.
"banana"
실행을 클릭합니다.
지금까지 모든 것이 예상한 대로 작동한다면 흐름을 빌드하고 배포할 수 있습니다.
Gemini(Google AI)
gcloud run deploy --port 3400 \ --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
Gemini(Vertex AI)
gcloud run deploy --port 3400 \ --set-env-vars GCLOUD_PROJECT=<your-gcloud-project> \ --set-env-vars GCLOUD_LOCATION=us-central1
(
GCLOUD_LOCATION
은 사용하려는 Vertex API 리전을 구성합니다.)인증되지 않은 호출을 허용할지 묻는 메시지가 표시되면
N
을 선택합니다.N
으로 응답하면 IAM 사용자 인증 정보를 요구하도록 서비스가 구성됩니다. 사용자 인증 정보를 제공하는 방법에 대한 자세한 내용은 Cloud Run 문서의 인증을 참조하세요.
배포가 완료되면 도구에서 서비스 URL을 출력합니다. curl
로 테스트할 수 있습니다.
curl -X POST https://<service-url>/menuSuggestionFlow \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" -d '"banana"'