פתרון בעיות ב-Cloud Location Finder

בדף הזה מוסבר איך לפתור בעיות ב-Cloud Location Finder.

ה-API מחזיר שגיאת 403

הבעיה הבאה מתרחשת כש:

התכונה Cloud Location Finder לא מופעלת בפרויקט

{
  "error": {
    "code": 403,
    "message": "Cloud Location Finder API has not been used in project PROJECT_ID before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudlocationfinder.googleapis.com/overview?project=PROJECT_ID then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
    "status": "PERMISSION_DENIED",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "SERVICE_DISABLED",
        "domain": "googleapis.com",
        "metadata": {
          "activationUrl": "https://console.developers.google.com/apis/api/cloudlocationfinder.googleapis.com/overview?project=PROJECT_ID",
          "serviceTitle": "Cloud Location Finder API",
          "service": "cloudlocationfinder.googleapis.com",
          "containerInfo": "PROJECT_ID",
          "consumer": "projects/PROJECT_ID"
        }
      },
      {
        "@type": "type.googleapis.com/google.rpc.LocalizedMessage",
        "locale": "en-US",
        "message": "Cloud Location Finder API has not been used in project PROJECT_ID before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudlocationfinder.googleapis.com/overview?project=PROJECT_ID then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry."
      },
      {
        "@type": "type.googleapis.com/google.rpc.Help",
        "links": [
          {
            "description": "Google developers console API activation",
            "url": "https://console.developers.google.com/apis/api/cloudlocationfinder.googleapis.com/overview?project=PROJECT_ID"
          }
        ]
      }
    ]
  }
}

כדי לפתור את הבעיה, צריך להפעיל את Cloud Location Finder API בפרויקט. הוראות מפורטות מופיעות במדריך למתחילים.

אין לכם הרשאה למשאב

{
  "error": {
    "code": 403,
    "message": "Permission 'cloudlocationfinder.cloudLocations.list' denied on resource '//cloudlocationfinder.googleapis.com/projects/PROJECT_ID/locations/global' (or it may not exist).",
    "status": "PERMISSION_DENIED",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "IAM_PERMISSION_DENIED",
        "domain": "cloudlocationfinder.googleapis.com",
        "metadata": {
          "resource": "projects/PROJECT_ID/locations/global",
          "permission": "cloudlocationfinder.cloudLocations.list"
        }
      }
    ]
  }
}

כדי לפתור את הבעיה, צריך להוסיף את התפקיד cloudlocationfinder.viewer לפרויקטים עם משאבים שרוצים להפנות אליהם בשאילתה. הוראות מפורטות מופיעות במדריך למתחילים.

ה-API מחזיר שגיאת 400

הבעיה הבאה מתרחשת כששאילתה לא תקינה:

$ curl -H "Authorization: Bearer $(gcloud auth print-access-token)" 'https://cloudlocationfinder.googleapis.com/v1/projects/PROJECT_ID/locations/global/cloudLocations?filter=cloud_location_type=FAKE_LOCATION'
{
  "error": {
    "code": 400,
    "message": "Bad usage: Invalid enum name \"FAKE_LOCATION\" for type `cloud.reliability.cloudlocationfinder.storage.CloudLocation.CloudLocationType`.",
    "status": "INVALID_ARGUMENT",
    "details": [
...
}

כדי לפתור את הבעיה, קוראים את הודעת השגיאה. הנחיות לגבי תחביר השאילתות ותחביר מקובל מופיעות במאמר הפניית API בארכיטקטורת REST.