仮想サービス・ルート表の作成

サービス・メッシュで仮想サービスの仮想サービス・ルート表を作成します。

仮想サービス・ルート表を作成するには、少なくとも1つの仮想デプロイメントが必要です。

重要

続行する前に、仮想サービス・ルート表リソースに適切なOCIポリシーを設定する必要があります。詳細は、仮想サービス・ルート表に必要なIAMポリシーを参照してください。
    1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「コンテナおよびアーティファクト」で、「サービス・メッシュ」をクリックします。
    2. 「サービス・メッシュ」をクリックします。
    3. 「サービス・メッシュ」ページの左側にあるコンパートメントのリストから、コンパートメントを選択します。
    4. メッシュのリストから、ルート表を作成する仮想サービスがあるメッシュ名をクリックします。
    5. メッシュの詳細ページの「仮想サービス」表で、ルート表を作成する仮想サービスの名前をクリックします。
    6. 仮想サービスの詳細ページの「リソース」で、「ルート表」をクリックし、次に「ルート表の作成」をクリックします。
    7. 「ルート表の作成」パネルで、次の詳細を指定します:
      • 名前: 仮想サービス・ルート表の名前。名前は同じ仮想サービス内で一意である必要があり、作成後に変更できません。名前は、文字またはアンダースコアで始まり、文字、数字、ハイフンまたはアンダースコアが続く必要があります。長さは1から255文字です。機密情報を入力しないでください。
      • 説明: (オプション)仮想サービスのルート表の説明。フィールドは変更可能です。機密情報を入力しないでください。
      • 優先度:ルート表の優先度を1から1000に設定します。デフォルトは500です。数値が小さいほど優先度が高くなります。同じ優先度で、ルート表は、最も新しいルート表が最も高い優先度で作成された時間に基づいて優先順位付けされます。
      • コンパートメント: 仮想サービス・ルート表を作成するコンパートメント。デフォルト・コンパートメントは前に選択したコンパートメントですが、作業権限を持つ任意のコンパートメントを選択できます。
      • ルート・ルール: このルールの条件および宛先を定義します。
        • プロトコル: HTTPとTCPの間で選択します。HTTPを選択した場合、次の詳細を指定します。
          • リクエスト・タイムアウト(ミリ秒): ターゲット・サービスがリクエストに応答する最大期間(ミリ秒)。指定した場合、タイムアウト値はHTTPベースのルート・ルールのデフォルトのタイムアウト15秒をオーバーライドし、isGrpcがtrueの場合は無効(タイムアウトなし)になります。値0を設定すると、そのタイムアウトは無効になります。

            ターゲット・サービスからのレスポンスをストリーミングする場合は、タイムアウトを無効にしたままにするか、十分に高い値を設定することを検討してください。

          • パス・タイプ: 指定されたパスのタイプ。デフォルトのPREFIXオプションは、パスをエンドポイントへの接頭辞として処理し、サポートされている唯一のオプションです。pathTypeが指定されていない場合、デフォルトが使用されます。
          • パス: このルートへのパス(/mypathなど)。ルート(「/」)にデフォルト設定するパス値を指定しません。ルート値を指定せずにパスを指定すると、ルールによってルート(/)がパスの先頭に付加されます。
          • gRPC:選択すると、content-typeヘッダーにapplication/grpcまたは様々なapplication/grpc+値の1つが含まれていることがチェックされます。
      • 宛先:このルートの宛先仮想デプロイメントを選択します。
        • 仮想デプロイメント:仮想デプロイメントを選択します。
        • ポート: 1から65535の範囲のポートを選択します。このルールで許可されるポートは1つのみです。ポートを指定しない場合、ルールは仮想デプロイメントのすべてのポートをターゲットとします。
          注意

          メッシュ・リソースでは、15000、15003、15006および9901のサービス・メッシュ予約済ポートを使用しないでください。
        • 重み:この宛先の重み。宛先が1つのみ作成されている場合、値はデフォルトで100になります。複数の宛先を作成する場合は、宛先ごとに1から100の値を指定できます。合計すると、すべての宛先の加重の合計が100になる必要があります。
        • 宛先をさらに追加するには、「+別の宛先ペアの追加」をクリックします。
      • さらにルールを追加するには、「+別のルールの追加」をクリックします。
    8. (オプション)仮想サービス・ルート表にタグを追加するには、「拡張オプションの表示」をクリックします。タグ付けの詳細は、リソース・タグを参照してください。
    9. 「ルート表の作成」をクリックします。
  • virtual-service-route-table createで使用可能な操作を確認するには、次を使用します:

    oci service-mesh virtual-service-route-table create -h

    仮想サービス・ルート表を作成するには、oci service-mesh virtual-service-route-table createオプションを使用します:

    oci service-mesh virtual-service-route-table create --name "<name>" --compartment-id <compartmentId> --virtual-service-id <virtualServiceId> --route-rules <rules> --description <description> --priority <priority>

    ここでは:

    • <name> (immutable): 仮想サービス・ルート表の名前。名前は同じ仮想サービス内で一意である必要があり、作成後に変更できません。名前は、文字またはアンダースコアで始まり、文字、数字、ハイフンまたはアンダースコアが続く必要があります。長さは1から255文字です。機密情報を入力しないでください。
    • <compartmentId> (オプション): 仮想サービス・ルート表が属するコンパートメントのOCID。
    • <virtualServiceId>: この仮想サービスのルート表が作成される仮想サービスのOCID。
    • <rules>
      • <type>: HTTPTCPおよびTLS_PASSTHROUGHプロトコルを選択します。TLS_PASSTHROUGHが選択されている場合、プロキシはTLSを管理しません。プロキシは、TLSを独自に管理するアプリケーションに、暗号化されたデータをそのまま渡します。

        HTTPオプション:

        • <path>: このルートへのパス(/mypathなど)。ルート(「/」)にデフォルト設定するパス値を指定しません。ルート値を指定せずにパスを指定すると、ルールによってルート(/)がパスの先頭に付加されます。
        • <pathType>: 指定されたパスのタイプ。デフォルトのPREFIXオプションは、パスをエンドポイントへの接頭辞として処理し、サポートされている唯一のオプションです。pathTypeが指定されていない場合、デフォルトが使用されます。
        • <isGrpc>: trueに設定すると、content-typeヘッダーにapplication/grpcまたは様々なapplication/grpc+値の1つが含まれていることがチェックされます。
      • <destinations>: このルートの仮想デプロイメントの宛先を定義します。少なくとも1つの出力先が必要です。
        • <virtualDeploymentId>リクエストがルーティングされる仮想デプロイメントのOCID。
        • <weight>: この宛先の重み。宛先が1つのみ作成されている場合、値はデフォルトで100になります。複数の宛先を作成する場合は、宛先ごとに1から100の値を指定できます。合計すると、すべての宛先の加重の合計が100になる必要があります。
        • <port>:
          1から65535の範囲のポートを選択します。このルールで許可されるポートは1つのみです。ポートを指定しない場合、ルールは仮想デプロイメントのすべてのポートをターゲットとします。
          注意

          メッシュ・リソースでは、15000、15003、15006および9901のサービス・メッシュ予約済ポートを使用しないでください。
    • <description> (オプション): 仮想サービスのルート表の説明。フィールドは変更可能です。機密情報を入力しないでください。
    • <priority> (オプション): ルート表の優先度を1から1000に設定します。デフォルトは500です。数値が小さいほど優先度が高くなります。同じ優先度で、ルート表は、最も新しいルート表が最も高い優先度で作成された時間に基づいて優先順位付けされます。

    次に例を示します。

    oci service-mesh virtual-service-route-table create --compartment-id ocid1.compartment.oc1..aaa... --virtual-service-id ocid1.meshvirtualservice.oc1..aaa... --name "virtual-service-route-table" --route-rules '[{"destinations":[{"port":443,"type":"VIRTUAL_DEPLOYMENT","virtualDeploymentId":"ocid1.meshvirtualdeployment.oc1..aaa...","weight":100}],"isGrpc":true,"path":"/service-path","pathType":"PREFIX","type":"HTTP"}]' --description "my virtual-service-route-table" --priority 10

    コマンドへの応答は次のとおりです。

    • 仮想サービス・ルート表のOCID
    • ライフサイクルの状態(ACTIVE、FAILEDなど)。
    • 仮想サービス・ルート表を作成する作業リクエストのID(作業リクエストの詳細は、完了、取消または失敗の後の7日間使用できます)。

    仮想サービスがアクティブになるか、リクエストが失敗するまでコマンドが制御を返すのを待機する場合は、次のいずれかまたは両方のパラメータを含めます。

    • --wait-for-state SUCCEEDED
    • --wait-for-state FAILED

    次に例を示します。

    oci service-mesh virtual-service-route-table create --compartment-id ocid1.compartment.oc1..aaa... --virtual-service-id ocid1.meshvirtualservice.oc1..aaa... --name "virtual-service-route-table" --route-rules '[{"destinations":[{"port":443,"type":"VIRTUAL_DEPLOYMENT","virtualDeploymentId":"ocid1.meshvirtualdeployment.oc1..aaa...","weight":100}],"isGrpc":true,"path":"/service-path","pathType":"PREFIX","type":"HTTP"}]' --description "my virtual-service-route-table" --priority 10 --wait-for-state SUCCEEDED
    ヒント

    作業リクエストが正常に作成されて仮想サービスがアクティブになるまで、仮想サービスを使用できません。

    仮想サービスのステータスの確認

    仮想サービス・ルート表のステータスを表示するには、次のように入力します:

    oci service-mesh virtual-service-route-table get --virtual-service-route-table-id <virtual-service-route-table-ocid>

    仮想サービスを作成する作業リクエストのステータスを表示するには、サービス・メッシュ作業リクエストを参照してください。

    JSONファイルを使用した仮想サービス・ルート表の作成

    または、createコマンドにJSONファイルを指定して仮想サービス・ルート表を作成します。

    1. 仮想サービス・ルート表のサンプルJSONファイルを生成します:

      oci service-mesh virtual-service-route-table create --generate-full-command-json-input
    2. 前のステップで生成されたサンプル出力を含むJSONファイルを作成し、フィールドを適切な値で更新します。
    3. virtual-service-route-table createコマンドにJSONファイルを指定します:

      oci service-mesh virtual-service create --from-json file:///<filename>

    CLIの使用方法の詳細は、次を参照してください:

  • CreateVirtualServiceRouteTable操作を使用して、仮想サービス・ルート表を作成します。