PyCon JPにPythonと一緒にスタッフ参加しよう

セッションの情報

  • カテゴリ(Track): Approaching to social problem
  • 発表の言語: Japanese
  • スライドの言語: Japanese

概要(エレベータピッチ)

このトークでは、退屈なことをPythonにやらせる例を、PyCon JPのスタッフ活動の中から2つ共有します。
1つは、期日になったら終了するSlackのリマインダーの代替機能、もう1つは、Google Driveのテンプレートのドキュメントをコピーする機能をSlackコマンドとして実現する方法です。
このトークを聞くことで、PythonでSlackやGoogle Driveを操作する方法が分かるでしょう。

聴衆について

聴衆のPythonのレベル Intermediate(Pythonチュートリアルを終え、サードパーティーライブラリを使って、Webアプリ開発、データ分析、自動化などのいずれかに取り組んでいる)
聴衆に求める前提知識 何らかのパッケージを使って、Pythonで自動化スクリプトを書いた経験。
トークで扱う、SlackやGoogle DriveについてPythonで自動化した経験があると、トークがより理解しやすいと考えますが、必須ではありません。
聴衆が持って帰れる具体的な知識やノウハウ ・PythonでSlackにメッセージを投稿する方法
・上記を定期的に行う方法
・PythonでGoogle Driveのドキュメントを操作する方法
・Pythonスクリプトを使って、Slackを起点にGoogle Driveのドキュメントを操作する一連のやり方
・PyCon JPのスタッフがやっていることについての知識

詳細(構成・タイムライン)

PyCon JPのスタッフ活動ではSlackやGoogleドライブなどのツールを使います。
ツールについてイケていないと感じた点をPythonで解消した例を2つ紹介します。

1つ目は、Slackのリマインダー機能のイケていない点を解消した例です。
Slackでは、指定したメッセージを指定した時刻に繰り返し投稿できますが、繰り返しが不要になったら人手で止めないといけません。
いつ止めるかを覚えていないといけないのが煩わしかったので、自動で止まるSlackリマインダーを作りました。
実体は、Googleスプレッドシートを読み出し、リマインドが必要な期間内であれば投稿するPythonスクリプトです。
Pythonスクリプトを定期的に実行する環境として、無料の範囲で使えるAWS LambdaとCloudWatch Eventを用いました。

2つ目は、スタッフmtgのたびの議事録の用意を自動化した例です。
Googleドライブに用意されたテンプレートを毎回人手でコピーして準備することをイケていないと感じていました。
そこで、Pythonスクリプトで指定したGoogleドキュメントをコピーできるようにしました。
Slack経由でスクリプトを起動したかったため、AWS Lambdaに配置し、Amazon API Gatewayでスクリプトを起動するURLを用意しました。
このURLをSlackのSlashコマンドから呼び出すようにしました。

構成とタイムラインは以下のとおりです。

  • 導入(5min)
    • 自己紹介
    • PyCon JPスタッフの紹介
    • 問題意識
  • 1例目:カスタムSlackリマインダー(11min)
    • Slackのリマインダー機能について
    • 自動で止まるリマインダーを作る
    • PythonからSlackへの投稿(urllib)
    • PythonでGoogleスプレッドシートの内容を読み出す(authlib, gspread)
    • AWS LambdaとCloudWatch Eventを紹介
    • AWS Lambdaへのデプロイ方法とハマリポイントへの対処
  • 2例目:テンプレートコピーコマンド(11min)
    • スタッフmtgの準備について
    • Pythonスクリプトで議事録テンプレートをコピーする
    • PythonでGoogle Driveのドキュメントを複製する(PyDrive)
    • スクリプトのAWS LambdaへのデプロイとAPI Gatewayの設定
    • Slash commandからAWS Lambdaを呼び出すための設定
  • まとめ (1min)

この題材を話すのに自分がふさわしいと考える理由やこのトークをするモチベーション

私は2019年からPyCon JPのスタッフ活動を始めました。
活動の中ではSlackやGoogle Driveなどいくつかのツールを使いますが、単純作業の繰り返しを見つけては自動化を試みてきました。
手応えのある自動化の例をトークで共有することで、自動化に興味のある方にとって着想を与える機会になればと考えています。

このトピックについて過去の登壇で使った資料やソースコードのURL(任意記述)

※記入はありません

この方が他に提出しているプロポーザル

    ※他のプロポーザルはありません

あなたのレビュー


このプロポーザルのレビュー(2本)

YES😃

匿名レビュアー さん
コメント:
ログイン成功しました!

MAYBE😐

ftnext さん
コメント:
8/1 再デプロイ後デグレないことのテスト

ステージング環境からSlack通知テストテストテスト