作業端末の環境構築

クラウドアプリケーションを開発するための環境を作業端末に構築するために前提となる作業端末でのPythonの導入や、My-IoTデータストアとの連携(※)に必要な証明書やプログラム等のファイルの配置、環境変数の設定について以下に記載します。

※イントラネット環境などのプロキシサーバーを介する環境ではMy-IoTデータストアとの連携が正常に動作しない可能性がありますので、注意してください。

注意

IoTストアの実行基盤上に構築されているMy-IoTデータストアがDynamoDBの場合は、作業端末からMy-IoTデータストアと連携した開発を行うことができません。
My-IoTデータストアの種別については、別途 My-IoT プラットフォーム仕様書 を参照してください。

Pythonの導入

クラウドアプリケーションの開発はPythonを使用するため、作業端末にPythonを導入します。 Pythonを導入するには作業端末のOSに応じて、以下を実行する必要があります。

※バージョンはデプロイするLambda関数のランタイムに合わせて開発者が選択してください。
※ここではバージョン3.7 64bit版を例とし手順を記載します。

Windows環境でのPythonの導入

  1. https://www.python.org/からPython3.7.xをダウンロードする。

  2. ダウンロードしたpython-3.7.x-amd64.exeを実行する。

  3. "Add Python 3.7 to PATH"にチェックを入れて、「Install Now」をクリックする。インストールが完了したら「Close」をクリックしてウィンドウを閉じる。

  4. コマンドプロンプトを起動する。

  5. 以下のコマンドを実行して必要なライブラリ(boto3/requests)をインストールする。

pip install boto3
pip install requests

Linux環境でのPythonの導入

  1. 以下のコマンドを実行し、Pythonをインストールする。

    • Debian系:sudo apt-get install python3.7 pip-python3

    • Red Hat系:sudo yum install python37

  2. 以下のコマンドを実行して必要なライブラリ(boto3/requests)をインストールする。

pip install boto3
pip install requests

または

python3 -m pip install boto3
python3 -m pip install requests

証明書の取得

My-IoTデータストアと連携し、実際のデータを用いてクラウドアプリケーションを開発する場合には、以下My-IoTデータストアにアクセスするための証明書の取得を行います。

  1. IoTストアにログインする。

  2. サイドメニューから [セットアップ] - [データ取得用証明書ダウンロード] を選択する

    sidemenu

  3. データ取得用証明書ダウンロード画面が表示されたら、 [ダウンロード] を選択する

    cert_dl

  4. ダウンロードしたzipファイルを解凍し以下のような構成になっていることを確認する

    契約ID名
    ├── clientCertAndCACert.crt (クライアント証明書)
    └── clientCert.key (クライアント証明鍵)
    

ローカル開発用プロキシアプリのダウンロード

My-IoTデータストアと連携し、実際のデータを用いてクラウドアプリケーションを開発する場合には、My-IoTデータストアにアクセスするための ローカル開発用プロキシアプリ のダウンロードを行います。

  1. IoTストアにログインする

  2. サイドメニューから [セットアップ] - [アプリケーションダウンロード] を選択する

    sidemenu

  3. アプリケーション一覧が表示されたら、 ローカル開発用プロキシアプリ[ダウンロード] を選択する

    proxy_dl

  4. ダウンロードしたzipファイルを解凍し、Windows環境用のディレクトリ(proxy_windows)とLinux環境用のディレクトリ(proxy_Linux)が存在することを確認する

ファイルの配置

My-IoTデータストアと連携するために、データストアへのアクセス時に認証に使用するファイル(データ取得用証明書ファイル、ローカル開発用プロキシアプリ)を適切に配置する必要があります。

まずデータ取得用証明書ファイル clientCertAndCACert.crtclientCert.keyを任意のディレクトリに格納します。 そしてクラウドアプリケーションを開発する際に使用する作業用ディレクトリを任意の場所に作成します。今後これを ローカルプログラム格納ディレクトリ と呼びます。

クラウドアプリケーションを開発する際には、このローカルプログラム格納ディレクトリに、開発ごとにプログラムを格納するディレクトリ(Lambdaソースコード格納ディレクトリ)を作成し管理するものとします。

次に、ローカル開発用プロキシアプリのソースファイルをLambdaソースコード格納ディレクトリに格納します。

ダウンロードしてきたローカル開発用プロキシアプリのzipファイルを解凍すると、Windows環境用のディレクトリ(proxy_windows)とLinux環境用のディレクトリ(proxy_Linux)が格納されています。
下記を参考に、環境に応じたディレクトリからローカルプログラム格納ディレクトリにソースコードを適切に配置します。

