Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Google App Engine入門
Search
Satoshi Miura
February 01, 2015
Programming
670
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Google App Engine入門
Python東海26回勉強会での発表資料です
Satoshi Miura
February 01, 2015
More Decks by Satoshi Miura
See All by Satoshi Miura
MarkdownでもSphinx
mursts
1
470
お金ダッシュボードを作ってみた
mursts
0
350
asyncioを軽くさわってみた
mursts
0
180
FlaskとYomanでHello World
mursts
0
410
Other Decks in Programming
See All in Programming
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.2k
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
410
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
1
700
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
170
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
510
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
130
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
150
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
200
Security issues being discussed on Web Platforms
petamoriken
0
1.4k
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
30
13k
Webの地図
yosuke_furukawa
PRO
6
5k
Are APIs Still Relevant in the AI Era?
soyuka
0
380
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
620
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Navigating Team Friction
lara
192
16k
Are puppies a ranking factor?
jonoalderson
2
4k
KATA
mclloyd
PRO
35
16k
Code Review Best Practice
trishagee
74
20k
Amusing Abliteration
ianozsvald
1
320
Everyday Curiosity
cassininazir
0
340
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Crafting Experiences
bethany
1
360
Transcript
Google&App&Engineೖ&+&α 2015.01.31'Python౦ւ'26th
͓લͩΕΑ • Έ͏Β͞ͱ͠(@mursts) • PythonɺAndroid͕͖Ͱ͢ • ࣄJavaɺdosbatch • PythonझຯͰ͢
App#EngineΛ͍ͬͯ·͔͢ʁ ͬͨ͜ͱ͋Γ·͔͢ʁ
App#Engineͱ Googleͷఏڙ͢ΔαʔϏεͷ1ͭͰ͋ΓɺΣϒΞϓϦέʔγϣ ϯΛPythonJavaGoݴޠΛ༻ͯ͠։ൃ͠ɺGoogleͷΠϯϑϥ ετϥΫνϟʔ্Ͱ࣮ߦ͠ɺόʔδϣϯཧ͢Δ͜ͱ͕Ͱ͖Δɻ —"Wikipedia"ʮGoogle"App"Engineʯ PythonɺGoɺJavaɺPHP͕ಈ͖·͢
ࠓApp#EngineͱPythonͰ Hello%WorldΛΓ·͢
App#EngineͷڥΛ࡞Δ
SDKͷΠϯετʔϧ h"ps:/ /cloud.google.com/sdk/ $ curl https://sdk.cloud.google.com | bash # for
Linux / OS X $ gcloud auth login $ gcloud components update ※!WindowsΠϯετʔϥ͕༻ҙ͞Ε͍ͯ·͢ App#Engine͚ͩͷSDK͋Γ·͕͢ɺ͜͜ͰCloud#SDKΛΠϯε τʔϧ͠·͢
webapp2Λ༻ͨ͠ϓϩδΣΫτͷςϯϓϨʔτ͕ҎԼʹ༻ҙ͞Ε͍ͯ·͢ ~/google'cloud'sdk/pla/orm/googleappengine/ new_project_template_ ├── app.yaml ├── favicon.ico ├── index.yaml └──
main.py ※ڥʹΑΓͰύε͕ҧ͏߹͕͋ΔΑͰ͢
main.py import webapp2 class MainHandler(webapp2.RequestHandler): def get(self): self.response.write('Hello world!') app
= webapp2.WSGIApplication([ ('/', MainHandler) ], debug=True)
app.yaml application: new-project-template version: 1 runtime: python27 api_version: 1 threadsafe:
yes handlers: - url: /favicon\.ico static_files: favicon.ico upload: favicon\.ico - url: .* script: main.app libraries: - name: webapp2 version: "2.5.2"
GitHubʹଞͷϑϨʔϜϫʔΫͷςϯϓϨʔτ͋Γ·͢ • Django • flask • bo,le
͜ΜͳγΣϧΛ࡞ͬͯϓϩδΣΫτΛ࡞͍ͬͯ·͢1 create&gae&project@gist #!/bin/sh PROJECT_TEMPLATE_PATH=${HOME}/google-cloud-sdk/platform/google_appengine/new_project_template if [ $# -eq 0 ];
then CMD=`basename $0` echo "usage: ${CMD} projectname" exit 1 fi PROJECT_NAME=$1 cp -R $PROJECT_TEMPLATE_PATH $PROJECT_NAME cd $PROJECT_NAME sed -i '' "s/new-project-template/${PROJECT_NAME}/g" app.yaml echo "New Google App Engine Project Created." echo " ${PROJECT_NAME}"
͜ΜͳγΣϧΛ࡞ͬͯϓϩδΣΫτΛ࡞͍ͬͯ·͢2 create&gae&project&flask@gist #!/bin/sh if [ $# -eq 0 ]; then
CMD=`basename $0` echo "usage: ${CMD} projectname" exit 1 fi PROJECT_NAME=$1 if [ -d ${PROJECT_NAME} ] ; then echo "${PROJECT_NAME} is exists" exit 1 fi git clone https://github.com/GoogleCloudPlatform/appengine-python-flask-skeleton.git "${PROJECT_NAME}" cd "${PROJECT_NAME}" #git remote rm origin rm -rf .git pip install -r requirements.txt -t lib sed -i '' "s/your-application-id-here/${PROJECT_NAME}/g" app.yaml exit 0
ϩʔΧϧͰಈ͔ͯ͠ΈΔ copy template or git clone $ dev_appserver.py ./ >
http://localhost:8080
σϓϩΠ ϓϩδΣΫτΛ࡞ h"ps:/ /console.developers.google.com/ project?hl=ja
σϓϩΠ app.yamlͷΞϓϦέʔγϣϯ໊Λ࡞ͨ͠ϓϩδΣΫτ໊ʹมߋ diff app.yaml.org app.yaml 1c1 < application: new-project-template ---
> application: pythontokai26
σϓϩΠ $ appcfg.py update ./ >!h#p:/ /project(id.appspot.com project-id:"Developers"ConsoleͰ࡞ ͨ͠ID
ؒʹ߹͑͏ͻͱͭ +αͰManagedVMͷΛ͠Α͏ͱࢥ͍·ͨ͠ ͕ؒʹ߹͍·ͤΜͰͨ͠ ࣍ճͷษڧձͰΓ͍ͨͱࢥ͍·͢
͋Γ͕ͱ͏͍͟͝·ͨ͠