python3.6でpycryptoをインストールする際にはまったのでメモ...
windows環境はエラーします。mac環境はエラーはしない。。
python3.6にpycryptoをインストールするとエラーになる時の解消法
$ pip install pycrypto 上記コマンドをインストールしようとするとエラーが...
ビルドツールのインストールが必要
- 「Visual Studio Build Tools 2017」をインストールする必要がある
- Visual C++ Build Toolsをインストール
- ビルドしている際に以下の「inttypes.h」ファイルの構造体でエラーが発生する
- 対処は#defineで定義して回避
- これでインストールがとりあえず可能になる
> notepad 'C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h' ================================================ typedef struct { #define intmax_t long long ### これを追記 #define uintmax_t unsigned long long ### これを追記 intmax_t quot; intmax_t rem; } _Lldiv_t; typedef _Lldiv_t imaxdiv_t; ================================================
https://qiita.com/ftakao2007/items/e7f951de98509929bdfb https://www.python.jp/install/windows/install_vstools2017.html
digdag runコマンドを実行する際のメモ
digdag runコマンドを実行する際の注意点をメモ。
digdag/embulkでのディレクトリ構成は以下のような感じで。
$ tree . ├── config │ ├── dev.yml │ ├── load_table_list.txt │ └── prod.yml ├── scripts │ ├── commons │ │ ├── _input_aurora.yml.liquid │ │ ├── _input_redshift.yml.liquid │ │ └── _output_redshift.yml.liquid │ ├── __init__.py │ ├── __init__.pyc │ ├── tasks │ │ ├── __init__.py │ │ └── __init__.pyc │ ├── transfer_data.yml.liquid │ ├── user_history.yml.liquid │ ├── workflow_append.dig │ └── workflow_util.dig ├── workflow_append.dig └── workflow_util.dig
scriptディレクトリから実行する場合
digdag run -P ../config/dev.yml workflow_util.dig --rerun
xxx.digファイルにconfigの設定が書いてあると xxx.dig側が優先されるみたい。
ホームディレクトリから実行する場合
digdag run -P config/dev.yml workflow_util.dig --rerun
scripts/workflow_util.dig
+load: _retry: ${retry_cnt} +log_user_history: sh>: embulk run --log ${logdir}/log_user_history.log ..scripts/user_history.yml.liquid ## scriptディレクトリから実行する際はこれに変更する sh>: embulk run --log ${logdir}/log_user_history.log scripts/user_history.yml.liquid
Lambda関数でS3をトリガーに設定する際に気を付けるポイント
Lambda関数を実行している際に、 なぜかaws-cliでs3にファイルをアップロードするとLambdaが発火せずにはまった内容。
原因はイベントタイプ設定で、イベントタイプで「PUT」を設定していたのが問題であった。
GUIからファイルをアップロードする際は、 マルチパートで分割してアップしないのでLambdaは発火していた。
しかしaws-cliから大きいファイルをアップロードする際は、 マルチパートで分割してアップするみたいでLambdaが発火しない。
zappa等でDeployする際は以下に注意が必要
s3:ObjectCreated:PUT ← これはNG s3:ObjectCreated:* ← これはOK
LambdaでS3のイベントトリガーを設定しようとした場合にエラーする場合
LambdaでS3のイベントトリガーを設定しようとした場合に 以下のエラーが出る場合は、S3のプロパティのEventを確認して削除する
Configuration is ambiguously defined. Cannot have overlapping suffixes in two rules if the prefixes are overlapping for the same event type.
lambdaをローカル環境で開発する方法(mac)
python-lambda-localをインストールする
https://github.com/HDE/python-lambda-local
- 実行コマンド
python-lambda-local -l venv/lib/ -f lambda_handler main.py event.json
event.json
- lambdaでテストする際のテスト呼び出しコードを記入する
以下のURLに書いてある「requirements.txt」は特に設定は必要ない https://kakakakakku.hatenablog.com/entry/2017/08/02/085839
windows環境ではSIGALRMをCallできないとかでエラーするので無理
signal.signal(signal.SIGALRM, signal_handler) AttributeError: module 'signal' has no attribute 'SIGALRM'
virtualboxの共有フォルダの設定について
# ls -l /media drwxrwx--- 1 root vboxsf 0 12月 11 17:09 2016 sf_vbox_share
このままだと権限がないので、 rootかvboxsfグループのユーザーしかアクセスできないため、 既存ユーザーをvboxsfグループに追加しておく。有効にするため一度再起動したら、 共有できるようになっているはず。単に共有さえできればいいならここまでで設定は終わり。
# gpasswd -a vagrant vboxsf # reboot
windows10の場合はシンボリックリンクを設定が必要 everyoneを設定する