אימות ההגדרה

במדריך הזה נסביר איך לוודא שההגדרה של הרשאת Fleet Engine הושלמה ואפשר ליצור רכב לניסיון. במדריך הזה נעשה שימוש בכלי שורת הפקודה gcloud כדי לבדוק חתימה על אסימון הרשאה ויצירת רכב.

כדי להשלים את התהליך:

  1. מחליפים את השדות הבאים בנתונים שיצרתם כחלק מההגדרה:
שדה החלפה עם
PROJECT_ID מזהה הפרויקט ב-Cloud.
SERVICE_ACCOUNT_EMAIL_ADDRESS כתובת האימייל של חשבון שירות שיצרתם עם התפקיד 'אדמין'. פרטים נוספים זמינים במאמר תפקידים של חשבונות שירות לנייד.

VEHICLE_ID

OR

DELIVERY_VEHICLE_ID

מזהה אקראי של הרכב. המזהה יכול להכיל עד 64 תווים.
  1. משתמשים בכלי gcloud כדי להתחבר לחשבון Google Cloud ולהגדיר את הפרויקט הפעיל בתחנת העבודה:

    gcloud auth login
    gcloud config set project PROJECT_ID
    
  2. יוצרים טענת נכונות (claim) של אסימון רשת מבוסס JSON‏ (JWT) ליצירת הרכב:

    נסיעות על פי דרישה

        cat > claim.jwt << EOM
        {
          "iss": "SERVICE_ACCOUNT_EMAIL_ADDRESS",
          "sub": "SERVICE_ACCOUNT_EMAIL_ADDRESS",
          "aud": "https://fleetengine.googleapis.com/",
          "iat": $(date +%s),
          "exp": $((`date +%s` + 3600)),
          "authorization": {
            "vehicleid": "VEHICLE_ID"
          }
        }
        EOM
        

    משימות מתוזמנות

        cat > claim.jwt << EOM
        {
          "iss": "SERVICE_ACCOUNT_EMAIL_ADDRESS",
          "sub": "SERVICE_ACCOUNT_EMAIL_ADDRESS",
          "aud": "https://fleetengine.googleapis.com/",
          "iat": $(date +%s),
          "exp": $((`date +%s` + 3600)),
          "authorization": {
            "deliveryvehicleid": "DELIVERY_VEHICLE_ID"
          }
        }
        EOM
        
  3. משתמשים ב-gcloud כדי לחתום על ה-JWT הזה עם הרשאות ה-IAM המתאימות. :

    gcloud iam service-accounts sign-jwt claim.jwt output.jwt \
      --iam-account=SERVICE_ACCOUNT_EMAIL_ADDRESS
    

    ה-JWT החתום נשמר ב-output.jwt.

    פרטים נוספים זמינים במאמר מתן ההרשאות הנדרשות ובמדריך לשורת הפקודה gcloud במסמכי העזרה של Google Cloud.

  4. משתמשים ב-curl כדי ליצור רכב לבדיקה ב-Fleet Engine:

    נסיעות על פי דרישה

        curl -X POST "https://fleetengine.googleapis.com/v1/providers/PROJECT_ID/vehicles?vehicleId=VEHICLE_ID" \
          -H "Content-type: application/json" \
          -H "Authorization: Bearer $(cat output.jwt)" \
          --data-binary @- << EOM
        {
          "name": "providers/PROJECT_ID/vehicles/VEHICLE_ID"
        }
        EOM
        {
          "vehicleState": "OFFLINE",
          "supportedTripTypes": ["EXCLUSIVE"],
          "maximumCapacity": 4,
          "vehicleType": {"category": "AUTO"},
          "attributes": [{"key": "on_trip", "value": "false"}]
        }
        

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

        {
          "name": "providers/PROJECT_ID/vehicles/VEHICLE_ID"
        }
        

    משימות מתוזמנות

        curl -X POST "https://fleetengine.googleapis.com/v1/providers/PROJECT_ID/deliveryVehicles?deliveryVehicleId=DELIVERY_VEHICLE_ID" \
          -H "Content-type: application/json" \
          -H "Authorization: Bearer $(cat output.jwt)" \
          --data-binary @- << EOM
        {
          "name": "providers/PROJECT_ID/deliveryVehicles/DELIVERY_VEHICLE_ID"
        }
        EOM
        

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

        {
          "name": "providers/PROJECT_ID/deliveryVehicles/DELIVERY_VEHICLE_ID"
        }
        

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