このガイドでは、ユーザーが単一の非ブロッキング最適化リクエストを行うことができる OptimizeToursLongRunning
API メソッドと OptimizeToursUri
API メソッドの試験運用について説明します。非ブロッキング最適化では、ユーザーはメソッドから Operation proto をすぐに受け取ります。この Operation proto を使用して、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
ステータスは、送信された単一の 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