שימוש בספריות הלקוח ב-Cloud Code

בדף הזה מוסבר איך להתחיל במהירות עם ספריות לקוח של Cloud ו-Cloud Code. תגדירו אפליקציית Kubernetes חדשה באמצעות אפליקציית דוגמה של Hello World, ואז תעדכנו את האפליקציה כדי להשתמש ב-Cloud Translation API לתרגום התגובה לספרדית.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Google Kubernetes Engine and Cloud Translation APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Google Kubernetes Engine and Cloud Translation APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. מתקינים את Git כדי ש-Cloud Code יוכל לבצע פעולות של Git, כמו שיבוט של דוגמה.
  9. אם עוד לא עשיתם זאת, מתקינים את הפלאגין Cloud Code.

יצירת אפליקציה

  1. מלוח הפקודות (Cmd/Ctrl+Shift+P), מריצים את הפקודה Cloud Code: New Application, בוחרים באפשרות Kubernetes Application, ואז בוחרים באפליקציית Hello World בשפה הרצויה. לדוגמה, בוחרים באפשרות Node.js: Hello World כדי ליצור אפליקציית Node.js Hello World למתחילים.
  2. שומרים את האפליקציה החדשה. תוצג התראה שמאשרת שהבקשה נוצרה, וחלון חדש עם הבקשה ייפתח.

הגדרת פרטי כניסה

  1. כדי לפתוח טרמינל, לוחצים על Terminal (טרמינל) > New Terminal (טרמינל חדש).

  2. יוצרים חשבון שירות כדי לאמת את בקשות ה-API:

    gcloud iam service-accounts create \
    translation-quickstart \
    --project PROJECT_ID
  3. נותנים לחשבון השירות את התפקיד Cloud Translation API User:

    gcloud projects \
    add-iam-policy-binding \
    PROJECT_ID \
    --member='serviceAccount:translation-quickstart@PROJECT_ID.iam.gserviceaccount.com' \
    --role='roles/cloudtranslate.user'
  4. יוצרים מַפְתח לחשבון השירות:

    gcloud iam service-accounts keys \
    create key.json --iam-account \
    translation-quickstart@PROJECT_ID.iam.gserviceaccount.com
  5. הגדרת המפתח כפרטי ברירת המחדל:

    export \
     GOOGLE_APPLICATION_CREDENTIALS=key.json
    

קריאה ל-Cloud Translation API מהאפליקציה

המשך

  1. מתקינים את ספריות הלקוח של Cloud לשימוש ב-Cloud Translation API:

    1. כדי לפתוח טרמינל, לוחצים על Terminal (טרמינל) > New Terminal (טרמינל חדש).
    2. מריצים את הפקודה הבאה:

      go get cloud.google.com/go/translate/apiv3
      
  2. יוצרים קובץ app.go.

  3. פותחים את 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() {
    
    }
    
  4. בפונקציה 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
    
  5. בפונקציה 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)
    }
    
  6. מריצים את האפליקציה מהטרמינל.

    go run app.go
    

Java

  1. פותחים את 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>
    
  2. לאחר מכן, בקובץ 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 ספריות נתמכות.

  3. כשמוצגת השאלה אם רוצים לסנכרן את Java classpath/configuration, לוחצים על Always (תמיד).

  4. יוצרים קובץ בשם app.java.

  5. ב-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;
    
  6. מוסיפים את ה-method‏ translateText() למחלקה App. בשיטה הזו מוגדרים משתנים ומועברים לשיטת translateText() בעומס יתר. הערכים הבאים מתרגמים מאנגלית לספרדית:

    public static void translateText() throws IOException {
      String projectId = "<walkthrough-project-id/>";
      String targetLanguage = "es";
      String text = "Hello world!";
      translateText(projectId, targetLanguage, text);
    }
    
  7. מוסיפים שיטת 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());
        }
      }
    }
    
  8. מחליפים את הצהרת ההדפסה ב-main בקריאה ל-translateText():

    try {
      translateText();
    }
    catch (IOException e) {
      e.printStackTrace();
    }
    

