Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GCPと連携してマスターデータ更新
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
SatohJohn
November 02, 2022
Programming
0
230
GCPと連携してマスターデータ更新
[GDG Osaka] GASによる業務改善勉強会で発表をした内容になります。
https://gdgosaka.connpass.com/event/261885/
SatohJohn
November 02, 2022
Tweet
Share
More Decks by SatohJohn
See All by SatohJohn
NVIDIA NeMo Agent Tooklit を使ってみた
satohjohn
0
69
Gemini Enterprise を恐れない - Securityと監査-
satohjohn
0
160
進化の早すぎる生成 AI と向き合う
satohjohn
0
680
お前も Gemini CLI extensions を作らないか?
satohjohn
0
150
検索システムにおけるセキュリティ
satohjohn
0
90
Feature Flag 開発を標準化し、加速させる OpenFeature を導入する
satohjohn
4
2.6k
ADK Java が出たので AI Agent を作ろう
satohjohn
0
200
NotebookLM + Agentspace を使った(開発)体験
satohjohn
1
910
Open Feature 面白いぞ
satohjohn
0
130
Other Decks in Programming
See All in Programming
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.5k
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1.1k
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
190
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
190
Oxlint JS plugins
kazupon
1
1k
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
120
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
330
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
440
iOSアプリでフロントエンドと仲良くする
ryunakayama
0
110
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
120
atmaCup #23でAIコーディングを活用した話
ml_bear
3
490
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.7k
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.6k
It's Worth the Effort
3n
188
29k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.3k
Tell your own story through comics
letsgokoyo
1
820
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
4 Signs Your Business is Dying
shpigford
187
22k
How GitHub (no longer) Works
holman
316
140k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
340
Bash Introduction
62gerente
615
210k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
280
Building an army of robots
kneath
306
46k
Transcript
GCPと連携して マスターデータ更新 [GDG Osaka] GASによる業務改善勉強会 2022/11/02 佐藤慧太
軽い自己紹介 - 佐藤慧太( @SatohJohn ) - フリュー株式会社 ( 渋谷 )
- 社内でGCPの営業として 活動しています
新規事業とかで Spread Sheetでマスターデータ管理 ってよくやりますよね
で、Masterデータをもとに DBを更新するじゃないですか
でも、DBはprivate IPしか許可せず 直接繋げないんです
そんなときに Cloud Functionを通して DBを叩く!
つまり セキュリティの硬いDBに対して Serverless VPCを通した Cloud Functionを通して アクセスする
メリット - 運用メンバー、企画メンバーが書いているスプレッドシートをそのままMasterとして 利用できる - GCPのアプリケーションからFunctionsやCloudRunなどを叩くことができる - 複雑な処理を書ける - 認証通せるので、関数自体は叩かれまくることはなく安全
- GASを叩ける人を決められる (spread sheetの共有とGASを叩く人が違う場合)
デメリット - 1GCPプロジェクトしか紐付けできない - 開発系と本番系とー、ってなるとめんどい。 VPCを色々イジる必要がある。
構成
やりかた
やりかた(GASとGCPを紐付ける1) GASの方でプロジェクトの認証をする (projectIDじゃなくプロジェクト番号なの注意)
やりかた(GASとGCPを紐付ける2) GCP Projectの方でクライアントが自動的に作られる
やりかた(GASとGCPを紐付ける3) OAuth同意画面で公開ステータス「テスト」 ってなっている場合、 テストユーザを追加する
やりかた(Functionを作る) 認証ありでCloud Functionを作成する(ここは自由、ただし私はNode.jsが好きです)
やりかた(GASを作る) // Cloud Functionsとの接続 / Cloud Functionsに対して、HTTPトリガーの発火をする function post(payload) {
const url = "https://hogehoge" const token = ScriptApp.getIdentityToken() UrlFetchApp.fetch({ url, method: 'post', payload: JSON.stringify(payload), contentType: 'application/json', headers: { Authorization: `Bearer ${token}` } }) } ScriptAppのgetIdentityTokenをつかって認証ができる!
実行をしよう
実行をしよう
感じたこと - 思ったよりもかんたんに実装ができるぞ - 今まで、GCPプロジェクト側からSpread Sheetへの参照をしていた - service accountの作成して、spread sheetに参照権限もたせてた
- GCPの「組織」を使ってやると、公開アプリケーションとして配布できるのでなんか 色々できる - と思う
おしまい