この記事は、前回のGoogle App Engine Managed VM Dartを使ってみる の続きです。
gcloud SDKのインストール
Google cloud SDKをインストールします。 手順については、https://cloud.google.com/sdk/#Quick_Start を参照してください。 忘れずに $ gcloud auth login しましょう。
Google Cloudにsample projectを作る
WebブラウザのGoogle Developers Consoleなどから、Dart GAEの動作確認用のsample projectを作ります。
作成したら、そのsample projectのproject-idをセットします。
$ gcloud config set project
gcloudを最新版にする。
$ gcloud components update app
Sample project でhello world
ここから、Dart app engineのprojectをlocalに作成していきます。
$ mkdir helloworld && cd helloworld
app.yamlの作成
Appengineアプリケーションにはapp.yamlが必要です。以下の内容でapp.yamlファイルを作成します。
version: helloworld
runtime: custom
vm: true
api_version: 1
Dockerfileの作成
以下の内容でDockerfile
ファイルを作成します。
FROM google/dart-runtime
pubspec.yamlの作成
Dartアプリケーションなので、pubspec.yamlが必要です。以下の内容でpubspec.yaml
ファイルを作成します。
name: helloworld
version: 0.1.0
author: <your name>
dependencies:
appengine: '>=0.2.1 <0.3.0'
dependencies sectionでappengine packageを指定しています。
忘れずに pub get
してpackageをinstallしておきましょう。
hello world コードを書く
Dart appengineは必ずbin/server.dart
から起動します。 bin/ directoryを作成します。
$ mkdir bin
bin/server.dartを作成し、以下のコードを書きます。
import 'dart:io';
import 'package:appengine/appengine.dart';
main() {
runAppEngine((HttpRequest request) {
request.response..write('Hello, world!')
..close();
});
}
Docker imagesの取得
起動する前に、docker imagesを取得しておきます。
$ docker pull google/dart-runtime
起動
local環境でappengineを起動します。
$gcloud preview app run app.yaml
ブラウザから、http://localhost:8080にアクセスし、Hello, world!’と表示されていることを確認します。
Deployment
$ gcloud preview app deploy app.yaml
- Dart GAEはGoogle Container Engineを使用しているため、クレジットカードを登録して課金を有効にする必要があります。 Google developers consoleから、デプロイしたurlにアクセスし、動作を確認して下さい。
まとめ
詳細な解説は、https://www.dartlang.org/server/google-cloud-platform/app-engine/run.html を参照してください。 コードサンプルは、https://github.com/dart-lang/appengine_samples にまとめられています。コードサンプルではgcloudのAPIとしてcloud_datastore、cloud_sql, memcache, modulesなどのサンプルが確認できます。
Dart app engineはベータ版であるため、シリアスなプロジェクトでの採用にはまだ慎重になるべきです。ドキュメントも未整備の部分が多いのですが、ライブラリののコードを読んで楽しめる人は挑戦してみると面白いかもしれません。AppEngineのサービスに乗ってDartでサーバーを構築できるのは大きな魅力なので、折にふれて動向を追っていければと思います。
0 件のコメント :
コメントを投稿