最近のアクセス:
SAP Cloud Foundry へのデプロイ<branch_version>

: 現時点では、この機能は手動で実装する必要があります。できるだけ早く、このプロセスを自動化する予定です。


前提条件:

GeneXus アプリケーションを SAP Cloud Foundry にデプロイするには、次に示すステップに従う必要があります。
  1. Cloud Foundry の設定
  2. SAP Cloud Platform (Neo) の設定
  3. データストアの設定
  4. アプリケーションのデプロイ
 

Cloud Foundry の設定

試用版の SAP Cloud Foundry にログインします (アカウントがない場合は作成する必要があります)。ログインしたら、 [ trial ] を選択します。
イメージ:45431.png
次に示すように、dev スペースを選択します。
イメージ:45432.png
左側のメニューで次を選択します: [ Services ] > [ Service Marketplace ] 。次に、検索ボックスで HANA を検索し、SAP HANA Schemas & HDI Containers を選択します。
イメージ:45433.png
次のステップではサービスの新しいインスタンスを作成します。次のように選択します: [ Instances ] を選択し、 [ New Instance ] をクリックします。
イメージ:45434.png
ポップアップウィザードが開きます。まず [ Plan ] で [ hdi-shared ] を選択し、 [ Next ] をクリックします。
イメージ:45435.png
次のステップでは、スキーマのパラメーターを指定できます。スキーマ名は JSON 形式で設定する必要があります。
イメージ:45436.png
注: myschema は名前の例です。スキーマには好きな名前を付けられます。
次のステップでは、クラウドに既に配置しているアプリケーションにコンテナをバインドします。ここは [ (None) ] のままにします。

イメージ:45437.png
最後のステップで、インスタンス名を指定します。
イメージ:45438.png
[ Finish ] をクリックすると、インスタンスが作成されます。
注:
コマンドラインからコマンド cf create-service hanatrial hdi-shared myHANAdb を使用して HDI インスタンスを作成できます。
インスタンスが作成されたら、そのサービスキーを作成する必要があります。これを行うには、左側のメニューで次を選択します: Service Instances。次に、作成したインスタンスを選択します。
イメージ:45448.png
さらに、次のように選択します。 [ Service Keys ] を選択し、 [ Create Service Key ] ボタンをクリックします。次に、任意の名前を選択し、 [ Save ] をクリックします。
イメージ:45449.png
サービスキーを選択して JSON が表示されれば、サービスキーが正しく作成されたことを確認できます。データストアを設定するときに必要になるため、これを保存します。
 

SAP Cloud Platform (Neo) の設定

作成したデータを HDI インスタンスを使用して格納するには、Cloud Platform アカウントの Neo 環境にアクセスする必要があります。ログインし、ホーム画面で次のように選択します: [ <地域> ] > [ Cloud Foundry ] > [ Trial ] 。これにより、次のページが表示されます。
イメージ:45450.png
[ Access Neo Trial ] オプションが表示されるまで下にスクロールします。
イメージ:45451.png
[ Access Neo Trial ] を選択します。これにより、Neo 環境のコクピットに移動します。
まず、プリンシパル伝送を有効化します。これを行うには、左側のメニューで次のように選択します: [ Security ] > [ Trust ] 。次に、 [ Edit ] をクリックし、 [ Principal Propagation ] フィールドの値を [ Enabled ] に変更して [ Save ] をクリックします。
イメージ:45453.png
これにより、Neo の Web IDE が Cloud Foundry と通信できるようになります。
次に、Web IDE Full-Stack ツールを有効化する必要があります。これを行うには、左側のメニューで次のように選択します: [ Services ] > [ SAP Web IDE Full-Stack ] を選択して有効化し、 [ Go to Service ] を選択します。
イメージ:45452.png
Web IDE を開くと、Cloud Foundry への接続を求められることがあります。接続していない場合、 [ Preferences ] > [ Workspace Preferences ] > [ Cloud Foundry ] の順に選択し、正しいエンドポイントで設定します。このステップは、Cloud Foundry を使用する地域によって異なります。
イメージ:45454.png
この設定の後、ホームページに移動して次のように選択します: [ New Project from Template ] > [ (Environment=Cloud Foundry) Multi-Target Application ] を選択し、名前を入力 (この名前はデプロイとは関係ありません) して [ Finish ] を選択します。
これにより開発画面が表示されます。
イメージ:45456.png
この画面で <自分のアプリケーションの名前> を右クリックし、次のように選択します。 [ New ] > [ SAP HANA Database Module ]
イメージ:45457.png
ウィザードが開きます。任意の名前を入力し、 [ Next ] 、 [ Finish ] の順にクリックします。
イメージ:45458.png
次のステップでは、HDI コンテナを管理するために、Database Explorer を有効化します。これを行うには、 [ Preferences ] > [ Extensions ] の順に選択し、「Database Explorer」を検索します。SAP HANA Database Explorer を有効にします。
イメージ:45475.png
次に、Database Explorer に移動し、プラス記号を選択します。
イメージ:45459.png
表示されたプロンプトで、作成した HDI インスタンスを選択します。これを行うには、 [ Database Type ] として [ HDI Container ] を選択します。作成されているすべての HDI インスタンスが表示されます。アプリケーションのデプロイに使用するものを選択し、 [ OK ] をクリックします。
イメージ:45460.png
これで Web IDE と HDI コンテナが接続され、SQL クエリを実行できるようになります。
 

データストアの設定

