Google SpreadSheetのデータをS3に上げる方法

今回は、Google SpreadsheetのデータをS3に上げる方法について、記載していきます。主に、Google側が提供しているGoogle Apps Scripts(これ以降はGASと記載する)を使用して、S3に上げる方法を記載していきます。

概要


Google Spreadsheet上の帯から、スクリプトを実行する。

→ GASのスクリプトが実行されて、AWSのSTSに接続の認証を受け取りに行く。

→認証ができたら、指定のS3にデータをバイナリで送信する。

という流れになっている。

今回は、なるべく楽に構築したかったため、認証・S3アップロードをGASのみで行えるようにしている。(STS認証してるから、IAMでユーザーの作成は必要になるぞ!)

構築


IAMロールの作成

AWSのアカウントにログインして、IAMを開く。

IAM > Usersのページに移動して、Create Usersを押す。

ロールに適当な名前をつける。

Nextをおして、Permissions Options の項目をAttach policies directlyにする。

そして、必要な権限を付与。(今回は、S3だけで良さそう。実運用するなら、バケットの制限とかもする方がよい。)

Review and Createのページまで進んだら、Create Usersを押して、IAMユーザーの作成を完了させる。

表示される、アクセスキーとシークレットアクセスキーをしっかりと手元で保管する。

GAS側の実装

今回は、この人のブログに記載されていたOSSを参考に作成させていただいた。

「GASでS3にファイルをアップロードする」 @kijukyさん

https://qiita.com/kijuky/items/4ec852fbef5d3fad6a6a

この記事の中に紹介されていた、以下のリンクのブログの内容を使用しました。

https://engetc.com/projects/amazon-s3-api-binding-for-google-apps-script/

このプログで公開されているものは、GAS上のライブラリで使用することが可能になっています。

MB4837UymyETXyn8cv3fNXZc9ncYTrHL9

上記のスクリプトIDコードを、GASのライブラリの追加で入力することで、簡単に使用することができます。

もし、このOSSのコードを少し改変して使用したい部分があれば、以下のgithubのコードからコードをコピーして改変したい部分を改変することもできます。(OSS的には問題ないはず。。。)

https://github.com/eschultink/S3-for-Google-Apps-Script

自分の場合は、csvで連携したいものがApplication/jsonで配信されてしまっていたため、その部分のみ改変しました。(もしかしたら、機能はそもそもついていたかもしれないが、コードを見てもわからなかった。。。)

ちゃんと連携できている。

最後に


今回は、Google SpreadsheetのデータをGASを用いて、S3にアップロードするための方法を記述していきました。Google Spreadsheetのデータを、バイナリ形式にする方法などは説明していないが、一番手間がかかる部分の説明はすることができたと考えています。このコード(GAS)をもちいて、Spreadsheetの可能性をさらに広めていきましょう!

ということで、tokitoからのブログでした。

投稿者 marumoto tokito

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です