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を設定する
digdagServerの構築メモ
Centos7にdigdagサーバーを構築した際のメモ
久しぶりに自分のローカルPCにCentos7でサーバーを構築しようとしたが、 vagrant up しようとするとエラーが発生。。
下記組み合わせだとvagrant upがエラーする
D:\vagrant\labo>vagrant up The version of powershell currently installed on this host is less than the required minimum version. Please upgrade the installed version of powershell to the minimum required version and run the command again. Installed version: 2 Minimum required version: 3
上記エラーメッセージからPowerShellのバージョンを2系から3系以上に変更したが 次にWMF5.0(Windows Management Framework 5.0)をインストールする必要もあった。 詳細は以下のリンクから確認できる。
WMFのインストールが必要
digdagServerを構築する際にpostgreSQLを
- postgres9.6のインストールは以下のURLを参考にしてインストール
- CREATE EXTENSIONしないとエラーになるので注意
digdag_db=> CREATE EXTENSION "uuid-ossp"; ERROR: could not open extension control file "/usr/pgsql-9.6/share/extension/uuid-ossp.control": No such file or directory ## 拡張モジュールのインストールが必要 # yum -y install postgresql96-contrib.x86_64 ## postgresユーザーでログインして psql -U postgres -h 127.0.0.1 -d digdag_db CREATE EXTENSION "uuid-ossp";
postgre9.6 install
- https://qiita.com/purini-to/items/702565733a03c202d98e
- https://qiita.com/uhooi/items/44ed9370740c7521dce4
digdag/embulkのインストール
- java1.8がインストールされていることが前提
$ java -version openjdk version "1.8.0_151" OpenJDK Runtime Environment (build 1.8.0_151-b12) OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode) # インストールされていなければいれる $ yum -y install java-1.8.0-openjdk
# Embulkの導入 $ curl --create-dirs -o ~/bin/embulk -L https://dl.embulk.org/embulk-latest.jar $ chmod +x ~/bin/embulk # Digdagの導入 $ curl --create-dirs -o ~/bin/digdag -L "https://dl.digdag.io/digdag-latest" $ chmod +x ~/bin/digdag # OSX環境の場合は次のように.bash_profileを編集する $ cat << 'EOF' >> ~/.bash_profile # User specfic environment and startup programs export PATH=$PATH:$HOME/bin EOF $ source ~/.bash_profile
digdagはまりポイント
https://qiita.com/toyama0919/items/142d290c8dcb2c86851c
# vi /usr/lib/systemd/system/digdag.service [Unit] Description=digdag [Service] Type=simple PIDFile=/run/digdag.pid ExecStart="/usr/local/bin/digdag server -b 0.0.0.0 --config /opt/digdag/server.properties -O /opt/digdag/logs/tasklogs -A /opt/digdag/logs/accesslogs -L /opt/digdag/logs/server.log" User=root Group=root WorkingDirectory=/opt/digdag Restart=always RestartSec=5 KillMode=process TimeoutStopSec=1200 SyslogIdentifier=digdag [Install] WantedBy=multi-user.target
ExecStartは別ファイルにしないとエラーになるので注意
シェルは別ファイルにしないとエラーする
[Unit] Description=digdag [Service] Type=simple PIDFile=/run/digdag.pid ExecStart=/opt/digdag/start.sh User=root Group=root [Install] WantedBy=multi-user.target
https://qiita.com/cmwig65/items/3386a061aeb3d2f81b81 https://qiita.com/toyama0919/items/142d290c8dcb2c86851c https://qiita.com/bwtakacy/items/ec3151644512ca65f6b6