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

17
AWS Lambda Node.js 4.3 NodeSchool Osaka #31 毛毛毛毛 (haruyuki mohri)

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

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

AWS Lambda Node.js 4.3

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

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

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

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

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

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

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

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

AWS Lambda• 例

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

Lambda

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

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

AWS Lambda + API Gateway• 例

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

Lambda

リソース↓処理↓完了

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

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

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

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

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

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

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

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

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

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

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

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);};

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

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);};

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

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

API Gateway

・ test_function

Lambda

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

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

投げたデータを ECHO する

C++Builder

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

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 版以上の機能 )

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

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_": " あいう " } ],

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

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

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

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

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

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

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

THANKS!