이 문서에서는
test-instance
라는 Spanner 인스턴스와 음악 애플리케이션 스키마를 사용하는example-db
라는 데이터베이스가 있다고 가정합니다. 음악 애플리케이션 스키마를 사용하여 인스턴스와 데이터베이스를 만드는 방법에 대한 자세한 내용은 빠른 시작: 콘솔 사용 또는 Go, 자바, Node.js, Python 시작하기 튜토리얼을 참조하세요.Cloud Run Functions 및 Cloud Build API를 사용 설정합니다.
-
gcloud CLI가 이미 설치되어 있으면 다음 명령어를 실행하여 업데이트합니다.
gcloud components update
개발 환경을 준비합니다.
애플리케이션 준비
샘플 앱 저장소를 로컬 머신에 클론합니다.
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
자바
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
Spanner에 액세스하기 위한 Cloud Run Functions 샘플 코드가 있는 디렉터리로 변경합니다.
Node.js
cd nodejs-docs-samples/functions/spanner/
Python
cd python-docs-samples/functions/spanner/
Go
cd golang-samples/functions/spanner/
자바
cd java-docs-samples/functions/spanner/
다음 샘플 코드를 살펴봅니다.
Node.js
Python
Go
자바
함수는 SQL 쿼리를 전송하여 데이터베이스의 모든
Albums
데이터를 가져옵니다. 이 함수는 HTTP 요청을 함수의 엔드포인트로 보낼 때 실행됩니다.
함수 배포하기
HTTP 트리거를 사용하여 함수를 배포하려면 spanner
디렉터리에서 다음 명령어를 실행합니다.
Node.js
gcloud functions deploy get \ --runtime nodejs22 --trigger-http
--runtime
플래그를 사용하여 함수를 실행할 지원되는 Node.js 버전의 런타임 ID를 지정합니다.
Python
gcloud functions deploy spanner_read_data \ --runtime python312 --trigger-http
--runtime
플래그를 사용하여 함수를 실행할 지원되는 Python 버전의 런타임 ID를 지정합니다.
Go
gcloud functions deploy HelloSpanner \ --runtime go121 --trigger-http
--runtime
플래그를 사용하여 함수를 실행할 지원되는 Go 버전의 런타임 ID를 지정합니다.
자바
gcloud functions deploy java-spanner-function \ --entry-point functions.HelloSpanner \ --runtime java17 \ --memory 512MB --trigger-http
--runtime
플래그를 사용하여 함수를 실행할 지원되는 자바 버전의 런타임 ID를 지정합니다.
함수 배포에 최대 2분이 소요될 수 있습니다.
함수 배포가 끝나면 반환된 url
값을 기록합니다. 이는 함수를 트리거할 때 사용됩니다.
Google Cloud 콘솔의 Cloud Run Functions 페이지에서 배포한 함수를 볼 수 있습니다. 이 페이지에서 함수를 만들고 수정할 수도 있으며 함수에 관한 세부정보와 진단 정보를 확인할 수 있습니다.
함수 트리거
함수에 HTTP 요청을 보냅니다.
Node.js
curl "https://REGION-PROJECT_ID.cloudfunctions.net/get"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/spanner_read_data"
Go
curl "https://REGION-PROJECT_ID.cloudfunctions.net/HelloSpanner"
자바
curl "https://REGION-PROJECT_ID.cloudfunctions.net/java-spanner-function"
REGION
과 PROJECT_ID
는 함수 배포가 끝난 후 터미널에 표시되는 값과 일치합니다. 시작하기 튜토리얼을 따라 작업을 수행하고 데이터베이스를 채웠다면 SQL 쿼리 결과를 나타내는 출력이 표시됩니다.
SingerId: 2, AlbumId: 2, AlbumTitle: Forever Hold Your Peace
SingerId: 1, AlbumId: 2, AlbumTitle: Go, Go, Go
SingerId: 2, AlbumId: 1, AlbumTitle: Green
SingerId: 2, AlbumId: 3, AlbumTitle: Terrified
SingerId: 1, AlbumId: 1, AlbumTitle: Total Junk
브라우저에서 함수의 URL을 방문하여 SQL 쿼리 결과를 볼 수도 있습니다.
삭제
이 문서에서 사용한 Spanner 및 Cloud Run Functions 리소스에 대한 추가 비용이 Google Cloud 계정에 청구되지 않게 하려면 다음을 수행합니다.
인스턴스를 삭제합니다.
gcloud spanner instances delete test-instance
배포한 함수를 삭제합니다.
Node.js
gcloud functions delete get
Python
gcloud functions delete spanner_read_data
Go
gcloud functions delete HelloSpanner
자바
gcloud functions delete java-spanner-function