SlackのBot通知を任意の条件の日で実装させてみる Part.2 Google Apps Scriptへの関数アップロード

# はじめに
今日は連日投稿します、中の人です。
前回からシリーズものとして書いているいろいろいじってみたときのお話の第2弾になります。
前回、記事に落とし込む〜なんてたいそうな口を叩いていましたが、今回からはどちらかというと自分用への備忘としてのメモ要素が一気に爆上がりします。
でも、ここからは使用ツールの癖もあったりするからこんなくらいの書きっぷりが参考になると嬉しいな。

全3回のシリーズものです。
それぞれ、こんな内容でやっていきます。
- Part.1：[JavaScriptでの通知日時設定の実装](https://qiita.com/icchy_sh33p/items/068d450735029d95adc4/)
- Part.2：[実装通知判定関数のGoogle Apps Scriptへのアップロード](https://qiita.com/icchy_sh33p/items/43c28fe25b7842ed260f/)　←このページです
- Part.3：[Slackとの連携](https://qiita.com/icchy_sh33p/items/2d267a1fa68514d9c591)

やりたいことや使用ツールなどの前提条件は、[前回の記事に記載](https://qiita.com/icchy_sh33p/items/068d450735029d95adc4#%E5%89%8D%E6%8F%90%E6%9D%A1%E4%BB%B6)があるのでご参照ください。
# 大枠の流れ
大枠の流れはそれぞれ以下のようになります。
1. Googleアカウントへのログイン
2. [Google Driveでの新規Google Apps Scriptの作成](https://qiita.com/icchy_sh33p/items/43c28fe25b7842ed260f#google-drive%E3%81%A7%E3%81%AE%E6%96%B0%E8%A6%8Fgoogle-apps-script%E3%81%AE%E4%BD%9C%E6%88%90)
3. [Google Apps Scriptへの反映と反映済スクリプトの実行](https://qiita.com/icchy_sh33p/items/43c28fe25b7842ed260f/#google-apps-script%E3%81%B8%E3%81%AE%E5%8F%8D%E6%98%A0%E3%81%A8%E5%8F%8D%E6%98%A0%E6%B8%88%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C)

それぞれ順番に手順を記載していきます。
# Googleアカウントへのログイン
スクリプトをアップロードする先となるアカウントへ、ログインする（こちらは通常のGmailへのアクセス等と同じなので割愛します）。
# Google Driveでの新規Google Apps Scriptの作成
順番に手順を追っていきます。
Googleアカウントにログインしたあと、Google Driveにアクセス。
完了したら、『新規』＞『その他』＞『Google Apps Script』を選択。
以下画面が表示されれば、Google Apps Scriptの新規作成が完了します。
![スクリーンショット 2022-07-31 23.32.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274468/f3e8c14e-1622-d42d-3213-40e21e7c070c.png)
# Google Apps Scriptへの反映と反映済スクリプトの実行
[ローカル環境で実装した通知日時判定ロジックとなるJavaScript側コード](https://qiita.com/icchy_sh33p/items/068d450735029d95adc4#%E5%AE%9F%E8%A3%85)を貼付し、任意の関数名、プロジェクト名を設定すれば実装自体は完了します。
![スクリーンショット 2022-07-31 23.34.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274468/fa92b25e-9f07-78ff-b0f6-8982d2d5eb43.png)
あとは、画面内『実行』ボタンを押下し、実行が正常に完了
![スクリーンショット 2022-07-31 23.34.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274468/fdbce166-00b7-0c79-18e2-df42bd87e336.png)
実行ログとして以下がそれぞれ表示されれば問題なく関数が動くようになったことが確認できます。
#### Slack通知対象日だった場合
![スクリーンショット 2022-07-31 22.33.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274468/2e716d1b-10f4-03b7-f7b4-4134496e9ca0.png)
#### Slack通知対象外日だった場合
![スクリーンショット 2022-07-31 22.33.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274468/c1f1ec94-dd52-4eff-15e4-87b70f99d831.png)
## 参考：関数実行トリガーの設定
実装した関数は、Google Apps ScriptのGUI操作によって時間単位でのトリガー設定ができます。
このトリガー設定によってトリガーを別途実装する必要なく簡単に時間単位での定期実行を定義、実現させています。
手順としては、
プロジェクト左ペイン『トリガー』＞『トリガーを追加』で以下ダイアログが表示、実行したい情報を入力
となっています。
![スクリーンショット 2022-07-31 23.54.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274468/369a2b24-64c8-089b-7db6-2dd419eaaf29.png)
# 触ってみた感想
Google Apps Scriptのような簡易的な関数のアップロードと実行トリガーの設定自体はAWSのLambda関数で設定していましたが、AWSと比較するとcloudfrontに入ってバージョン指定を含めて設定したいディストリビューションのビヘイビアに反映させ、トリガーを実装させなければならない手間が簡単にGUI操作による時間指定で済む観点から考えると圧倒的に楽に関数の実行まで実現できるなぁと思いました。
まぁもちろん、AWSで触ったLambda関数／cloudfrontはアプリケーションでの指定操作をトリガーにしているのでより複雑なトリガーを実現でき、やはり同じ土俵で比較はしてはいけないとは思いますがこれくらいの関数の実装なら工数も削減できるのでコスパは充分高いといえるのではないでしょうか。

さて、次回はいよいよ最終回、Slackとの連携です。
お楽しみにー続く！