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
SatohJohn
November 02, 2022
Programming
0
220
GCPと連携してマスターデータ更新
[GDG Osaka] GASによる業務改善勉強会で発表をした内容になります。
https://gdgosaka.connpass.com/event/261885/
SatohJohn
November 02, 2022
Tweet
Share
More Decks by SatohJohn
See All by SatohJohn
Feature Flag 開発を標準化し、加速させる OpenFeature を導入する
satohjohn
3
2k
ADK Java が出たので AI Agent を作ろう
satohjohn
0
73
NotebookLM + Agentspace を使った(開発)体験
satohjohn
1
660
Open Feature 面白いぞ
satohjohn
0
88
Workforce Identity を使った 権限管理で Cloud Run を動かしてみた
satohjohn
0
490
Gemini + Vertex AI を使って作業を自動化「していく」
satohjohn
0
81
Cloud_Run_GPU___Gemma_2_を使った_LLM_アプリケーション開発のススメ.pdf
satohjohn
0
32
Firebase Authenticationのセッション管理術
satohjohn
2
2.4k
お客様とすすめる_フロントエンドの技術支援.pdf
satohjohn
1
1.1k
Other Decks in Programming
See All in Programming
[SRE NEXT] 複雑なシステムにおけるUser Journey SLOの導入
yakenji
0
150
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
320
AI コーディングエージェントの時代へ:JetBrains が描く開発の未来
masaruhr
1
200
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
4
1.3k
Rails Frontend Evolution: It Was a Setup All Along
skryukov
0
280
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
140
生成AI時代のコンポーネントライブラリの作り方
touyou
1
290
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
660
코딩 에이전트 체크리스트: Claude Code ver.
nacyot
0
930
AI Agent 時代のソフトウェア開発を支える AWS Cloud Development Kit (CDK)
konokenj
6
800
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
2
12k
マッチングアプリにおけるフリックUIで苦労したこと
yuheiito
0
190
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
21
1.3k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
340
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
750
How GitHub (no longer) Works
holman
314
140k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Producing Creativity
orderedlist
PRO
346
40k
GraphQLとの向き合い方2022年版
quramy
49
14k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
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の「組織」を使ってやると、公開アプリケーションとして配布できるのでなんか 色々できる - と思う
おしまい