単一の非ブロッキング Optimization API メソッド

このガイドでは、ユーザーが非ブロッキングな単一の最適化リクエストを実行できるようにする OptimizeToursLongRunning メソッドと OptimizeToursUri API メソッドの試験運用版について説明します。非ブロッキング最適化では、ユーザーはメソッドから Operation プロトコルをすばやく受け取ります。このプロトコルは、GetOperation を呼び出して最適化のステータスを参照するために使用できます。詳細については、長時間実行オペレーションをご覧ください。

これらの非ブロッキング メソッドは、最適化の実行中にクライアントがサーバーへの接続を維持する必要がないため、ブロッキング OptimizeTours メソッドよりも信頼性が高くなります。また、これらの新しいメソッドでは、各最適化が単一の長時間実行オペレーション(LRO)に関連付けられているため、BatchOptimizeTours と比較して障害のデバッグが容易になります。

最適化リクエストをインライン化する場合は OptimizeToursLongRunning メソッドを使用します。Google Cloud Storage を使用してリクエストと読み取りレスポンスをアップロードする場合は、OptimizeToursUri メソッドを使用します。

OptimizeToursLongRunning

例: OptimizeToursLongRunning リクエストを実行する

リクエストを行う前に、次のパラメータを環境に適した値に置き換えます。

  • OAuth を使用するの説明に沿って、アプリケーションのデフォルト認証情報が構成されていることを確認します。
  • PROJECT_NUMBER_OR_ID に Cloud プロジェクトの番号または ID を設定します。

    次のコマンドは、Route Optimization API に OptimizeToursLongRunning リクエストを送信し、それに関連付けられたオペレーション ID を受け取ります。GetOperation メソッドを使用して、オペレーションのステータスをクエリできます。オペレーションが完了すると、メタデータに最終的な OptimizeToursResponse も含まれます。

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursLongRunning' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
            "costPerKilometer": 1.0
          }
        ],
      }
    }
    EOM

OptimizeToursUri

BatchOptimizeTours と同様に、OptimizeToursUri を使用して、最適化リクエストとレスポンスを Google Cloud Storage に引き続き保存できます。Cloud Storage URI は OptimizeToursUri リクエスト メッセージで指定する必要があります。返される Operation ステータスは、送信された 1 つの OptimizeToursRequest にのみ関連付けられます。

例: OptimizeToursUri リクエストを実行する

リクエストを行う前に、次のパラメータを環境に適した値に置き換えます。

  • OAuth を使用するの説明に沿って、アプリケーションのデフォルト認証情報が構成されていることを確認します。
  • PROJECT_NUMBER_OR_ID に Cloud プロジェクトの番号または ID を設定します。

    次のコマンドは、Route Optimization API に OptimizeToursUri リクエストを送信し、それに関連付けられたオペレーション ID を受け取ります。GetOperation メソッドを使用して、オペレーションのステータスをクエリします。オペレーションが完了すると、OptimizeToursResponse はリクエストで指定された出力 URI パスにリモートで保存されます。

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursUri' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "input": {
        "uri": "gs://bucket/path/input/object.json"
      },
      "output": {
        "uri": "gs://bucket/path/output/object.json"
      }
    }
    EOM