サブサブスクライバの作成

API Gatewayを使用してバックエンド・サービスに送信されるリクエストの数を監視および管理するための戦略の一環としてサブスクライバを作成する方法をご紹介します。

APIプラン・マネージャとして、顧客(APIコンシューマ)のサブスクライバを作成して、APIへのアクセス権を付与する使用プランを指定できます。「使用プランおよび権限、サブスクライバおよびクライアント・トークン」を参照してください。

サブスクライバ定義には、APIクライアントを一意に識別するためのクライアント名とクライアント・トークンが含まれ、APIへのアクセス権を付与する使用プランを指定します。

次に注意してください:

  • サブスクライバを作成する前に、サブスクライバがサブスクライブする使用プランの少なくとも1つがすでに存在している必要があります(使用プランの作成を参照)。
  • サブスクライバを定義し、複数のAPIクライアントを指定した場合、使用プランの権限のレート制限と割当て制限は、すべてのAPIクライアント間で共有されます。
  • サブスクライバを作成したら、後でクライアントを追加および削除し、クライアント・トークンを変更できます。
  • サブスクライバ定義でAPIクライアントに指定するクライアント・トークンは、使用計画のレポートのみを目的としています。APIクライアントの認証および認可にこのトークンを使用しないでください。かわりに、APIクライアントの認証および認可に認可プロバイダ・ファンクションまたはJSON Webトークン(JWT)を使用します。APIデプロイメントへの認証と認可の追加を参照してください。
  • サブスクライバがサブスクライブされている複数の使用プランにAPIデプロイメントが表示される場合、サブスクライブされた使用プランのリストの最初の使用プランがAPIデプロイメントへのアクセスに使用されます。サブスクライブ済使用プランのリストの順序を変更できます。
  • サブスクライバが1つの使用プランにサブスクライブされていて、サブスクライバを新しい使用プランにサブスクライブする場合、Oracleでは、この操作を2つのステップで実行することをお薦めします。まず、新規使用プランをサブスクライバ定義に、サブスクライブ済使用プランのリストの最初の使用プランとして追加し、変更を保存します。次に、サブスクライブされた使用プランのリストから前の使用プランを削除し、変更を保存します。
  • 最初にAPIクライアントまたはターゲット使用プラン(あるいはその両方)がないサブスクライバ定義を作成し、後で追加できます。サブスクライバ定義にAPIクライアントとターゲット使用プランの両方を追加するまで、サブスクライバはAPIにアクセスできません。

次の方法でサブスクライバを作成できます。

  • コンソールの使用
  • CLIおよびJSONファイルの使用

コンソールを使用したサブスクライバの作成

