Nodeschool osaka 31 AWS Lambda Node.jsを試した

Post on 12-Apr-2017

254 views 2 download

Transcript of Nodeschool osaka 31 AWS Lambda Node.jsを試した

AWS Lambda Node.js 4.3

NodeSchool Osaka #31毛利春幸 (haruyuki mohri)

自己紹介• 毛利春幸• エンバカデロ・テクノロジーズ ( 元 Borland) に勤務• Delphi / C++Builder 統合開発環境の製造販売

• 趣味はドラムとかギターとかです。• Twitter @haruyuk

AWS Lambda• いつでも呼び出し可能なサーバーレスな関数を作れます。• 時間がかかりそうな処理を Lambda に任せてしまう事ができます。

• サーバー (VM) を立てる必要が無いのでサーバーメンテナンスが不必要です• 使える言語 (C#, JAVA, Node.js, Edge Node.js, Python2.7)• Node.js は 4.3 が利用可能です。

AWS Lambda• 例

Web サーバ・関数 1()・関数 2()・関数 3()

Lambda

処理スクリプト↓重い処理↓完了

AWS Lambda + API Gateway• 例

API Gateway・関数 1()・関数 2()・関数 3()

Lambda

リソース↓処理↓完了

AWS Lambda Create Function• Lambda 一番シンプルな作り方

AWS Lambda Create Function• ファンクション名を入れて完成です。

AWS Lambda Create Function• プログラム 「 Hello from Lambda 」

exports.handler = (event, context, callback) => { // TODO implement callback(null, 'Hello from Lambda');};

‘Hello from Lambda’ と出力されます。

AWS Lambda Create Function• exports.handler の引数• event イベントデータをハンドラーに渡します。• context 実行中の Lambda 関数のランタイム情報をハンドラーに提供• callback 呼び出し元に情報を返すために使用

AWS Lambda exports.handler の引数• event

exports.handler = (event, context, callback) => { // TODO implement callback(null, 'Hello from Lambda');};

exports.handler = (event, context, callback) => { // TODO implement callback(null, event);};

AWS Lambda exports.handler の引数• context

exports.handler = (event, context, callback) => { // TODO implement callback(null, 'Hello from Lambda');};

exports.handler = (event, context, callback) => { // TODO implement callback(null, context);};

AWS Lambda +API Gateway+ C++Builder• 例

API Gateway

・ test_function

Lambda

リソース↓処理↓完了 exports.handler = (event, context, callback) => {

// TODO implement callback(null, event);};

投げたデータを ECHO する

C++Builder

C++Builder(Embarcadero)• C++Builder は TNetHTTPClient と言うコンポーネントがあり

http / https に接続するコードは非常にシンプルに書けます。std::unique_ptr<TNetHTTPClient> net_cliant_{new TNetHTTPClient(nullptr)};http_ = net_cliant_->Post( "https://*.execute-api.ap-northeast-1.amazonaws.com/test-function",

フォーム設計画面

iOS, Android, Windowsターゲットプラットフォームを変更するだけ(Professional 版以上の機能 )

C++Builder(Embarcadero)• C++Builder は TJSONObject::ParseJSONValue() があります

event 内容はすごく多くの情報がはいっています。

static_cast<TJSONObject*>(TJSONObject::ParseJSONValue(ms1->DataString)))->GetValue("body-json");

return static_cast<TJSONObject* >(value_)->GetValue("value_")->Value();

{ "body-json": [ { "value_": " あいう " } ],

C++Builder(Embarcadero)• スターターエディション ( 無償 )

• https://www.embarcadero.com/jp/products/cbuilder/starter/promotional-download

https://www.youtube.com/watch?v=_dLVLvdmkh0

C++Builder(Embarcadero)• お問合せ• https://www.embarcadero.com/jp/company/contact-us-japan

THANKS!