ラベル Google Clound Platform の投稿を表示しています。 すべての投稿を表示
ラベル Google Clound Platform の投稿を表示しています。 すべての投稿を表示

2016/04/01

AppEngineで簡単WANアドレス取得アプリ作成

昔 Google App EngineでWANアドレス管理サーバー なんて記事を書いたが、今回は最も簡単な方法で作ってみる。管理いらずの方法で目的は果たせる。

前回、Google Cloud Platformでプロジェクト作成してGitホスティングする記事を書いたが、そこまでは同じ。

プロジェクトのダッシュボードへ行く。
(AppEngineのダッシュボードはアプリ稼働させてから行くところ)

「Try App Engine」をクリックして、"Hellow World"アプリ作成とデプロイまでのチュートリアルをスタートさせる。

どの言語を使用するかだが、Java、Python、PHP、Go の4つが無料枠で使用できる。
そのうちのお好みの言語で。
ブラウザはChromeがいいかも。Firefoxでやったらコピペしたい文字列が空欄になった・・

ここでは最も簡単なPHPとGoでやってみる(だけど自分でコードは一切書かない)

「PHPのチュートリアルを開始する」で開始すると右側にチュートリアルが出てくる
「次へ」
「プロジェクトを作成する」 前記事の要領で
「次へ」
左上のサービスメニューから”開発”を選択 (言う通りにしないとチュートリアルが進まない)
「次へ」
ソースコードリストから"app.yaml"ファイルをクリックしてオープンする
”/”をクリックしてリストへ戻る (という手順のチュートリアルなのだ)
「次へ」
Google Cloud Shellを起動 (ナビバーの「>.」アイコン)
"show me how"というリンクをクリックすればどこをクリックすればいいのか教えてくれる。
初めての起動だと、インスタンスの構築に若干時間がかかる。2016年末まで無料だそうな。

Shellで
$ cd src/(project ID)/gcloud でクローン済みのリポジトリへ移動
チュートリアルに表示されている文字列をShellへコピペ実行でもOK
「次へ」
$ gcloud preview app deploy でデプロイする
チュートリアルに表示されている文字列をShellへコピペ実行でもOK
「次へ」もしくはチュートリアルキャンセル
チュートリアルはAppEngineのダッシュボードでステータス表示と続くが、この辺でキャンセルしてもいい。

WANアドレス表示アプリに改造

”開発”ダッシュボードからhelloworld.phpをクリック
「編集」で編集モードに
'Hello, world!' を $_SERVER['REMOTE_ADDR'] に書き換え
commit」でコミットする
Google Cloud Shellで
$ git pull する
$ gcloud preview app deploy でデプロイする

Goでも流れは同じだけど、Shellで編集する流れにすると
$ emacs hello/hello.go (なんとCloud ShellでEmacsが最初から使えるよ!)
handlerメソッドの fmt.Fprint(w, "Hello, world!") を fmt.Fprint(w, r.RemoteAddr) に変更
キーバインドが違うんでカーソル移動が厳しいか・・・
$ gcloud preview app deploy (デプロイ)
一応commit&pushも
$ git config --global user.email "my_name@gmail.com" (セットしてなければ)
$ git config --global user.name "my name" (セットしてなければ)
$ git commit -a -m "メッセージ"でコミット
$ git push origin
プレビュー確認
$ goapp serve  (Goのチュートリアルやると分かるがCloudShellからテストサーバー起動出来る)
Shellウインドウ左端の「ウェブでプレビュー」アイコンクリックすると表示される

https://(プロジェクト ID).appspot.com へアクセスするとWANアドレスが表示される

チュートリアルでGoogle Cloud Shellを使う流れになっているけど、2017年になったらどういうチュートリアルになるんだろ?素朴な疑問

javaの場合は
$ mvn gcloud:run テストサーバー起動
$ mvn gcloud:deploy デプロイ
忘れそうなので書き残しておく

gcloudブランチ
チュートリアルから作成したリポジトリは、masterではなくgcloudブランチを使う流れになっている。
masterとgcloudブランチの違いは、app.yamlファイル。
masterにはapplication: ~と version: ~の記述が冒頭にあるけど、gcloudブランチには無い。

