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
200
GCPと連携してマスターデータ更新
[GDG Osaka] GASによる業務改善勉強会で発表をした内容になります。
https://gdgosaka.connpass.com/event/261885/
SatohJohn
November 02, 2022
Tweet
Share
More Decks by SatohJohn
See All by SatohJohn
Open Feature 面白いぞ
satohjohn
0
12
Workforce Identity を使った 権限管理で Cloud Run を動かしてみた
satohjohn
0
240
Gemini + Vertex AI を使って作業を自動化「していく」
satohjohn
0
58
Cloud_Run_GPU___Gemma_2_を使った_LLM_アプリケーション開発のススメ.pdf
satohjohn
0
17
Firebase Authenticationのセッション管理術
satohjohn
2
2.2k
お客様とすすめる_フロントエンドの技術支援.pdf
satohjohn
1
1.1k
コンテナ環境のKotlinアプリケーション を運用しよう _ Google Cloudを使って
satohjohn
0
160
GCPでのバッチ処理パターンを考えてみる
satohjohn
1
1.2k
Nuxt.js + Google App Engine でのアプリケーション開発の勘所
satohjohn
0
460
Other Decks in Programming
See All in Programming
Better Code Design in PHP
afilina
0
170
Datadog DBMでなにができる? JDDUG Meetup#7
nealle
0
140
CI改善もDatadogとともに
taumu
0
200
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
1
550
Jasprが凄い話
hyshu
0
160
未経験でSRE、はじめました! 組織を支える役割と軌跡
curekoshimizu
1
150
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
150
SwiftUI Viewの責務分離
elmetal
PRO
2
270
生成AIで加速するテスト実装 - ロリポップ for Gamersの事例と 生成AIエディタの活用
kinosuke01
0
120
2025.2.14_Developers Summit 2025_登壇資料
0101unite
0
190
PEPCは何を変えようとしていたのか
ken7253
2
220
Open source software: how to live long and go far
gaelvaroquaux
0
660
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Rails Girls Zürich Keynote
gr2m
94
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
The Pragmatic Product Professional
lauravandoore
32
6.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
Code Reviewing Like a Champion
maltzj
521
39k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
Fireside Chat
paigeccino
34
3.2k
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の「組織」を使ってやると、公開アプリケーションとして配布できるのでなんか 色々できる - と思う
おしまい