תחילת העבודה עם Rust

במאמר הזה נסביר איך להגדיר סביבת פיתוח מקומית של Rust, להתקין את אחת מספריות הלקוח של Cloud ל-Rust ולהריץ את בקשת ה-API הראשונה שלכם ב- Google Cloud.

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

לפני שמריצים את הפקודות שבמסמך הזה, צריך לבצע את הפעולות הבאות:

יצירת פרויקט ב-Rust

כדי ליצור ארגז בינארי לתוכנית:

  1. יוצרים ארגז בינארי:

    cargo new my-project
    
  2. עוברים לספריית הפרויקט החדשה:

    cd my-project
    

התקנה של Google Cloud ספריית לקוח

ספריות הלקוח של Cloud ל-Rust מספקות לקוחות Rust אידיומטיים לשירותיGoogle Cloud כמו Secret Manager. כדי להוסיף וליצור את ספריית הלקוח של Secret Manager, מבצעים את השלבים הבאים:

  1. מפעילים את Secret Manager API בפרויקט:

    gcloud services enable secretmanager.googleapis.com
    
  2. מוסיפים לפרויקט את ספריית הלקוח של Secret Manager:

    cargo add google-cloud-secretmanager-v1
    
  3. מוסיפים את הארגז google-cloud-gax לעזרי חלוקה לדפים:

    cargo add google-cloud-gax
    
  4. מוסיפים את tokio crate לזמן הריצה האסינכרוני:

    cargo add tokio --features macros,rt-multi-thread
    
  5. מחליפים את התוכן של src/main.rs בקוד הבא כדי להציג את הסודות בפרויקט:

    #[tokio::main]
    async fn main() -> Result<(), Box<dyn std::error::Error>> {
        use google_cloud_gax::paginator::ItemPaginator as _;
        use google_cloud_secretmanager_v1::client::SecretManagerService;
        let project_id = std::env::args().nth(1).unwrap();
        let client = SecretManagerService::builder().build().await?;
    
        let mut items = client
            .list_secrets()
            .set_parent(format!("projects/{project_id}"))
            .by_item();
        while let Some(item) = items.next().await {
            println!("{}", item?.name);
        }
        Ok(())
    }

  6. בונים את התוכנית כדי לוודא שהיא עוברת קומפילציה בלי שגיאות:

    cargo build
    

הפעלת תוכנית Rust

מאמתים את הסביבה המקומית ומריצים את התוכנית לדוגמה:

  1. מגדירים את Application Default Credentials בסביבה המקומית:

    gcloud auth application-default login
    
  2. מריצים את התוכנית ומעבירים את מזהה הפרויקט ב- Google Cloud כארגומנט:

    PROJECT_ID=$(gcloud config get project)
    cargo run -- "${PROJECT_ID}"
    

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

הסרת המשאבים

כדי להימנע מחיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם במדריך הזה, בסיום מחקו את כל הסודות לבדיקה שיצרתם והסירו את הספרייה המקומית של my-project.