- BeProudで定期実行するタスクをまとめたい
- Google Apps Script でいろいろ定期実行するものが増えてきた
- Apps Script 書くのが単純にだるい
- 権限でひっかかったりする
- 手元のエディタで書きたい
- dateutilとか便利なライブラリを使いたい
- node.js
- Python3
- Docker
$ python3.7 -m venv env
$ . env/bin/activate
(env) $ pip install -r requirements.txt
(env) $ npm install
(env) $ cp src/bpcron_settings.py.sample src/bpcron_settings.py
(env) $ vi src/bpcron_settings.py
(env) $ touch src/config/user.ini
# Copy from https://tracery.jp/s/60e2885e834347ee93e6e6130f503770
(env) $ vi src/config/user.ini
- 主要なコマンドはMakefileにしているので適宜のぞいてください。
$ make
Please use `make <target>' where <target> is one of
deploy to deploy lambda app.
remove to remove lambda app.
test_app to exeute lambda application tests
test to exeute all tests.
create_credentials to create credentials.pickle.
black to exeute auto format python codes by black.
flake8 to exeute flake8 to python codes.
help to show this help messages.
以下の手順で、bp-cron の中で使用する Google API を有効にする。
- Google API の Projects を開く(BeProudアカウントでアクセスする)
- プロジェクトを作成→適当な名前(例:
bp-cron
)を指定して「作成」 - Google API を有効にする
Google Calendar API
を検索して選択→「有効にする」Google Drive API
を検索して選択→「有効にする」
- 「認証情報」メニュー→「OAuth同意画面」タブ→以下を入力して「保存」
- メールアドレス: 自分のメールアドレス
- ユーザーに表示するサービス名:
bp-cron
- 「認証情報を作成」→「OAuth クライアント ID」→「その他」を選択→「作成」
- OAuth クライアント IDがダイアログで表示されるので「OK」をクリックして閉じる
- 右端のダウンロードボタンをクリックして、
client_secret_XXXX.json
をダウンロードする - ファイル名を
client_secret.json
に変更してsrc/config
直下に配置する
make create_credentials
を実行するとブラウザが開いて API の許可を求めます。- BeProudのGoogleアカウントでAPI許可します。
- 成功すると
credentials.pickle
という証明書ファイルが生成されます。
(env) $ make create_credentials
直近の5件のイベントを表示
: (ここにGoogleカレンダーのイベントが表示される)
(env) $ ls ./src/utils/credential.pickle
./src/utils/credential.pickle
$sls invoke local --function <Lambda function name>
make deploy