Monetization Services のインストール

Monetization Services は Apigee Edge の拡張機能であるため、スタンドアロン プロセスとしては動作しません。Monetization Services は、既存の Apigee Edge 環境内で稼働します。ただしオールインワン(AIO)構成は例外です。Monetization Services は AIO 構成にインストールできません。

Monetization の要件

  • 複数の Management Server ノードを使用する Edge トポロジ(13 ノード構成など)に Monetization をインストールする場合は、Monetization をインストールする前に両方の Edge Management Server ノードをインストールする必要があります。
  • 複数の Postgres ノードがある Edge インストール環境に Monetization をインストールする場合は、Postgres ノードをマスター / スタンバイ モードで構成する必要があります。複数の Postgres マスターノードがある場合は、Monetization を Edge にインストールすることはできません。詳細については、Postgres のマスター / スタンバイ レプリケーションを設定するをご覧ください。
  • Monetization は、オールインワン(AIO)構成では使用できません。

インストールの概要

次の手順は、既存の Apigee Edge インストール環境に Monetization Services を追加する方法を示しています。

  • apigee-setup ユーティリティを使用して Apigee Management Server ノードを更新し、カタログ管理、制限と通知の設定、請求、レポートなどの Monetization Services を有効にします。

    複数の Management Server ノードが存在する場合は(13 ノード構成など)、Monetization をインストールする前に両方の Edge Management Server ノードをインストールする必要があります。

  • apigee-setup ユーティリティを使用して Apigee Message Processor を更新し、トランザクション記録ポリシーや制限適用などの Monetization Services のランタイム コンポーネントを有効にします。複数の Message Processor が存在する場合は、それらすべてに Monetization をインストールします。
  • Edge 組織に対して Monetization オンボーディング プロセスを行います。
  • Apigee Developer Services ポータル(略して「ポータル」)で収益化がサポートされるようにします。詳細については、デベロッパー ポータルで収益化を構成するをご覧ください。

Monetization 用のサイレント構成ファイルを作成する

次の例は、Monetization インストール用のサイレント構成ファイルを示しています。構成の必要に応じて、このファイルを編集します。setup.sh を実行するときに -f オプションでこのファイルを指定します。

# Edge configuration properties
    # Specify IP address or DNS name of node.
    IP1=192.168.1.1  # Management Server, OpenLDAP, UI, ZooKeeper, Cassandra
    IP2=192.168.1.2  # ZooKeeper, Cassandra
    IP3=192.168.1.3  # ZooKeeper, Cassandra
    IP4=192.168.1.4  # Router, Message Processor
    IP5=192.168.1.5  # Router, Message Processor
    IP6=192.168.1.6  # Qpid
    IP7=192.168.1.7  # Qpid
    IP8=192.168.1.8  # Postgres
    IP9=192.168.1.9  # Postgres

    # Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
    HOSTIP=$(hostname -i)

    # Edge sys admin credentials
    ADMIN_EMAIL=your@email.com
    APIGEE_ADMINPW=yourPassword    # If omitted, you are prompted for it.

    # Specify the Management Server port.
    APIGEE_PORT_HTTP_MS=8080

    #
    # Monetization configuration properties.
    #
    # Postgres credentials from Edge installation.
    PG_USER=apigee    # Default from Edge installation
    PG_PWD=postgres    # Default from Edge installation

    # Specify Postgres server.
    MO_PG_HOST="$IP8"    # Only specify one Postgres node.

    # Create a Postgres user for Monetization.
    # Default username is "postgre".
    # If you specify a different user, that user must already exist.
    MO_PG_USER=postgre
    MO_PG_PASSWD=moUserPWord

    # Specify one ZooKeeper host.
    # Ensure this is a ZooKeeper leader node in a multi-datacenter environment.
    ZK_HOSTS="$IP2"

    # Specify Cassandra information.
    # Ensure CASS_HOSTS is set to the same value as when you installed Edge.
    # Must use IP addresses for CASS_HOSTS, not DNS names.
    CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1"

    # Default is "Apigee", unless it was changed during Edge install.
    CASS_CLUSTERNAME=Apigee

    # Cassandra uname/pword required only if you enabled Cassandra authentication.
    # If your password uses special characters, wrap it in single quotes.
    # CASS_USERNAME=
    # CASS_PASSWORD=

    # Specify the region.
    # Default is dc-1 unless you are in a multi-datacenter environment.
    REGION=dc-1

    # If your Edge config file did not specify SMTP information, add it.
    # Monetization requires an SMTP server.
    SMTPHOST=smtp.gmail.com
    SMTPPORT=465
    SMTPUSER=your@email.com
    SMTPPASSWORD=yourEmailPassword
    SMTPSSL=y
    SMTPMAILFROM="My Company <myco@company.com>"

