Monetization Services のインストール

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

収益化の要件

  • 複数の 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 用のサイレント構成ファイルを作成する

次の例は、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 ノードの数が奇数の場合は、それらを voters として構成します。ZooKeeper ノードの数が偶数の場合、一部のノードは observers として構成されます。偶数のデータセンターにわたって Edge をインストールする場合は、一部の ZooKeeper ノードを observers として構成して、ボーターノードの数を奇数にする必要があります。ZooKeeper リーダー選出時に、1 つのボーターノードが leader として選出されます。上記の 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 ノードを追加する

Management Server を既存の Edge インストールに追加する場合は、新しい Management Server に Monetization サービスを追加し、すべての 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 組織の構成に使用できる組織レベルの属性を示します。

属性 説明
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 を使用してビジネス組織の設定を構成する場合は、 Edge で収益化にアクセスするをご覧ください。

収益化の制限

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

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

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

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