試しにmasterブランチをgcloudデプロイしてみたら、applicationとversion記述はもう要らぬ!と怒られてデプロイできなかった。


ログからWANアドレスを知る

自宅以外の場所から自宅の現在のWANアドレスを知ために、以前は今回のようなアプリに更にアドレスをアプリで保存管理出来るようにしたり、変更された際にはメール通知するとか色々めんどくさいことをしていた。

今回は最も簡単(いい加減?)な方法で確実に知ることが出来る方法だ。

「ツールとサービス」メニューから”Stackdriverのログ"から、GETリクエストログの1つを開けてみれば、その先頭にWANアドレスが書かれている。

Stackdriverサービスのログリスト観覧だけなら、これも無料枠で大丈夫。

cron/crontabで定期的にwgetでアクセスさせておく。認証もしないシンプルアクセス

我が家のサーバーへアクセスしたくなった時、このログを出先で確認すればいいのです。
もう認証やらメール通知やら、小難しいことしないでも十分実用になっております。

懸念点としては、攻撃にあって通信量で無料枠オーバーとか不特定多数のログが多すぎて
自分のアクセスが見つからない・・・とか?
今のところその心配は皆無です。自分以外のアクセスは0です。

ログを見れば分かるからAppEngineアプリもHelloWorldのままでいいじゃんとも思うが、
外でも仕事で今のWANアドレス(GWはどれ通ってる?)知りたい時に手軽に利用できるんで
表示させるだけでも便利なのです。

2016/03/31

GoogleCloudPlatformでプライベートGitホスティング

昔の記事 Google Driveとgriveとgitリポジトリ  ではGitのプライベートリポジトリを無料で使えるところないかなぁ?とか思ったりしていたが、Google Cloud PlatformでプライベートGitホスティングが無料で使用できることに最近気づいた。ストレージ容量や通信量など制限はいくつかあるけれど個人レベルで使用するには十分。

Google Cloud Platform から見ていくと分かりにくいが、プロジェクト作成・Gitホスティング・AppEngineアプリサイト作成は無料枠内で利用できる。

その辺の流れをまとめてみた。

ChromeとかでConsoleへ自分のGoogleアカウントでログインする。
最初に、とにかくプロジェクトを作成する。

作成する際に若干注意する点としては、GitリポジトリURLやAppEngineのURLは、プロジェクト名ではなく、その下に小さく表示されている Project ID 名になる。ここをできるかぎり希望の名前になるように頑張る。

青いメニューバー左端の三本線アイコンメニューから下の方の”開発”を選ぶ。
ここがGitリポジトリのダッシュボード。

自分のローカル環境にGoogle Cloud SDKをインストール
Linux、Debian/Ubuntu、Mac、Windows版があるが、自分がこの手のことにいつも使っているのはUbuntuなので、Ubuntuで進める。

Devian/Ubuntuタブを選択するとインストールと初期設定までのスクリプトが表示されているので
これをそのまま実行すれば良い。

ただ、実行に必要なツールとして、curl python gitが必要なので予め入れておく。

$ gcloud init で初期設定 が行われる。これはCUIな対話式になっている。
:Googleアカウントへログイン
:自分のプロジェクトの選択
:Googleソースホスティングを使用するか?(当然Yes!)
:Gitリポジトリをクローンする?(defaultの1を選ぶ)
:ディレクトリ名はどうする?(defaultのままで良ければEnter)
これでdefault(もしくは指定したディレクトリ)へGitリポジトリが作成される。

$ git remote -v で確認すると
origin  https://source.developers.google.com/p/(プロジェクトID)/r/default (fetch)
origin  https://source.developers.google.com/p/(プロジェクトID)/r/default (push)
となっている。あとは git で普通にpush、pullすればよい。

既存Gitリポジトリにremote addするには、空のソースコードページに書いてあるとおり
$ gcloud init (やってなければ)
$ git config credential.helper gcloud.sh
$ git remote add google https://source.developers.google.com/p/(Project ID)/r/default
で追加できる。

無料枠内の利用であればどんな用途でもいいと思う。