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
Google App Engine入門
Search
Satoshi Miura
February 01, 2015
Programming
660
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
400
Other Decks in Programming
See All in Programming
What's New in Android 2026
veronikapj
0
270
今さら聞けない .NET CLI
htkym
0
200
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.7k
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
340
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
150
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
320
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
110
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
5.2k
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
330
プロポーザルを書いてもらう
pvcresin
0
560
Flow は今どうなっているか
mizdra
PRO
0
640
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
110
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
550
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Building Adaptive Systems
keathley
44
3.2k
The browser strikes back
jonoalderson
0
1.5k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
420
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Building an army of robots
kneath
306
46k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
66
57k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
660
Rails Girls Zürich Keynote
gr2m
96
14k
Evolving SEO for Evolving Search Engines
ryanjones
0
260
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ͷΛ͠Α͏ͱࢥ͍·ͨ͠ ͕ؒʹ߹͍·ͤΜͰͨ͠ ࣍ճͷษڧձͰΓ͍ͨͱࢥ͍·͢
͋Γ͕ͱ͏͍͟͝·ͨ͠