コンソールを使用して新しいサブスクライバを作成し、1つ以上の使用プランにサブスクライブするには:

  1. 「サブスクライバ」リスト・ページで、「サブスクライバの作成」を選択します。リスト・ページの検索に関するヘルプが必要な場合は、サブスクライバのリストを参照してください。
  2. サブスクライバに次の値を指定します。

    • 名前: 新しいサブスクライバの名前。たとえば、Premium-subscriberです。機密情報の入力は避けてください。
    • コンパートメント:新しいサブスクライバが属するコンパートメント。
    • クライアント:サブスクライバがサブスクライブされている使用計画を使用してAPIデプロイメントにアクセスする1つ以上のAPIクライアント。APIクライアントごとに、次を指定します:
      • 名前: APIクライアントの選択名。クライアント名はサブスクライバ内で一意である必要があります。たとえば、androidです。推奨事項:使用プラン・データの収集および分析のためにAPIコンシューマに提供する可能性があるため、わかりやすい名前を指定します。
      • トークン: APIクライアントを一意に識別する任意の文字列。指定するトークンは、現在のリージョンのテナンシ内で一意である必要があり、128文字以下にする必要があります。たとえば、abc123def456ghi789jklです。適切な識別子がすでに存在しない場合は、「トークンの生成」を選択して作成します。
        ノート

        サブスクライバ定義でAPIクライアントに指定するトークンは、使用計画のレポートのみを目的としています。APIクライアントの認証および認可にこのトークンを使用しないでください。かわりに、APIクライアントの認証および認可に認可プロバイダ・ファンクションまたはJSON Webトークン(JWT)を使用します。APIデプロイメントへの認証と認可の追加を参照してください。
    • 使用プラン: 「使用プランの追加」を選択して、サブスクライバを1つ以上の使用プランにサブスクライブします。
  3. オプションで、「拡張オプション」を選択し、次を指定します:
    • タグ: リソースの作成権限がある場合は、そのリソースにフリーフォーム・タグを適用する権限もあります。定義済タグを適用するには、タグ・ネームスペースを使用する許可が必要です。タグ付けの詳細は、リソース・タグを参照してください。タグを適用するかどうかがわからない場合は、このオプションをスキップするか、管理者に問い合せてください。後でタグを適用できます。
  4. 「作成」を選択してサブスクライバを作成します。

    新しいサブスクライバの作成には数分かかる場合があります。作成中のサブスクライバは、「使用計画」ページに「作成中」の状態で表示されます。正常に作成されると、新規サブスクライバが「アクティブ」の状態で表示されます。

    また、新しいサブスクライバをすぐに作成するのではなく、リソース定義をTerraform構成として保存するために「スタックとして保存」を選択して、リソース・マネージャおよびTerraformを使用して後で作成することもできます。リソース定義からのスタックの保存の詳細は、「リソース作成ページからのスタックの作成」を参照してください。

  5. サブスクライバがアクティブ状態で表示されるまで数分以上待機した場合(またはサブスクライバ作成操作が失敗した場合):

    1. サブスクライバの名前を選択し、「作業リクエスト」を選択してサブスクライバ作成操作の概要を表示します。
    2. 「サブスクライバの作成」操作を選択すると、操作に関する詳細情報(エラー・メッセージ、ログ・メッセージ、関連付けられたリソースのステータスなど)が表示されます。
    3. サブスクライバの作成操作が失敗し、作業リクエスト情報から問題の原因を診断できない場合は、APIゲートウェイのトラブルシューティングを参照してください。

CLIおよびJSONファイルを使用したサブスクライバの作成