: HANA データストアを使用し、Java 環境でテストする必要があります。

HDI コンテナを使用するには、データストアを設定する必要があります。これを行うには、ナレッジベースの設定に移動し、展開する環境を選択します。目的のデータストアを選択し、次のプロパティを設定します。値は、HDI コンテナキーから取得した JSON にあります。
  • Use Custom JDBC URL = True
  • Use Custom JDBC URL = JSON url フィールド
  • User Id = JSON ユーザーフィールド
  • Password = JSON パスワードフィールド
  • Database Schema = JSON スキーマフィールド
[ Server Name ] プロパティは空のままにします。
次のようになるはずです。
イメージ:45476.png
これらのプロパティを設定したら、GeneXus のメインメニューで次のように選択します: [ ビルド ] > [ データベーステーブルを作成 ] (テーブルを作成する必要はありません)。影響分析のステートメントセクションのクエリを使用して、HDI コンテナ上にテーブルを手動で作成します。
イメージ:45461.png
クエリを実行するには、SAP Cloud Platform Neo 環境の Web IDE に戻る必要があります。その後で、Database Explorer に移動し、データベースを右クリックして次を選択します: [ Open SQL Console ] 。
イメージ:45462.png
開かれたコンソールで、GeneXus で表示される順序に従って、クエリを 1 つずつ実行します。HDI コンテナ上にデータベース構造を作成するには、この手順を行う必要があります。
クエリをすべて実行すると、アプリケーションを SAP Cloud Foundry にデプロイする準備が整います。


アプリケーションのデプロイ

アプリケーションをデプロイするには、 [ ビルド ] > [ アプリケーションをデプロイ ] を選択する必要があります。次に、デプロイするオブジェクトを選択します。ターゲットとして SAP Cloud Platform を選択し、 [ パッケージのみ ] を選択して [ デプロイ ] をクリックします。
: SAP ERP と連携するアプリケーションをデプロイする場合は、ナレッジベースの web\drivers フォルダに sapjco3.jar および libsapjco3.so ファイルを追加する必要があります。

次に、war ファイルが生成されたフォルダに移動します。war 内の数か所を変更する必要があります。
まず、context.xml という名前のファイルを META-INF フォルダ内に含める必要があります。このファイルには次の行が含まれている必要があります。
<?xml version="1.0" encoding="UTF-8"?>
<Context>  <Resource name="jdbc/DefaultDB"
    auth="Container"
    type="javax.sql.DataSource"
    factory="com.sap.xs.jdbc.datasource.tomcat.TomcatDataSourceFactory"
    service="myHANAdb"/>
</Context>
サービスフィールドには自分の HDI コンテナサービス名 (この例では myHANAdb) を入力します。
次に、WEB-INF フォルダの web.xml ファイルで、resource-ref タグを次のように変更します。
    <resource-ref>
        <res-ref-name>jdbc/DefaultDB</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
次に、HANA データベースへの接続に使用する ngdbc.jar を WEB-INF\lib に追加します。
最後に、WAR が含まれているフォルダに、次の構造で manifest.yml ファイルを作成します。
applications:
  - name: newtestdeploy
    path: ./DeploymentUnitForCF.war
    buildpacks:
      - sap_java_buildpack
    memory: 1024M
    random-route: true
    env:
    TARGET_RUNTIME: tomcat
    SET_LOGGING_LEVEL: '{ROOT: INFO, com.sap.cloud.sdk: INFO}'
    JBP_CONFIG_SAPJVM_MEMORY_SIZES: 'metaspace:128m..'

入力値の説明:
  • name: Cloud Foundry 内のアプリケーションの名前が含まれます。
  • path: war ファイルのパスが含まれます。
  • memory: アプリケーションに割り当てるメモリーを指定します。
  • TARGET_RUNTIME: アプリケーションのターゲットランタイムを指定します。
  • SET_LOGGING_LEVEL: アプリケーションのログレベルを指定します。
フィールドの詳細については、こちらの Cloud Foundry の記事を参照してください。
これらすべてを設定した後、コマンドラインを開き、war ファイルが (manifest.yml とともに) 配置されているフォルダに移動します。環境変数として cf.exe を設定しなかった場合は、cf.exe をフォルダにコピーします。
コマンドラインで次のように記述します。
cf login -a <Cloud Foundry エンドポイント> -u <SAP CF のユーザー名またはメールアドレス> -p <パスワード> -o <組織名> -s<スペース>
SAP Cloud Foundry の info にログインして情報を取得できます。
  • -a = API エンドポイント
  • -o = 組織名
  • -s = 既定のスペースは dev
イメージ:45463.png
 
ログイン後に次を実行する必要があります。
cf push
これにより、manifest.yml に詳細が記載されているすべてのアプリケーションがプッシュされます。
デプロイが完了すると次のように表示されます。
イメージ:45464.png
ルートフィールドにアプリケーションのデプロイ先が示され、/servlet/com.<ナレッジベース名>.<アクセスするオブジェクト> を追加することでアクセスできます。
(例: https://deploycf-wacky-klipspringer.cfapps.eu10.hana.ondemand.com/servlet/com.deploycf.fioribaseobjects.fiorilaunchpad)


使用可能バージョン

SAP Cloud Platform にデプロイする機能が含まれている場合、GeneXus 15 以降で適用されます。


Created: 20/12/14 21:42 by Admin Last update: 21/05/20 18:59 by Admin
カテゴリ
Powered by GXwiki 3.0