Node.js

  1. מתקינים את ספריות הלקוח של Cloud לשימוש ב-Cloud Translation API:

    1. לוחצים על Cloud Code ואז מרחיבים את Cloud APIs Explorer.
    2. מרחיבים את Cloud AI ואז לוחצים על Cloud Translation API.
    3. כדי להתקין את ספריית הלקוח, לוחצים על NodeJS ואז על play_arrow Run in terminal (הפעלה במסוף).
  2. יוצרים קובץ app.js בפרויקט.

  3. פותחים את הקובץapp.js ומייבאים את ספריית הלקוח של Translation בתחילת הקובץ:

    const {TranslationServiceClient} = require('@google-cloud/translate');
    
  4. יוצרים לקוח API של Translation API ומוסיפים משתנים למזהה הפרויקט, למיקום ולטקסט שרוצים לתרגם:

    // Instantiates a client
    const translationClient = new TranslationServiceClient();
    
    const projectId = 'PROJECT_ID';
    const location = 'global';
    const text = 'Hello, world!';
    
  5. מוסיפים את הפונקציה הבאה 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}`);
        }
    }
    
  6. בסוף קובץ app.js, קוראים לפונקציה translateText():

    translateText();
    
  7. כדי להריץ את האפליקציה, פותחים את לוח הפקודות (לוחצים על Ctrl/Cmd + Shift + P) ומריצים את Cloud Code: Run on Kubernetes.

  8. אחרי פריסת האפליקציה, פותחים את כתובת ה-URL שמוצגת בתצוגת האינטרנט כדי לראות את השירות הפועל.

Python

  1. מתקינים את ספריות הלקוח של Cloud לשימוש ב-Cloud Translation API:

    1. לוחצים על Cloud Code ואז מרחיבים את Cloud APIs Explorer.
    2. מרחיבים את Cloud AI ואז לוחצים על Cloud Translation API.
    3. כדי להתקין את ספריית הלקוח, לוחצים על Python ואז על play_arrow Run in terminal (הפעלה במסוף).
      הערה: אם אתם משתמשים במערכת הפעלה מבוססת-Linux, כולל Chromebook, צריך לשנות את הפקודה כך שתשתמש ב-pip3 במקום ב-pip. אם משתמשים ב-Mac, משנים את הפקודה ל-pip3 ומוסיפים את הדגל --user.
  2. יוצרים קובץ app.py בפרויקט.

  3. ב-app.py, מייבאים את ספריית הלקוח בתחילת הקובץ:

    from google.cloud import translate
    
  4. מוסיפים את הפונקציה 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"
    
  5. כדי לתרגם טקסט מאנגלית לספרדית ולהדפיס את התוצאה, מוסיפים את הקריאה הבאה ל-Cloud Translation API Cloud Client Libraries בפונקציה translate_text:

       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))
    
  6. בסוף app.py, תתקשר אל translate_text().

    translate_text()
  7. כדי להריץ את האפליקציה, פותחים את לוח הפקודות (לוחצים על Ctrl/Cmd + Shift + P) ומריצים את Cloud Code: Run on Kubernetes.

  8. אחרי פריסת האפליקציה, פותחים את כתובת ה-URL שמוצגת בתצוגת האינטרנט כדי לראות את השירות הפועל.

הסרת המשאבים

אחרי שמפסיקים את האפליקציה, כל משאבי Kubernetes שנפרסו במהלך ההרצה נמחקים אוטומטית.

כדי להימנע מחיובים בחשבון על משאבים אחרים שבהם השתמשתם בתחילת העבודה המהירה הזו, הקפידו למחוק את הפרויקט או את האשכול שיצרתם אם אתם רוצים להשתמש שוב בפרויקט.

כדי למחוק את האשכול:

  1. ב-Kubernetes Explorer, עוצרים עם העכבר מעל שם האשכול ולוחצים על open_in_new Open in Google Cloud console.
  2. לוחצים על מחיקה ואז על מחיקה.

כדי למחוק את הפרויקט (ואת המשאבים שמשויכים אליו, כולל אשכולות):

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

תמיכה

כדי לשלוח משוב, לדווח על בעיות ב-GitHub או לשאול שאלה ב-Stack Overflow.

המאמרים הבאים