Create Python App - Test it and then deploy app as AppEngine App.

 

ketan_patel@cloudshell:~/ketantest (new-user-learning)$ ls

app.yaml  main.py  main_test.py

ketan_patel@cloudshell:~/ketantest (new-user-learning)$ cat app.yaml 

runtime: python27
api_version: 1
threadsafe: true

service : ketanapp1


handlers:
- url: /.*
  script: main.app

ketan_patel@cloudshell:~/ketantest (new-user-learning)$ cat main.py

import webapp2


class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers["Content-Type"] = "text/plain"
        self.response.write("Hello, main.py ketan World!")


app = webapp2.WSGIApplication(
    [
        ("/", MainPage),
    ],
    debug=True,
)

ketan_patel@cloudshell:~/ketantest (new-user-learning)$ cat main_test.py 

import webtest

import main


def test_get():
    app = webtest.TestApp(main.app)

    response = app.get("/")

    assert response.status_int == 200
    assert response.body == "Hello, World of Storage!"
ketan_patel@cloudshell:~/ketantest (new-user-learning)$



ketan_patel@cloudshell:~/ketantest (new-user-learning)$ ls
app.yaml  main.py  main_test.py

ketan_patel@cloudshell:~/ketantest (new-user-learning)$ dev_appserver.py app.yaml 

INFO     2023-08-23 04:36:07,865 devappserver2.py:321] Skipping SDK update check.
WARNING  2023-08-23 04:36:08,094 simple_search_stub.py:1196] Could not read search indexes from /tmp/appengine.None.ketan_patel/search_indexes
INFO     2023-08-23 04:36:08,097 <string>:398] Starting API server at: http://localhost:44537
INFO     2023-08-23 04:36:08,103 dispatcher.py:276] Starting module "ketanapp1" running at: http://localhost:8080
INFO     2023-08-23 04:36:08,105 admin_server.py:70] Starting admin server at: http://localhost:8000
WARNING  2023-08-23 04:36:08,106 devappserver2.py:417] No default module found. Ignoring.
INFO     2023-08-23 04:36:11,126 instance.py:294] Instance PID: 400
INFO     2023-08-23 04:36:19,522 module.py:862] ketanapp1: "GET /?authuser=0&redirectedPreviously=true HTTP/1.1" 200 27
INFO     2023-08-23 04:36:22,421 instance.py:294] Instance PID: 407


Now open "Web Preview" and verify the app is running:


You will see "        "self.response.write("Hello, main.py ketan World!")" in the web preview.






To end do CTRL C in cloud shell.


Now open 
^CINFO     2023-08-23 04:37:05,590 shutdown.py:50] Shutting down.
INFO     2023-08-23 04:37:05,590 stub_util.py:360] Applying all pending transactions and saving the datastore
INFO     2023-08-23 04:37:05,590 stub_util.py:363] Saving search indexes

ketan_patel@cloudshell:~/ketantest (new-user-learning)$ 





DEPLOY APP:


ketan_patel@cloudshell:~/ketantest (new-user-learning)$ pwd
/home/ketan_patel/ketantest
ketan_patel@cloudshell:~/ketantest (new-user-learning)$ ls -l
total 16
-rw-r--r-- 1 ketan_patel ketan_patel 111 Aug 22 21:02 app.yaml
-rw-r--r-- 1 ketan_patel ketan_patel 285 Aug 22 21:04 main.py
-rw-r--r-- 1 ketan_patel ketan_patel 710 Aug 23 04:36 main.pyc
-rw-r--r-- 1 ketan_patel ketan_patel 205 Aug 22 21:03 main_test.py

ketan_patel@cloudshell:~/ketantest (new-user-learning)$ gcloud app deploy

Services to deploy:

descriptor:                  [/home/ketan_patel/ketantest/app.yaml]
source:                      [/home/ketan_patel/ketantest]
target project:              [new-user-learning]
target service:              [ketanapp1]
target version:              [20230823t044809]
target url:                  [https://ketanapp1-dot-new-user-learning.uw.r.appspot.com]
target service account:      [new-user-learning@appspot.gserviceaccount.com]


Do you want to continue (Y/n)?  Y

Beginning deployment of service [ketanapp1]...
Uploading 3 files to Google Cloud Storage
33%
67%
100%
100%
File upload done.
Updating service [ketanapp1]...done.                                                                                                                                                                             
Setting traffic split for service [ketanapp1]...done.                                                                                                                                                            
Deployed service [ketanapp1] to [https://ketanapp1-dot-new-user-learning.uw.r.appspot.com]

You can stream logs from the command line by running:
  $ gcloud app logs tail -s ketanapp1

To view your application in the web browser run:
  $ gcloud app browse -s ketanapp1

ketan_patel@cloudshell:~/ketantest (new-user-learning)$ gcloud app browse -s ketanapp1

Did not detect your browser. Go to this link to view your app:
https://ketanapp1-dot-new-user-learning.uw.r.appspot.com


ketan_patel@cloudshell:~/ketantest (new-user-learning)$ curl https://ketanapp1-dot-new-user-learning.uw.r.appspot.com/

Hello, main.py ketan World!ketan_patel@cloudshell:~/ketantest (new-user-learning)$ 

CLICK ABOVE URL AND IT WILL OPEN WITH APPENGINE APP:












UPDATE THE APP:



ketan_patel@cloudshell:~/ketantest (new-user-learning)$ ls -ltr
total 16
-rw-r--r-- 1 ketan_patel ketan_patel 111 Aug 22 21:02 app.yaml
-rw-r--r-- 1 ketan_patel ketan_patel 205 Aug 22 21:03 main_test.py
-rw-r--r-- 1 ketan_patel ketan_patel 285 Aug 22 21:04 main.py
-rw-r--r-- 1 ketan_patel ketan_patel 710 Aug 23 04:36 main.pyc

ketan_patel@cloudshell:~/ketantest (new-user-learning)$ vi main.py


ketan_patel@cloudshell:~/ketantest (new-user-learning)$ cat main.py
import webapp2


class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers["Content-Type"] = "text/plain"

        self.response.write("Hello, main.py ketan World from Moon!")



app = webapp2.WSGIApplication(
    [
        ("/", MainPage),
    ],
    debug=True,
)
ketan_patel@cloudshell:~/ketantest (new-user-learning)$ 


TEST APPLICATION BEFORE DEPLOY USING "dev_appserver.py":

ketan_patel@cloudshell:~/ketantest (new-user-learning)$ dev_appserver.py app.yaml

INFO     2023-08-23 16:37:38,197 devappserver2.py:321] Skipping SDK update check.
WARNING  2023-08-23 16:37:38,418 simple_search_stub.py:1196] Could not read search indexes from /tmp/appengine.None.ketan_patel/search_indexes
INFO     2023-08-23 16:37:38,421 <string>:398] Starting API server at: http://localhost:41161
INFO     2023-08-23 16:37:38,427 dispatcher.py:276] Starting module "ketanapp1" running at: http://localhost:8080
INFO     2023-08-23 16:37:38,428 admin_server.py:70] Starting admin server at: http://localhost:8000
WARNING  2023-08-23 16:37:38,429 devappserver2.py:417] No default module found. Ignoring.
INFO     2023-08-23 16:37:41,443 instance.py:294] Instance PID: 421
INFO     2023-08-23 16:37:53,034 module.py:862] ketanapp1: "GET /?authuser=0&redirectedPreviously=true HTTP/1.1" 200 37
INFO     2023-08-23 16:37:55,937 instance.py:294] Instance PID: 428

^CINFO     2023-08-23 16:38:05,300 shutdown.py:50] Shutting down.
INFO     2023-08-23 16:38:05,300 stub_util.py:360] Applying all pending transactions and saving the datastore
INFO     2023-08-23 16:38:05,301 stub_util.py:363] Saving search indexes
ketan_patel@cloudshell:~/ketantest (new-user-learning)$ 

DEPLOY THE APP:


ketan_patel@cloudshell:~/ketantest (new-user-learning)$ gcloud app deploy

Services to deploy:

descriptor:                  [/home/ketan_patel/ketantest/app.yaml]
source:                      [/home/ketan_patel/ketantest]
target project:              [new-user-learning]
target service:              [ketanapp1]
target version:              [20230823t163813]
target url:                  [https://ketanapp1-dot-new-user-learning.uw.r.appspot.com]
target service account:      [new-user-learning@appspot.gserviceaccount.com]


Do you want to continue (Y/n)?  Y

Beginning deployment of service [ketanapp1]...
Uploading 1 file to Google Cloud Storage
100%
100%
File upload done.
Updating service [ketanapp1]...done.                                                                                       
Setting traffic split for service [ketanapp1]...done.                                                                      
Deployed service [ketanapp1] to [https://ketanapp1-dot-new-user-learning.uw.r.appspot.com]

You can stream logs from the command line by running:
  $ gcloud app logs tail -s ketanapp1

To view your application in the web browser run:
  $ gcloud app browse -s ketanapp1
ketan_patel@cloudshell:~/ketantest (new-user-learning)$ 

ketan_patel@cloudshell:~/ketantest (new-user-learning)$ curl https://ketanapp1-dot-new-user-learning.uw.r.appspot.com/

Hello, main.py ketan World from Moon!
ketan_patel@cloudshell:~/ketantest (new-user-learning)$ 





No comments:

Post a Comment

AppEngine - Python

tudent_04_347b5286260a@cloudshell:~/python-docs-samples/appengine/standard_python3/hello_world (qwiklabs-gcp-00-88834e0beca1)$ sudo apt upda...