API Server をHeroku でホストする方法



CData API Server をHeroku に簡単にデプロイできます。API Server はRDB、NoSQL、フラットファイル、SaaS などあらゆるデータソースを標準OData エンドポイントとして公開できるツールです。 この記事では、API Server でWebapp Runner Tomcat コンテナを使ってHeroku にデプロイする方法を説明します。同じ方法でJetty Runner でもデプロイが可能です。

  1. Heroku Toolbelt とCData API Server のJava 版をインストールします。
  2. [Resource]タブで[Add On]セクションの[Edit]をクリックして、[Heroku Postgres]をボックスに入力してデータベースを追加、保存します。

    API Server は接続設定とデータベースのスキーマを保持します。

  3. [Setting]タブで、[Reveal Config Vars]→[Edit]をクリックし、次の設定項目を入力します:
    • APP_DB 項目を先ほど設定したPosgreSQL の有効なJDBC 接続文字列に設定します。シンタックスは次のようです:
      jdbc:postgresql://AddressOnAmazonAWS.com:5432/MyDatabaseName?user=MyUsername&password=MyPassword
      [DATABASE_URLは、次の部分を使ってJDBC 接続文字列の一部に使います:
      postgres://user:password@AddressOnAmazonAWS.com:5342/MyDatabaseName
    • [WEBAPP_RUNNER_OPTS]項目を次のように設定します:
      --tomcat-users-location ../../tomcat-users.xml

      API Server のアドミニストレータはtomcat-user.xml で定義されます。tomcat-users.xml のパスは、アプリが動作するTomcat コンテナであるWebapp Runner JAR によって変わります。

  4. API Server の管理画面の認証設定を行います: cdata_admin ロールのtomcat-users.xml ファイルを作成します。スタンドアロンTomcat インストールのデフォルトファイルをベースに次のtomcat-user.xml を作ります:

    <?xml version='1.0' encoding='cp1252'?>
    <tomcat-users>
      <user name="admin" password="admin" roles="cdata_admin" />
    </tomcat-users>
  5. コマンドプロンプトを開き、次のコマンドを実行してWAR をデプロイします:
    heroku deploy:war -w path-to-your-war -a your-app-name -i path-to-your-tomcat-users.xml

これでAPI Server にログインすることができます。ヘルプドキュメントの[はじめに]を参照して必要な接続プロパティを設定して、DB への接続を行いエンドポイントを作成します。