このガイドでは、ユーザーが非ブロッキングな単一の最適化リクエストを実行できるようにする 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