:

  • Edge 構成ファイルに SMTP 情報が指定されていない場合は、この情報を追加してください。Monetization には、SMTP サーバーが必要です。
  • 単一のデータセンター インストールでは、すべての ZooKeeper ノードがデフォルトでリーダーとして構成されています。複数のデータセンター間で Edge をインストールする場合は、一部の ZooKeeper ノードがオブザーバとして構成されます。上記の ZK_HOSTS プロパティにより、複数データセンター インストールにおけるリーダーノードが指定されていることを確認してください。
  • Cassandra 認証を有効にする場合は、次のプロパティを使用して Cassandra のユーザー名とパスワードを渡すことができます。
    CASS_USERNAME
        CASS_PASSWORD

Monetization Services をすべての Management Server と統合する

Management Server ノード上の Monetization を統合するには、次の手順に従います。

  1. 複数の Management Server ノードを使用する Edge トポロジ(13 ノード構成など)に Monetization をインストールする場合は、Monetization をインストールする前に両方の Management Server ノードがインストールされていることを確認します。
  2. Management Server ノードでセットアップ スクリプトを実行します。
    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f configFile

    -p mo オプションは、Monetization を統合することを指定します。

    構成ファイルは「apigee」ユーザーがアクセス可能または読み取り可能である必要があります。

  3. 複数の Management Server ノードに Monetization をインストールする場合は、2 番目の Management Server ノードでステップ 2 を繰り返します。

構成が正常に行われると、Monetization Services の RDBMS スキーマが PostgreSQL データベースに作成されます。これで、Monetization Services とその関連コンポーネントは Postgres Server に統合されました。

Monetization Services をすべての Message Processor と統合する

すべての Message Processor ノードの Monetization を統合するには、次の手順に従います。

  1. 最初の Message Processor ノードで、コマンド プロンプトに対して次のセットアップ スクリプトを実行します。
    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f configFile

    -p mo オプションは、Monetization を統合することを指定します。

    構成ファイルは「apigee」ユーザーがアクセス可能または読み取り可能である必要があります。

  2. すべての Message Processor ノードでこの手順を繰り返します。

構成が正常に行われると、Message Processor は Monetization Services で更新されます。これで、Monetization Services とその関連コンポーネントは Message Processor に統合されました。

Monetization オンボーディング

新しい組織を作成して Monetization を有効にするには:

  1. 新しい組織を作成する場合と同じように組織を作成します。詳細については、組織のオンボーディングをご覧ください。
  2. 組織の収益化を有効にするの説明に従って Monetization Provisioning API を使用します。これを行うには、システム管理者権限が必要です。

次回 Edge UI にログインすると、組織の最上位レベルメニューに Monetization の項目が追加されています。

ポータルで収益化をサポートするには、デベロッパー ポータルで収益化を構成するをご覧ください。

Monetization インストールに Management Server ノードを追加する

既存の Edge インストールに Management Server を追加する場合、新しい Management Server に Monetization Services を追加して、すべての Management Server を通信できるように構成する必要があります。

Management Server を追加するには:

  1. 新しい Management Server をインストールします。
  2. 新しい Management Server に Monetization をインストールします。
  3. 既存の Management Server で次のコマンドを実行します。
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-management-server mint-configure-mgmt-cluster
  4. 既存の Management Server を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. 新しい Management Server で次のコマンドを実行します。
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-management-server mint-configure-mgmt-cluster
  6. 新しい Management Server を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

追加構成

PDF ファイルとして請求書を提供する

Monetization では、エンドユーザーに請求書が HTML 形式で表示されます。請求書を PDF ファイルとして提供するために、Monetization を PDF 生成が可能な課金システムと統合したり、サポート対象のサードパーティによる PDF ライブラリにライセンスを付与したりできます。

組織の設定を構成する