新しいサブスクライバを作成し、CLIを使用して1つ以上の使用プランにサブスクライブするには:

  1. 任意のJSONエディタを使用して、次のフォーマットでサブスクライバ定義ファイルを作成します:
    {
        "displayName": "<subscriber-name>",
        "clients": [
            {"name": "<api-client-name-one>", "token": "<unique-identifier>"}
        ],
        "usagePlans": ["<usage-plan-ocid>"],
        "compartmentId": "<compartment-ocid>",
        "freeformTags": {},
        "definedTags": {}
    }
    ここでは:
    • "displayName": "<subscriber-name>"は、新しいサブスクライバの名前です。たとえば、"displayName": "Premium-subscriber"です。機密情報の入力は避けてください。
    • "clients": [{...}]は、サブスクライバがサブスクライブされている使用プランを使用してAPIデプロイメントにアクセスする1つ以上のAPIクライアントを指定します。APIクライアントごとに、次を指定します:
      • "name": "<api-client-name>"は、APIクライアント用に選択した名前です。クライアント名はサブスクライバ内で一意である必要があります。たとえば、"name": "android"です。推奨事項:使用プラン・データの収集および分析のためにAPIコンシューマに提供する可能性があるため、わかりやすい名前を指定します。機密情報の入力は避けてください。
      • "token": "<unique-identifier>"は、APIクライアントを一意に識別するために選択した文字列です。指定するトークンは、現在のリージョンのテナンシ内で一意である必要があり、128文字を超えることはできません。たとえば、"token": "abc123def456ghi789jkl"です。
        ノート

        サブスクライバ定義でAPIクライアントに指定するトークンは、使用計画のレポートのみを目的としています。APIクライアントの認証および認可にこのトークンを使用しないでください。かわりに、APIクライアントの認証および認可に認可プロバイダ・ファンクションまたはJSON Webトークン(JWT)を使用します。APIデプロイメントへの認証と認可の追加を参照してください。
    • "usagePlans": [{...}]は、サブスクライバをサブスクライブする1つ以上の使用プランのOCIDを指定します。使用プランは、サブスクライバと同じコンパートメントに属することができますが、する必要はありません。たとえば、"usagePlans": "ocid1.usageplan.oc1..aaaaaaaaab______gap"です。
    • "compartmentId": "<compartment-OCID>"は、新しいサブスクライバが属するコンパートメントのOCIDです。たとえば、"ocid1.compartment.oc1..aaaaaaaa7______ysq"です。

    例:

    {
        "displayName": "MySubscriber",
        "clients": [
            {"name": "android", "token": "XXXXXX"},
            {"name": "iOS", "token": "YYYYYY"}
        ],
        "usagePlans": ["ocid1.usageplan.oc1..aaaaaaaaab______gap", "ocid1.usageplan.oc1..aaaaaaaaab______eya"],
        "compartmentId": "ocid1.compartment.oc1..aaaaaaaa7______ysq",
        "freeformTags": {},
        "definedTags": {}
    }
  2. 任意の名前でサブスクライバ定義ファイルを保存します。例: premium-subscriber.json
  3. サブスクライバ定義ファイルを使用して、CLIを使用してサブスクライバを作成します。
    1. CLIを使用するためにクライアント環境を構成します(APIゲートウェイ開発用のCLIを使用するためのクライアント環境の構成)。
    2. コマンド・プロンプトを開き、oci api-gateway subscriber createを実行して、サブスクライバ定義ファイルからサブスクライバを作成します。

      oci api-gateway subscriber create --from-json file://<subscriber-definition>.json

      ここでは:

      • --from-json file://<subscriber-definition>.jsonは、パスを含むサブスクライバ定義を含むファイルです。

      例:

      oci api-gateway subscriber create --from-json file://premium-subscriber.json

      コマンドへのレスポンスには、次が含まれます:

      • サブスクライバのOCIDおよびその他の詳細。
      • ライフサイクルの状態(たとえば、ACTIVE、FAILED)。
      • サブスクライバを作成する作業リクエストのID(作業リクエストの詳細は、完了、取消または失敗の後の7日間利用可能です)。

      サブスクライバがアクティブになる(または要求が失敗する)までコマンドが制御を返すのを待機する場合は、次のいずれかまたは両方のパラメータを含めます:

      • --wait-for-state ACTIVE
      • --wait-for-state FAILED

      例:

      oci api-gateway subscriber create --from-json file://premium-subscriber.json --wait-for-state ACTIVE

      作業リクエストが正常に作成され、サブスクライバがアクティブになるまで、サブスクライバを使用できないことに注意してください。

    3. (オプション)サブスクライバのステータスを確認するには、次を入力します。

      oci api-gateway subscriber get --subscriber-id <subscriber-ocid>
    4. (オプション)サブスクライバを作成している作業リクエストのステータスを確認するには、次を入力します:

      oci api-gateway work-request get --work-request-id <work-request-ocid>
    5. (オプション)サブスクライバを作成している作業リクエストのログを表示するには、:

      oci api-gateway work-request-log list --work-request-id <work-request-ocid>
    6. (オプション)サブスクライバを作成している作業リクエストが失敗し、エラー・ログを確認するには、次を入力します:

      oci api-gateway work-request-error --work-request-id <work-request-ocid>

    CLIの使用の詳細は、コマンドライン・インタフェース(CLI)を参照してください。CLIコマンドで使用できるフラグおよびオプションの完全なリストについては、CLIのヘルプを参照してください。