Cloud Code에서 Cloud 클라이언트 라이브러리 사용
이 페이지에서는 Cloud 클라이언트 라이브러리 및 Cloud Code를 빠르게 시작하는 방법을 설명합니다. Hello World 샘플 애플리케이션을 사용하여 새 Kubernetes 애플리케이션을 설정한 다음 Cloud Translation API를 사용하여 응답을 스페인어로 번역하도록 애플리케이션을 업데이트합니다.
시작하기 전에
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Google Kubernetes Engine and Cloud Translation APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Google Kubernetes Engine and Cloud Translation APIs.
- Cloud Code가 샘플 클론과 같은 Git 작업을 수행할 수 있도록 Git를 설치합니다.
- 아직 설치하지 않은 경우 Cloud Code 플러그인을 설치합니다.
애플리케이션 만들기
- 명령어 팔레트(
Cmd
/Ctrl
+Shift
+P
)에서 Cloud Code: New Application을 실행하고, Kubernetes 애플리케이션을 선택한 다음 원하는 언어로 Hello World 앱을 선택합니다. 예를 들어 Node.js: Hello World를 선택하여 시작 Node.js Hello World 앱을 만듭니다. - 새 애플리케이션을 저장합니다. 애플리케이션이 생성되었음을 알리는 알림이 표시되며 애플리케이션이 포함된 새 창이 열립니다.
사용자 인증 정보를 설정합니다.
터미널을 열려면 터미널 > 새 터미널을 클릭합니다.
서비스 계정을 만들어 API 요청을 인증합니다.
gcloud iam service-accounts create \ translation-quickstart \ --project PROJECT_ID
서비스 계정에 Cloud Translation API 사용자 역할을 부여합니다.
gcloud projects \ add-iam-policy-binding \ PROJECT_ID \ --member='serviceAccount:translation-quickstart@PROJECT_ID.iam.gserviceaccount.com' \ --role='roles/cloudtranslate.user'
서비스 계정 키를 만듭니다.
gcloud iam service-accounts keys \ create key.json --iam-account \ translation-quickstart@PROJECT_ID.iam.gserviceaccount.com
이 키를 기본 사용자 인증 정보로 설정합니다.
export \ GOOGLE_APPLICATION_CREDENTIALS=key.json
애플리케이션에서 Cloud Translation API 호출
Go
Cloud Translation API Cloud 클라이언트 라이브러리를 설치합니다.
- 터미널을 열려면 터미널 > 새 터미널을 클릭합니다.
다음 명령어를 실행합니다.
go get cloud.google.com/go/translate/apiv3
app.go
파일을 만듭니다.app.go
를 열고 패키지 이름, 가져오기, 앱 스켈레톤을 추가합니다.package main import ( "context" "fmt" translate "cloud.google.com/go/translate/apiv3" translatepb "google.golang.org/genproto/googleapis/cloud/translate/v3" ) func translateText(w io.Writer, projectID string, sourceLang string, targetLang string, text string) error { } func main() { }
translateText()
함수에서 다음 코드를 추가하여 지정된 텍스트를 번역합니다. 파일 > 저장을 선택하여 코드의 형식을 다시 지정합니다.ctx := context.Background() client, err := translate.NewTranslationClient(ctx) if err != nil { return fmt.Errorf("NewTranslationClient: %v", err) } defer client.Close() req := &translatepb.TranslateTextRequest{ Parent: fmt.Sprintf("projects/%s/locations/global", projectID), SourceLanguageCode: sourceLang, TargetLanguageCode: targetLang, MimeType: "text/plain", // Mime types: "text/plain", "text/html" Contents: []string{text}, } resp, err := client.TranslateText(ctx, req) if err != nil { return fmt.Errorf("TranslateText: %v", err) } // Display the translation for each input text provided for _, translation := range resp.GetTranslations() { fmt.Fprintf(w, "Translated text: %v\n", translation.GetTranslatedText()) } return nil
main()
함수에서translateText()
를 호출합니다. 다음 매개변수 값은 영어를 스페인어로 번역합니다.projectID := "<var>PROJECT_ID</var>" sourceLang := "en-US" targetLang := "es" text := "Text to translate" err := translateText(os.Stdout, projectID, sourceLang, targetLang, text) if err != nil { fmt.Print(err) }
터미널에서 애플리케이션을 실행합니다.
go run app.go
자바
pom.xml
을 열고 다음 코드 스니펫을dependencies
섹션에 추가합니다.<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-translate</artifactId> </dependency> </dependencies>
그런 다음
pom.xml
파일에서 다음 코드 스니펫을dependencyManagement
섹션에 추가합니다.<dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>libraries-bom</artifactId> <version>26.39.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
최신 버전의 Google Cloud 지원되는 라이브러리를 사용 중인지 확인합니다. 버전 목록은 Google Cloud 지원되는 라이브러리를 참조하세요.
Java 클래스 경로/구성을 동기화할지 묻는 메시지가 표시되면 항상을 클릭합니다.
app.java
파일을 만듭니다.app.java
에서 패키지 정의 뒤에 다음 가져오기를 포함합니다.import com.google.cloud.translate.v3.LocationName; import com.google.cloud.translate.v3.TranslateTextRequest; import com.google.cloud.translate.v3.TranslateTextResponse; import com.google.cloud.translate.v3.Translation; import com.google.cloud.translate.v3.TranslationServiceClient; import java.io.IOException;
App
클래스에translateText()
메서드를 추가합니다. 이 메서드는 변수를 설정하고 오버로드된translateText()
메서드에 전달합니다. 다음 값은 영어를 스페인어로 번역합니다.public static void translateText() throws IOException { String projectId = "<walkthrough-project-id/>"; String targetLanguage = "es"; String text = "Hello world!"; translateText(projectId, targetLanguage, text); }
오버로드된
translateText()
메서드를 추가합니다. 이 메서드는 텍스트를 도착어로 번역합니다.public static void translateText(String projectId, String targetLanguage, String text) throws IOException { try (TranslationServiceClient client = TranslationServiceClient.create()) { LocationName parent = LocationName.of(projectId, "global"); TranslateTextRequest request = TranslateTextRequest.newBuilder() .setParent(parent.toString()) .setMimeType("text/plain") .setTargetLanguageCode(targetLanguage) .addContents(text) .build(); TranslateTextResponse response = client.translateText(request); // Display the translation for each input text provided for (Translation translation : response.getTranslationsList()) { System.out.printf("Translated text: %s\n", translation.getTranslatedText()); } } }
main
의 print 문을translateText()
호출로 바꿉니다.try { translateText(); } catch (IOException e) { e.printStackTrace(); }
Node.js
Cloud Translation API Cloud 클라이언트 라이브러리를 설치합니다.
- Cloud Code를 클릭한 다음 Cloud APIs 탐색기를 펼칩니다.
- Cloud AI를 펼친 후 Cloud Translation API를 클릭합니다.
- 클라이언트 라이브러리를 설치하려면 NodeJS를 클릭한 다음 play_arrow
터미널에서 실행을 클릭합니다.
프로젝트에
app.js
파일을 만듭니다.app.js
를 열고 파일 시작 부분에서 Translation 클라이언트 라이브러리를 가져옵니다.const {TranslationServiceClient} = require('@google-cloud/translate');
Translation API 클라이언트를 만들고 프로젝트 ID, 위치, 번역할 텍스트의 변수를 추가합니다.
// Instantiates a client const translationClient = new TranslationServiceClient(); const projectId = 'PROJECT_ID'; const location = 'global'; const text = 'Hello, world!';
Hello, world!
텍스트의 언어를 감지하고 텍스트를 스페인어로 번역하는 다음async
함수를 추가합니다.async function translateText() { // Construct request const request = { parent: `projects/PROJECT_ID/locations/LOCATION`, contents: [text], mimeType: 'text/plain', // mime types: text/plain, text/html sourceLanguageCode: 'en', targetLanguageCode: 'es', }; // Run request const [response] = await translationClient.translateText(request); for (const translation of response.translations) { console.log(`Translation: ${translation.translatedText}`); } }
app.js
파일 끝에서translateText()
를 호출합니다.translateText();
애플리케이션을 실행하려면 명령어 팔레트를 연 다음(
Ctrl
/Cmd
+Shift
+P
누름) Cloud Code: Kubernetes에서 실행를 실행합니다.애플리케이션이 배포된 후에 webview에 표시된 URL을 열어 실행 중인 서비스를 확인합니다.
Python
Cloud Translation API Cloud 클라이언트 라이브러리를 설치합니다.
- Cloud Code를 클릭한 다음 Cloud APIs 탐색기를 펼칩니다.
- Cloud AI를 펼친 후 Cloud Translation API를 클릭합니다.
- 클라이언트 라이브러리를 설치하려면 Python을 클릭한 다음 play_arrow
터미널에서 실행을 클릭합니다.
참고: Chromebook을 포함한 Linux 기반 운영체제를 사용하는 경우pip
대신pip3
를 사용하도록 명령어를 수정하세요. Mac을 사용하는 경우pip3
를 사용하도록 명령어를 수정하고--user
플래그를 추가합니다.
프로젝트에
app.py
파일을 만듭니다.app.py
의 파일 시작 부분에서 클라이언트 라이브러리를 가져옵니다.from google.cloud import translate
translate_text
함수를 추가합니다. 이렇게 하면 클라이언트가 Cloud Translation API와 상호작용합니다.def translate_text(text="Hello, world!", project_id="PROJECT_ID"): client = translate.TranslationServiceClient() location = "global" parent = "projects/PROJECT_ID/locations/LOCATION"
텍스트를 영어에서 스페인어로 번역하고 결과를 출력하려면
translate_text
함수에서 Cloud Translation API Cloud 클라이언트 라이브러리에 다음 호출을 추가합니다.response = client.translate_text( request={ "parent": parent, "contents": [text], "mime_type": "text/plain", "source_language_code": "en-US", "target_language_code": "es", } ) for translation in response.translations: print("Translated text: {}".format(translation.translated_text))
app.py
의 끝에서translate_text()
를 호출합니다.translate_text()
애플리케이션을 실행하려면 명령어 팔레트를 연 다음(
Ctrl
/Cmd
+Shift
+P
누름) Cloud Code: Kubernetes에서 실행를 실행합니다.애플리케이션이 배포된 후에 webview에 표시된 URL을 열어 실행 중인 서비스를 확인합니다.
삭제
애플리케이션을 중지하면 실행 중에 배포된 모든 Kubernetes 리소스가 자동으로 삭제됩니다.
이 빠른 시작에서 사용되는 다른 리소스에 대한 비용이 계정에 청구되지 않도록 하려면 프로젝트를 삭제하거나 프로젝트를 다시 사용하려면 만든 클러스터를 삭제해야 합니다.
클러스터를 삭제하려면 다음을 실행하세요.
- Kubernetes 탐색기에서 클러스터 이름을 일시중지한 후 open_in_new Google Cloud 콘솔에서 열기를 클릭합니다.
- 삭제를 클릭한 다음 삭제를 클릭합니다.
프로젝트 및 클러스터를 포함한 관련 리소스를 삭제하려면 다음 안내를 따르세요.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
지원받기
의견을 보내려면 GitHub에서 문제를 보고하거나 Stack Overflow에서 질문하세요.다음 단계
- Cloud Translation API 자세히 알아보기
- Cloud 클라이언트 라이브러리 자세히 알아보기
- VS Code용 Cloud Code에 대해 자세히 알아보기