Cloud Code で Cloud クライアント ライブラリを使用する
このページでは、Cloud クライアント ライブラリと Cloud Code をすぐに使い始める方法について説明します。Hello World サンプル アプリケーションを使用して新しい Kubernetes アプリケーションを設定し、Cloud Translation API を使用してレスポンスをスペイン語に翻訳するようにアプリケーションを更新します。
始める前に
- Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
-
Google Kubernetes Engine and Cloud Translation API を有効にします。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
-
Google Kubernetes Engine and Cloud Translation API を有効にします。
- Git をインストールして、Cloud Code がサンプルのクローン作成などの Git オペレーションを実行できるようにします。
- Cloud Code プラグインをインストールします(まだインストールしていない場合)。
アプリケーションの作成
- コマンド パレット(
Cmd
/Ctrl
+Shift
+P
)を使用して、Cloud Code: 新しいアプリケーション、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()
関数に、指定したテキストを翻訳する次のコードを追加します。[File] > [Save] を選択してコードの形式を変更します。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
Node.js
Cloud Translation API Cloud クライアント ライブラリをインストールします。
[Cloud Code] をクリックし、[Cloud APIs] セクションを展開します。
- [Cloud AI] を展開し、[Cloud Translation API] をクリックします。
- クライアント ライブラリをインストールするには、**NodeJS** をクリックしてから、
(ターミナルで実行] をクリックします。
プロジェクトで
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!';
次の
async
関数を追加します。この関数はHello, world!
テキストの言語を検出して、スペイン語に翻訳します。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] をクリックし、
[ターミナルで実行] をクリックします。
注: 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 Explorer で、クラスタ名を一時停止し、
[Google Cloud コンソールで開く] をクリックします。
- [削除] をクリックし、[削除] をクリックします。
プロジェクト(およびクラスタを含む関連リソース)を削除するには、次のようにします。
- Google Cloud コンソールで、[リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
サポートの利用
フィードバックを送信するには、GitHub で問題を報告します。または、Stack Overflow で質問します。次のステップ
- Cloud Translation API について学習する。
- Cloud クライアント ライブラリの詳細を確認します
- Cloud Code for VS Code について学習する。