- 追加された行はこの色です。
- 削除された行はこの色です。
[[AWSメモ]] >
* Chaliceで外部ライブラリを利用する [#c9be98bb]
#setlinebreak(on);
#contents
-- 関連
--- [[ChaliceでAPI Gateway&Lambda開発]]
** フォルダ構成 [#hca50492]
#html(<div style="padding-left:10px;">)
#html(<div style="background:#eee;padding:10px 20px 10px 10px;display:inline-block">)
┗ app.py
┗ chalicelib ... 自作ライブラリの格納先
┗ vendor ... サードパーティのライブラリの格納先
#html(</div>)
http://chalice.readthedocs.io/en/latest/topics/packaging.html?highlight=directories
#html(</div>)
*** プロジェクトの作成 [#e82f1e73]
#myterm2(){{
chalice new-project test-libs
cd test-libs
mkdir chalicelib
mkdir vendor
}}
** 外部ライブラリの追加 [#sdd76178]
#html(<div style="padding-left:10px;">)
vendor 配下に WHL形式([[PEP-427>http://legacy.python.org/dev/peps/pep-0427/]])でインストールする
#myterm2(){{
cd vendor
pip download pyyaml
pip wheel PyYAML-3.12.tar.gz
rm -rf PyYAML-3.12.tar.gz && cd ../
}}
#html(</div>)
** 自作ライブラリの追加 [#ma7db842]
#html(<div style="padding-left:10px;">)
chalicelib/utils.py
#mycode2(){{
# coding: utf-8
"""ユーティリティモジュール"""
import yaml
def parse_yaml(yaml_text):
"""yaml文字列をdict型にパースする"""
return yaml.load(yaml_text)
}}
#html(</div>)
** メイン処理の作成 [#ga64dd2e]
#html(<div style="padding-left:10px;">)
app.py
#mycode2(){{
from chalice import Chalice
from chalicelib import utils
app = Chalice(app_name='test-libs')
@app.route('/')
def index():
with open("test.yaml", "r") as f:
print ("yaml read")
yaml_text = f.read();
yaml_dict = utils.parse_yaml(yaml_text)
if "title" in yaml_dict:
return { 'title': yaml_dict["title"] }
return { 'message': 'error!' }
}}
#html(</div>)
** テスト用のYAMLを作成 [#w280e207]
test.yaml
#mycode2(){{
title: Test Title
desc: Test Desc
}}
** ローカルサーバ実行 [#v37ea363]
#myterm2(){{
chalice local
}}
** 動作確認 [#vc120ae8]
#myterm2(){{
curl http://localhost:8000
}}