Nodeschool osaka 31 AWS Lambda Node.jsを試した
-
Upload
mohri-haruyuk -
Category
Engineering
-
view
254 -
download
2
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!