##はじめに
この記事では、DockerコンテナにインストールしたSAP NW AS ABAPをCloud Connectorを使いCloud Platformと接続します。
前回の記事:【SAP】NW AS ABAP Developer Editionで開発環境を作る(1)
##構成
環境はAWSのEC2上のUbuntu(18.04)です。
Cloud ConnectorはNW AS ABAPとは別のコンテナにインストールします。
##Cloud Connectorのインストール
###概要
インストールの手順は以下のGitHubリポジトリで説明されている通りです。
https://github.com/SAP-samples/cloud-platform-workflow-virtual-event/blob/master/exercises/03/readme.md
ただし、リポジトリにあるDockerfileだとChromeで実行ができないので、プルリクエストにある修正を追加してからDockerイメージを作成してください。
###つまづいたところ
今回はNW AS ABAPとCloud Connectorが別々のコンテナにあるので、Cloud Connectorの設定でちょっとつまづきました。
NW AS ABAPにはUbuntuのブラウザからlocalhost(127.0.0.1)でアクセスできていたので、Internal Hostを127.0.0.1:8000
としたところNot Reachableとなってしまいました。
実際には、ここにはCloud Connectorのコンテナから見てアクセスできるIPアドレスを指定する必要がありました。2つのコンテナはデフォルトのネットワークである"bridge"につながっており、ネットワーク内でそれぞれのコンテナにIPが振られていました。Cloud ConnectorからNW AS ABAPのコンテナにアクセスするには172.17.0.2
を指定すればよさそうです。
コンテナのIPは以下のコマンドで見ることができます。
docker inspect <コンテナ名>
一番下に"Networs"というセクションがあり、そこのIPAddressを見ます。
Internal Hostに172.17.0.2
を指定したところ、Reachableになりました。ただ、このIPはコンテナの起動順によって変わってしまいそうな気がします。対応として、NW AS ABAP → Cloud Connectorの順に起動するようにします。
###起動・停止用のシェルを修正
Part1で作成した起動、停止用のシェルにCloud Connectorの起動・停止を追加します。
managesap
#!/bin/bash
start_sap(){
#start container
sudo docker container start nwabap752
#start sap
sudo docker exec -it nwabap752 /usr/sbin/uuidd
sudo docker exec -it nwabap752 su - npladm -c "startsap ALL"
}
stop_sap(){
#stop sap
sudo docker exec -it nwabap752 su - npladm -c "stopsap ALL"
#stop container
sudo docker container stop nwabap752
}
start_scc(){
#start scc
sudo docker container start myscc
}
stop_scc(){
#stop scc
sudo docker container stop myscc
}
start_env(){
start_sap
start_scc
}
stop_env(){
stop_scc
stop_sap
}
これ以降、SAPとSCCを同時に起動するときはstart_env
、停止するときはstop_env
を実行します。
##Cloud PlatformのDestination登録
Cloud Platform(CF)にDestinationを登録します。
Additional Propertiesの内容は以下の通りです。
パラメータ | 設定値 |
---|---|
HTML5.DynamicDestination | true |
HTML5.Timeout | 60000 |
sap-client | 001 |
WebIDEEnabled | true |
WebIDESystem | NPL |
WebIDEUsage | odata_abap |
Check Connectionを実行すると以下のようにエラーが出ますが、Business Application Studioから接続できていれば問題ありません。
##ここまでできたこと
- ローカルのNW AS ABAPとCloud Platformが接続できるようになりました。
- Business Application StudioからNW AS ABAPのODataサービスを使用することができます。
次回は、Fioriアプリケーションの開発とデプロイをやってみたいと思います。
##参考