Windows環境でのファイルの配置

  • start_local_proxy.bat(ローカル開発用プロキシアプリ起動バッチファイル)

  • sip-mtls-proxy.py(ローカル開発用プロキシアプリ本体)

  • sip_mtls_access.py(import用プログラム)

  • control_event.py(import用プログラム)

  • logging.conf(ローカル開発用プロキシアプリ用のロギング設定ファイル)

ローカルプログラム格納ディレクトリ
    └ Lambdaソースコード格納ディレクトリ
        ├ start_local_proxy.bat
        ├ sip-mtls-proxy.py
        ├ sip_mtls_access.py
        ├ control_event.py
        └ logging.conf

Linux環境でのファイルの配置

  • start_local_proxy.sh(ローカル開発用プロキシアプリ起動シェルスクリプト)

  • send_proxy.py(ローカルプログラムサンプル)

  • sip-mtls-proxy.py(ローカル開発用プロキシアプリ本体)

  • sip_mtls_access.py(import用プログラム)

  • control_event.py(import用プログラム)

  • logging.conf(ローカル開発用プロキシアプリ用のロギング設定ファイル)

ローカルプログラム格納ディレクトリ
    └ Lambdaソースコード格納ディレクトリ
        ├ start_local_proxy.sh
        ├ sip-mtls-proxy.py
        ├ sip_mtls_access.py
        ├ control_event.py
        └ logging.conf

環境変数の設定

My-IoTデータストアと連携するために、データストアアクセス時に認証に使用する環境変数を適切に設定します。

Windows環境での環境変数の設定

スタートメニューからコントロールパネルにアクセスし、システム>システムの詳細設定>詳細設定タブ>環境変数>新規の順にクリックし、以下の環境変数を環境に合わせて設定します。
※環境変数設定後、環境変数の設定を適用するためにはpython実行環境(コマンドプロンプト、VisualStudioCode等のツール)を再起動する必要があります。

変数名

内容

指定なし時のデフォルト値

PROXY_URL

localhost proxyへのURL

http://localhost:8080

CLIENT_CERT_PATH

クライアント証明書の格納ディレクトリパス(絶対パスを指定)

なし

CLIENT_KEY_PATH

クライアント証明鍵の格納ディレクトリパス(絶対パスを指定)

なし

APIGW_ENDPOINT

APIGatewayのエンドポイント名※

なし

PROXY_DEBUG

デバッグモード(0:リリースモード/1:デバッグモード)

0:リリースモード

TENANT_ID

テナントID

なし

※APIGW_ENDPOINTには https://myiot-store-console.com/mtls を設定してください。個別にMy-IoT環境を構築した場合は、設定値が異なる場合があります。

※TENANT_IDに設定するテナントIDについては、テナントオーナーにご確認ください。

※上記以外にLambda実行時に使用する独自の環境変数がある場合は、同様に環境変数を設定してください。

Linux環境での環境変数の設定

  1. 以下のコマンドを実行し、 start_local_proxy.sh が格納してあるディレクトリまで移動する。

    cd [移動先ディレクトリまでの絶対パス]

  2. 以下のコマンドを実行しファイルを開く。

    vi start_local_proxy.sh

  3. start_local_proxy.sh(ローカル開発用プロキシアプリ起動シェルスクリプト)に以下の環境変数を設定する。記載方式は export [変数名]=[設定値] となる。

    例:クライアント証明書の格納ディレクトリパス /home/user/proxy/certs の場合

    export CLIENT_CERT_PATH="/home/user/proxy/certs"

    変数名

    内容

    指定なし時のデフォルト値

    CLIENT_CERT_PATH

    クライアント証明書の格納ディレクトリパス(絶対パスを指定)

    なし

    CLIENT_KEY_PATH

    クライアント証明鍵の格納ディレクトリパス(絶対パスを指定)

    なし

    APIGW_ENDPOINT

    APIGatewayのエンドポイント名※

    なし

    PROXY_DEBUG

    デバッグモード(0:リリースモード/1:デバッグモード)

    0:リリースモード

    ※APIGW_ENDPOINTには https://myiot-store-console.com/mtls を設定してください。個別にMy-IoT環境を構築した場合は、設定値が異なる場合があります。

  4. OSの環境変数に以下の環境変数を設定する。

    変数名

    内容

    指定なし時のデフォルト値

    TENANT_ID

    テナントID

    なし

    ※TENANT_IDに設定するテナントIDについては、テナントオーナーにご確認ください。

    ※上記以外にLambda実行時に使用する独自の環境変数がある場合は、同様に環境変数を設定してください。

    例:コマンドで環境変数を設定する場合

    export TENANT_ID="テナントID"