組織の属性を追加または更新するには、次の例のように PUT リクエストを使用できます。

curl -u SYS_ADMIN_EMAIL:SYS_ADMIN_PASSWORD \
      -v http://ms_IP:8080/v1/organizations/orgId -d 'org object with attributes' -X PUT

Monetization から組織の設定が返されます。次に例を示します。

{
      ...
      "displayName": "Orgnization name",
      "name": "org4",
      "properties": {
        "property": [
          ...
          {
            "name": "MINT_CURRENCY",
            "value": "USD"
          },
          {
            "name": "MINT_COUNTRY",
            "value": "US"
          },
          {
            "name": "MINT_TIMEZONE",
            "value": "GMT"
          }
        ]
      }
    }

次の表に、収益化組織の構成に使用可能な組織レベルの属性を示します。

属性 説明
MINT_TAX_MODEL

許容される値は "DISCLOSED"、"UNDISCLOSED"、"HYBRID"(デフォルトは null)

MINT_CURRENCY

ISO 通貨コード(デフォルトは null)

MINT_TAX_NEXUS

税金のネクサス(デフォルトは null)

MINT_DEFAULT_PROD_TAX_CATEGORY

デフォルトの製品税のカテゴリ(デフォルトは null)

MINT_IS_GROUP_ORG

IS グループ組織(デフォルトは "false")

MINT_HAS_BROKER

ブローカーを持つかどうか(デフォルトは false)

MINT_TIMEZONE

タイムゾーン(デフォルトは null)

MINT_TAX_ENGINE_EXTERNAL_ID

税金エンジン ID(デフォルトは null)

MINT_COUNTRY

組織の国(デフォルトは null)

MINT_REG_NO

組織の登録番号。英国では納税者番号とは異なる番号が与えられます(デフォルトは null)。

MINT_BILLING_CYCLE_TYPE

"PRORATED"、"CALENDAR_MONTH"(デフォルトは "CALENDAR_MONTH")

MINT_SUPPORTED_BILLING_TYPE

"PREPAID" / "POSTPAID" / "BOTH"(デフォルトは "PREPAID")

MINT_IS_SEPARATE_INV_FOR_FEES

料金の請求書を別に生成する必要があるかどうかを示します(デフォルトは "false")。

MINT_ISSUE_NETTING_STMT

相殺明細書を発行する必要があるかどうかを示します(デフォルトは "false")。

MINT_NETTING_STMT_PER_CURRENCY

相殺明細書を通貨ごとに生成する必要があるかどうかを示します(デフォルトは "false")。

MINT_HAS_SELF_BILLING

組織が自己請求を持つかどうかを示します(デフォルトは "false")。

MINT_SELF_BILLING_FOR_ALL_DEV

すべてのデベロッパーについて組織が自己請求を持つかどうかを示します(デフォルトは "false")。

MINT_HAS_SEPARATE_INV_FOR_PROD

組織がプロダクトごとに個別の請求書を持つかどうかを示します(デフォルトは "false")。

MINT_HAS_BILLING_ADJUSTMENT

組織が請求額の調整をサポートしているかどうかを示します(デフォルトは "false")。

features.isMonetizationEnabled

Monetization に固有のメニューを表示するために管理 UI によって使用されます(デフォルトは "false")。

ui.config.isOperator

プロバイダを運営者と組織のどちらとして表示するかを決定するために管理 UI によって使用されます(デフォルトは "true")。

管理 UI を使用してビジネス組織の設定を行う場合は、Monetization の使用をご覧ください。

収益化制限

収益化制限を適用するには、API プロキシに Monetization Limits Check ポリシーを接続します。具体的には、このポリシーは次の条件の下でトリガーされます。

  • 収益化対象の API を利用するデベロッパーが登録されていないか、料金プランに加入していない。
  • デベロッパーが、定期購入した料金プランのトランザクション ボリュームを超過した。
  • デベロッパーの前払いアカウント残高に達したか、後払い利用限度額に達した。

上記のような状況が発生すると、Monetization Limits Check ポリシーの違反とみなされ、API 呼び出しがブロックされます。このポリシーにより Raise Fault ポリシーが拡張され、返されるメッセージをカスタマイズできます。適用可能な条件はビジネスに関する変数から導き出されます。

詳細については、API プロキシに収益化制限を適用するをご覧ください。