2018/05/27

GCP: GAE appcfg.py の使い方

GAEの appcfg.py の使い方。Deploy以外にも使うことがあり、備忘録



2018/02/25

GCP: GAE上にAPI(POST)を作成ーDatastoreの操作(Create) ー Python



  • Goal
    GAE(Google App Engine)上にREST API(メソッドはPOST)を作成する。
    APIが呼び出されたら、GCP(Google Cloud Platform)のDatastoreに新規Entity(レコード)を追加する。言語・環境はPython+flask。
  • case
    名前、点数、教科名をjsonでPOSTしたら、GCPのDatastoreに書き込みして、Keyを返信する。
  • How
    1:開発環境は、以下でセットアップ
      Ubuntu16.4 + Pyenv:Python2.7.13 on GCE
      GCP: Google App Engine上にPython(Flask)アプリを立ち上げる手順

    2:ライブラリのセットアップ
      app.yaml に、flaskの記述を追加
      - name: flask
        version: 0.12

    3:mainプログラム と curl 結果


    4:Datastoreの結果

  • Thanks!

2018/02/24

Docker CE のディレクトリを引っ越しする方法

AWSのEC2 RHEL7.4 にDocker CEをセットアップする手順 の後に、Rootディレクトリを引っ越しする方法


・システム領域のハードディスクを大量に消費するので、別ディレクトリへ引っ越しする
以下の例は、/var/lib/docker から /xxx/mnt/docker/ へ引越し
0.初期設定確認
1.ServiceSTOP
2.ディレクトリを作ってコピー
3.設定変更
4.ServiceStart



2018/02/11

GCP: GAE(Google App Engine)のバージョン別のURL

GAEは、バージョン別に個別のURLをもっている。
なので、同時に複数バージョンを公開してテストできる。
知らなかった。。。

サンプル

https://"バージョン名"-dot-"プロジェクト名".appspot.com/

GCP: Google App Engine上にPython(Flask)アプリを立ち上げる手順



  • Goal
    開発環境も何も無い状態から、GAE(Google App Engine)上にFlaskアプリ(Hello World)を30分以内に立ち上げる。
    GAEは、Standard Environmentなので、Pythonは、2.7
  • How
    1. GCP上に新プロジェクト作成(xxxxx-test−0001) ⇒ 手順割愛
    2. GCP上で、GAEを有効にする。 ⇒ 手順割愛
      初めてのアプリ作成で、Pythonを選ぶ。
      チュートリアルはやらなくて良いので、途中で抜ける。
      1プロジェクトで、1GAEアプリしか持てない。
    3. GCP上に新VMインスタンス(Ubuntu16.4)作成(dev001) ⇒ 手順割愛
      TYPEはMicro(無料マシン)でOK。
      別にローカルマシンがあればそれでもOK。
    4. VM(dev001)の設定 ー 開発環境構築
        4-1. 初期設定 + Pyenv + GAEのSDKの導入
          以下のファイルを実行
       
         ~$ . UbuntuSetupForGAE.sh

        4-2. Localに開発用フォルダの作成とPyenvのセットアップ      
           

    5. Deploy
      localでのテスト。main.pyがあるディレクトリで以下を実行
          $ 
    dev_appserver.py .
     
       Deploy。 main.pyがあるディレクトリで以下を実行する
          $ appcfg.py update --noauth_local_webserver -A "project id" -V "version" .

    6. 確認する。以下のURLにアクセスする。
      
    https://”projectid”.appspot.com
         



  • Notes
    これを使って、LineのBotなどマイクロサービスを立ち上げれる
    main.pyの編集と必要なlibのインストールが必要
  • Thanks!!

  • 2017/12/09

    木村家の人々

    昔見て、ものすごい衝撃的だった映画。”守銭奴”という言葉を覚えた映画。
    今なら、もっと別の小銭稼ぎ方法があるかも。あと、今じゃもう放送できないのかな。
    妻とみたが、妻にもまあまあ好評。
    昔見た時は、たしか親と見ていて気まずかった記憶あり。。。

    木村家の人々

    2017/12/02

    Pyenv + virtualenv のセットアップ手順 on AWS-EC2

    AWSのEC2 RHEL7.4(Ubuntuの場合は、パッケージの部分だけ違う) に Pyenv+virtualenv をセットアップする手順

    1.インストール


    2.チェックとちょこっと設定
    #切り替え可能なバージョンチェック
    [ec2-user@ip-10-0-0-174 ~]$ pyenv versions
    * system (set by /home/ec2-user/.pyenv/version)
    #インストール可能なPythonバージョンを確認
    [ec2-user@ip-10-0-0-174 ~]$ pyenv install -l
    Available versions:
      2.1.3
      2.2.3
      2.3.7
      2.4
      2.4.1

      2.4.2
    #新しいPythonのバージョンをインストール
    [ec2-user@ip-10-0-0-174 ~]$ pyenv install 2.7.13
    Downloading Python-2.7.13.tar.xz...
    -> https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz
    Installing Python-2.7.13...
    Installed Python-2.7.13 to /home/ec2-user/.pyenv/versions/2.7.13
    #2.7.13が追加された。
    [ec2-user@ip-10-0-0-174 ~]$ pyenv versions
    * system (set by /home/ec2-user/.pyenv/version)
      2.7.13
    #2.7.13をベースに、"testpy"という環境を構築する
    [ec2-user@ip-10-0-0-174 ~]$ pyenv virtualenv 2.7.13 testpy
    Collecting virtualenv
      Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB)
        100% |████████████████████████████████| 1.8MB 638kB/s 
    Installing collected packages: virtualenv
    Successfully installed virtualenv-15.1.0
    New python executable in /home/ec2-user/.pyenv/versions/2.7.13/envs/testpy/bin/python2.7
    Also creating executable in /home/ec2-user/.pyenv/versions/2.7.13/envs/testpy/bin/python
    Installing setuptools, pip, wheel...done.
    Requirement already satisfied: setuptools in /home/ec2-user/.pyenv/versions/2.7.13/envs/testpy/lib/python2.7/site-packages
    Requirement already satisfied: pip in /home/ec2-user/.pyenv/versions/2.7.13/envs/testpy/lib/python2.7/site-packages
    #"testpy"が追加された
    [ec2-user@ip-10-0-0-174 ~]$ pyenv versions
    * system (set by /home/ec2-user/.pyenv/version)
      2.7.13
      2.7.13/envs/testpy
      testpy
    #開発用のディレクトリ"pyproject"のPython環境を"testpy"に変更する
    [ec2-user@ip-10-0-0-174 ~]$ cd pyproject/
    #今のバージョンは、2.7.5だが。。
    [ec2-user@ip-10-0-0-174 pyproject]$ python -V
    Python 2.7.5
    #Pyenvで変更すると
    [ec2-user@ip-10-0-0-174 pyproject]$ pyenv local testpy 
    (testpy) [ec2-user@ip-10-0-0-174 pyproject]$ python -V
    Python 2.7.13

    バージョン2.7.13へと変更された。