• 検索結果がありません。

aws-lambda #awslambda

N/A
N/A
Protected

Academic year: 2021

シェア "aws-lambda #awslambda"

Copied!
49
0
0

読み込み中.... (全文を見る)

全文

(1)

aws-lambda

#aws-lambda

(2)

1

1: aws-lambda

2

2

2

Lambda

2

Examples

2

2

Java AWS-Lambda S3

8

2: AWS Lambda with S3

11

11

Examples

11

11

javascriptAWS-SDK

11

11

S3

11

Elasticache Redis

11

3: AWSS3

13

Examples

13

Java

13

4: PythonAWS Lambda

14

Examples

14

AWS

14

-

14

5: S3aws-lambda

26

26

26

26

26

26

26

(3)

S3 PUT

26

6:

28

Examples

28

BlueprintAlexa

28

7:

31

31

31

Examples

31

31

CRUD

31

8: aws-lambdaC

39

39

39

39

Examples

39

1. Visual Studio

39

2.

41

3 - AWS

43

4. Visual StudioAWS Lambda

44

(4)

You can share this PDF with anyone you feel could benefit from it, downloaded the latest version

from: aws-lambda

It is an unofficial and free aws-lambda ebook created for educational purposes. All the content is

extracted from Stack Overflow Documentation, which is written by many hardworking individuals at

Stack Overflow. It is neither affiliated with Stack Overflow nor official aws-lambda.

The content is released under Creative Commons BY-SA, and the list of contributors to each

chapter are provided in the credits section at the end of this book. Images may be copyright of

their respective owners unless otherwise specified. All trademarks and registered trademarks are

the property of their respective company owners.

Use the content presented in this book at your own risk; it is not guaranteed to be correct nor

accurate, please send your feedback and corrections to [email protected]

(5)

1: aws-lambda

のい

AWS Lambdaは、クラウドでをするためのサーバーレスです。のAmazon Web Servicesテクノロ

ジをして、なにのみ、のしたでにおよびできます。ラムダをすると、コードをアップロードし、

さまざまなトリガにづいてするようにし、したらプロセスをにすることができます。これは、ペ

イ・パー・ユース・モデルでし、にがく、がです。

AWS Lambdaは、Node.jsJavaScript、Python、JavaJava 8およびC.NET Coreでかれたコード

をサポートしています。あなたのコードには、のライブラリもまれています。

トリガにはのものがあります。

HTTPエンドポイント

モバイルアプリ

のAWSサービスAmazon APIゲートウェイでのRESTをむ

Lambda

は、のようなリアルタイムのサーバー

レスデータにされています。

アップロードのファイル

トランスコード

インデックス

○ ○

サイズとフィルタリング

ストリーミングデータ

テレメトリー

メソッドベースのモバイルおよびWebバックエンドとして

のAWSのとリンク

Examples

インストールまたはセットアップ

AWS Consoleにログインし、[ サービス ]タブの[ ラムダ ]をクリックします。

1.

では、じラベルのボタンをってラムダをすることができます。

2.

https://riptutorial.com/ja/home

2

(6)

をできるがされます。これらは、ラムダをすぐにいめるためののラムダのにすぎません。

3.

(7)

のでは、このラムダをオフにするためにするトリガーをできます。トリガなしタスクにじて

でで、APIゲートウェイサーバーレスのRESTクライアントをする、Alexaスキル、またはす

るをするのくのツールからできます。

4.

(8)

、 、 ランタイムをしたり、インラインでをしたり、.zipファイルをアップロードしたり、

Amazon S3からファイルをアップロードしたり、 ロールをしたりすることで、のでをしま

すパーミッションベースAWSサービスの、メモリとをし、ライブでできるようにアプリを

します。

(9)
(10)

に、あなたのをしてします。 LambdaはPay-Per-Useモデルをしているので、しくしたをす

るまでチャージャーはしません。

(11)

Java AWS-Lambda S3

トリガー

AWS-Lambdaは、のバケットイベントにアタッチすることができます。ファイル/フォルダがまた

はされるたびに、イベントによってラムダのがトリガされます。

アップロードされたファイルのをするなラムダ

これは、アップロードされたファイルのをする1つのクラスのラムダプロジェクトです。これらの

をするがあります。

<dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-lambda-java-core</artifactId> <version>1.1.0</version>

https://riptutorial.com/ja/home

8

(12)

<type>jar</type> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-lambda-java-events</artifactId> <version>1.3.0</version> <type>jar</type> </dependency> </dependencies>

さあ、HelloWorldクラスにきましょう

package com; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.amazonaws.services.lambda.runtime.events.S3Event; import com.amazonaws.services.s3.event.S3EventNotification;

public class HelloWorld implements RequestHandler< S3Event, String> { @Override

public String handleRequest(S3Event event, Context ctx) {

S3EventNotification.S3EventNotificationRecord record=event.getRecords().get(0); System.out.println("Bucket Name is "+record.getS3().getBucket().getName()); System.out.println("File Path is "+record.getS3().getObject().getKey()); return null; } }

のステップは、mvnをしてプロジェクトをビルドすることです。

プロジェクトをビルドした、AWS-Lambdaにアップロードするがあります。ラムダにき、「ラム

ダを」をします。 Javaがそこにないので、をするをスキップしてください。

また、のからするため、「トリガーの」をスキップしてください。のページでは、のラムダのを

し、にさなをし、にJavaをします。

「コードタイプ」で「ZIPファイルからアップロード」をし、ので.zipファイルをしてアップロー

ドします。

このページののんだはHandlerフィールドです。ハンドラフィールドでは、RequestHandlerをす

るクラスのをするがあります。このクラスはラムダのエントリポイントであり、ラムダはしくさ

れていないとしません。ケースハンドラは "com.HelloWorld"です。

ラムダにS3トリガーをける

ここでは、S3ファイルのアップロードにトリガーをします

S3にみ、バケットをしてから[プロパティ]をします。

[プロパティ]セクションで、[イベント]にします。

イベントのをします。 [イベント]フィールドで、ラムダのトリガーをします。 "

ObjectCreatedAll"をします。ラムダとバケットはじアマゾンにあるがあることにしてくださ

(13)

"Sends to"には、Lambda Functionをチェックし、リストからラムダをします。

ラムダの

ここで、ラムダトリガをつファイルをバケットにアップロードします。ラムダとログをるには、

"CloudWatch"にき、 "Logs"をんでラムダをんでください。 「ログストリーム」のにのエントリ

がされ、のものをしてくことができます。そこにラムダのをることができるはずです。

オンラインで

aws-lambda

のいをむ

https://riptutorial.com/ja/aws-lambda/topic/2357/aws-lambda

https://riptutorial.com/ja/home

10

(14)

2: AWS Lambda with S3

ラムダのは、のAWSリソースのをとするをします。このトピックでは、ファイルやそののをする

ためににされるS3Simple Storage Serviceにをてています。このドキュメントでは、ラムダの

AWS-SDKの、ラムダのS3のファイルへのアクセス、S3のイベントがしたときのラムダのトリガ

についてします

Examples

カンニングペーパー

javascript

AWS-SDK

Lambdaには、グローバルにaws-sdk https://aws.amazon.com/sdk-for-node-js/がまれているため、

このノードモジュールをzipにアップロードするはありません。

const AWS = require('aws-sdk');

サンプル

module.exports.myFunction = (event, context, callback) => { const response = {

statusCode: 200, body: 'Hello Lambda!', };

return callback(null, response); };

S3

const s3 = new AWS.S3;

Elasticache Redis

での

//make sure redis node-module is added in zip const redis = require('redis');

//the redis information should be stored in the environment, not hard coded const redis_options = {

host: process.env.REDIS_HOST, port: process.env.REDIS_PORT };

(15)

module.exports.myFunction = (event, context, callback) => { try {

let client = redis.createClient(redis_options); context.callbackWaitsForEmptyEventLoop = false; client.on('connect', () => { console.log('Connected:', client.connected); }); client.on('end', () => { console.log('Connection closed.'); }); client.on('ready', function () { console.log('Connection ready.'); client.keys('*', (err, keys) => {

//always quit the redis client when no longer needed //else the connection will be used up

client.quit();

const response = { statusCode: 200, body: keys, };

return callback(null, response); }); } catch (err) { if (client) { client.quit();} console.log('Error!: ' + err.message); callback(err); } };

オンラインで

AWS Lambda with S3

をむ

https://riptutorial.com/ja/aws-lambda/topic/9286/aws-lambda-with-s3

(16)

3: AWS

ラムダは

S3

によってトリガされる

Examples

Java

のエコー

ハンドラのをバーフリングすることで、このをにできます。たとえば、Javaの

public String handleRequest(String input, Context context) {

context.getLogger().log("Input: " + input);

String output = "Input:" + System.getProperty("line.separator") + input;

return output; }

オンラインで

AWS

ラムダは

S3

によってトリガされるをむ

https://riptutorial.com/ja/aws-lambda/topic/6216/aws

ラムダは

s3

によってトリガされる

(17)

4: Python

をした

AWS Lambda

Examples

なぜ

AWS

ラムダですか

AWS Lambdaがサポート

なスケーラビリティと

にやさしいとサーバーのは

AWSサービスとのネイティブな

アイドルをうはありません

RESTfulな

AWS APIゲートウェイをしたRESTfulインターフェイスの

ハローワールド - ラムダ

これはもなラムダの1つです。 Hello Worldプログラムとです。

のプログラムをするには、のにいます。

AWS Consoleにログインする

1.

のラムダをクリックします

2.

ラムダのをクリックします。

3.

https://riptutorial.com/ja/home

14

(18)

したのセクションをスキップする

4.

トリガでのをクリック

5.

(19)
(20)

APIゲートウェイを

6.

なをのようにします。

7.

(21)
(22)

API Nameは、するAPIのです。 リソースパターンは、ラムダをびすことができるURLパス

です。なhttpメソッドをします。このではGETをします。 AWSではステージングはprodや

devのようにさまざまなでうことができます...これはprodとdevのをするのにちます。デモの

ために、セキュリティをオープンとしてすることができますではされません。

API Nameは、するAPIのです。 リソースパターンは、ラムダをびすことができるURLパス

です。なhttpメソッドをします。このではGETをします。 AWSではステージングはprodや

devのようにさまざまなでうことができます...これはprodとdevのをするのにちます。デモの

ために、セキュリティをオープンとしてすることができますではされません。

のようにをする

8.

(23)
(24)

、の、およびをします。たちはとしてPythonをしています。

コードをします。

ここではのクラウドトレイルでaws lambdaイベントをしています。また、をしています。

9.

ラムダハンドラとロールをする

10.

(25)
(26)

ハンドラがlambda_functionでまることをしてください。lambdaをするためのしいロールも

してください。をするためになメインメモリのをします。デフォルトのタイムアウトをし、

へをクリックします

をクリックします。

11.

これであなたのはがいました。 awsがするリンクをクリックしてください

12.

(27)
(28)

リンクをクリックするとラムダがバックグラウンドでされ、ブラウザにがされます。

オンラインで

Python

をした

AWS Lambda

をむ

https://riptutorial.com/ja/aws-lambda/topic/6698/python

をした

aws-lambda

(29)

5: S3

によってトリガされた

aws-lambda

デシリアライズされたJSONベースのオブジェクト

「レコード」キーには1つまたはののイベントがあります

サブイベントオブジェクトには、されたをするためになすべてのがまれています

パラメーター

パラメータ

Records - > [] - > s3 - > bucket - > name

S3バケットの

Records - > [] - > s3 - > object - > key

ファイルのパスと。

ファイル

ほとんどのファイルパスとはなり、S3キーJSONスキーマ $.Records[0].s3.object.key にはスラッ

シュがまれていません。したがって、パスs3://mybucket/path/file.txtにファイルがある、キーは

path/file.txtなりpath/file.txt

なくともPythonでは、キーフィールドはUTF-8 URLエンコードされています。これは、ファイル

にまたはASCIIのがまれているにになります。フィールドをURLでデコードし、にUTF-8をデコー

ドするがあります -

ラムダの

S3

イベントから

ASCII

ファイル

するを

レコードキー

イベントの"Records"キーのにじまたはなるアクションをつことができます。ただし、には、、ラ

ムダのびしごとに1つのイベントがされます。

よりくのとテスト

[アクション] - > [テストイベントの]をすると、にはラムダコンソールにサンプルイベントがあり

ます。ただし、のでは、PUTをることができます。

AWS Lambdaコンソールからテストイベントをしてして、がどのようにするかをすることができ

ます。

Examples

S3 PUT

https://riptutorial.com/ja/home

26

(30)

{ "Records": [ { "eventVersion": "2.0", "eventTime": "1970-01-01T00:00:00.000Z", "requestParameters": { "sourceIPAddress": "127.0.0.1" }, "s3": { "configurationId": "testConfigRule", "object": { "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901", "key": "HappyFace.jpg", "size": 1024 }, "bucket": { "arn": "arn:aws:s3:::mybucket", "name": "sourcebucket", "ownerIdentity": { "principalId": "EXAMPLE" } }, "s3SchemaVersion": "1.0" }, "responseElements": { "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH", "x-amz-request-id": "EXAMPLE123456789" }, "awsRegion": "us-east-1", "eventName": "ObjectCreated:Put", "userIdentity": { "principalId": "EXAMPLE" }, "eventSource": "aws:s3" } ] }

オンラインで

S3

によってトリガされた

aws-lambda

をむ

https://riptutorial.com/ja/aws-lambda/topic/6618/s3

によってトリガされた

aws-lambda

(31)

6:

アレクサスキルキット

Examples

Blueprint

をして

Alexa

スキルキットをする

AWS Management Consoleにログインし、AWS Lambdaにします。

[]をクリックすると、このウィンドウがされます。

ランタイムをしますが、node.jsとpythonののみサンプルコードをしてください

アレクサスキルキットには2つのがあります。あなたはそれらのものをフィルタリングすることが

できます。

これらのいプリントのの1つをします。なフィールドにをして、にトリガするウィンドウをするこ

とができます。

https://riptutorial.com/ja/home

28

(32)

[ Configure function]ウィンドウで、ラムダのをし、のにロールをするがあります。

これで、をできます。

、あなたのをテストすることができます。クリックアクションボタン

ここでは、 Configure test event

ウィンドウで、alexaイベントテンプレートをします。テンプレートはしたによってなります

このテンプレートをすると、コードサンプルをテストできます。

(33)

オンラインでアレクサスキルキットをむ

https://riptutorial.com/ja/aws-lambda/topic/7698/

アレクサ

スキルキット

(34)

7:

サーバーレスフレームワーク

オープンソースのアプリケーションフレームワークで、AWS Lambdaなどでサーバーレスのアー

キテクチャをにできます。このセクションでは、アプリケーションのためのサーバーレスフレー

ムワークをするでするについてします。

「Serverless」はフレームワークです https : //serverless.com/

Examples

サーバレス

グローバルにサーバーレスでインストールする

npm install serverless -g

Node.jsにAWS Lamdbaをする

serverless create --template aws-nodejs

handler.js

'use strict';

// Your first function handler

module.exports.hello = (event, context, cb) => cb(null,

{ message: 'Go Serverless v1.0! Your function executed successfully!', event } );

// You can add more handlers here, and reference them in serverless.yml

ライブAWSアカウントにデプロイする

serverless deploy

シンプルな

CRUD

をする

サーバレスフレームワークをしたなCRUDの

グローバルにServerlessフレームワークをインストールする

npm install serverless -g

(35)

なラムダサービスをする

serverless create --template aws-nodejs --path myService

まれるmyServiceディレクトリにします。

serverless.yml

1.

handler.js

2.

event.json

3.

すべてのServerlessサービスはserverless.ymlによってされます

CRUDサービスをするためにをしてください。

serverless.ymlファイルの

service: serverless-crud provider: name: aws runtime: nodejs4.3 region: us-east-1 stage: dev iamRoleStatements: - Effect: Allow Action: - dynamodb:DescribeTable - dynamodb:Query - dynamodb:Scan - dynamodb:GetItem - dynamodb:PutItem - dynamodb:UpdateItem - dynamodb:DeleteItem Resource: "arn:aws:dynamodb:us-east-1:*:*" functions: create: handler: handler.create events: - http: path: todos method: post cors: true readAll: handler: handler.readAll events: - http: path: todos method: get cors: true readOne: handler: handler.readOne events: - http: path: todos/{id}

https://riptutorial.com/ja/home

32

(36)

method: get cors: true update: handler: handler.update events: - http: path: todos/{id} method: put cors: true delete: handler: handler.delete events: - http: path: todos/{id} method: delete cors: true resources: Resources: TodosDynamoDbTable: Type: 'AWS::DynamoDB::Table' DeletionPolicy: Retain Properties: AttributeDefinitions: - AttributeName: id AttributeType: S KeySchema: - AttributeName: id KeyType: HASH ProvisionedThroughput: ReadCapacityUnits: 1 WriteCapacityUnits: 1 TableName: 'todos'

このファイル

ラムダプログラミング

1.

ラムダポリシー

2.

Dynamodbテーブルのとポリシー

3.

HTTPエンドポイントAPIゲートウェイエンドポイント

4.

に、handler.jsファイルにラムダnode.jsをするがあります。これをすることができます。

'use strict';

const todosCreate = require('./todos-create.js'); const todosReadAll = require('./todos-read-all.js'); const todosReadOne = require('./todos-read-one.js'); const todosUpdate = require('./todos-update.js'); const todosDelete = require('./todos-delete.js');

module.exports.create = (event, context, callback) => { todosCreate(event, (error, result) => {

(37)

headers: { "Access-Control-Allow-Origin" : "*" }, body: JSON.stringify(result), }; context.succeed(response); }); };

module.exports.readAll = (event, context, callback) => { todosReadAll(event, (error, result) => {

const response = { statusCode: 200, headers: { "Access-Control-Allow-Origin" : "*" }, body: JSON.stringify(result), }; context.succeed(response); }); };

module.exports.readOne = (event, context, callback) => { todosReadOne(event, (error, result) => {

const response = { statusCode: 200, headers: { "Access-Control-Allow-Origin" : "*" }, body: JSON.stringify(result), }; context.succeed(response); }); };

module.exports.update = (event, context, callback) => { todosUpdate(event, (error, result) => {

const response = { statusCode: 200, headers: { "Access-Control-Allow-Origin" : "*" }, body: JSON.stringify(result), }; context.succeed(response); }); };

module.exports.delete = (event, context, callback) => { todosDelete(event, (error, result) => {

const response = { statusCode: 200, headers: { "Access-Control-Allow-Origin" : "*" }, body: JSON.stringify(result), };

https://riptutorial.com/ja/home

34

(38)

context.succeed(response); }); };

に、CRUDをするためのしいファイルをするがあります

これらのファイルをする

todos-create.js

1.

todos-read-all.js

2.

todos-read-one.js

3.

todos-update.js

4.

todos-delete.js

5.

に、これらのをファイルでします。

todos-create.js

'use strict';

const AWS = require('aws-sdk');

const dynamoDb = new AWS.DynamoDB.DocumentClient(); const uuid = require('uuid');

module.exports = (event, callback) => { const data = JSON.parse(event.body);

data.id = uuid.v1();

data.updatedAt = new Date().getTime();

const params = { TableName: 'todos', Item: data

};

return dynamoDb.put(params, (error, data) => { if (error) { callback(error); } callback(error, params.Item); }); };

todos-read-all.jsの

'use strict';

const AWS = require('aws-sdk');

const dynamoDb = new AWS.DynamoDB.DocumentClient();

module.exports = (event, callback) => { const params = {

(39)

return dynamoDb.scan(params, (error, data) => { if (error) { callback(error); } callback(error, data.Items); }); }; For todos-read-one.js <br> 'use strict';

const AWS = require('aws-sdk');

const dynamoDb = new AWS.DynamoDB.DocumentClient();

module.exports = (event, callback) => { const params = { TableName: 'todos', Key: { id: event.pathParameters.id } };

return dynamoDb.get(params, (error, data) => { if (error) { callback(error); } callback(error, data.Item); }); };

todos-update.jsの

'use strict';

const AWS = require('aws-sdk');

const dynamoDb = new AWS.DynamoDB.DocumentClient();

module.exports = (event, callback) => { const data = JSON.parse(event.body);

data.id = event.pathParameters.id; data.updatedAt = new Date().getTime();

const params = { TableName : 'todos', Item: data

};

return dynamoDb.put(params, (error, data) => { if (error) { callback(error); } callback(error, params.Item); }); };

https://riptutorial.com/ja/home

36

(40)

todos-delete.jsの

'use strict';

const AWS = require('aws-sdk');

const dynamoDb = new AWS.DynamoDB.DocumentClient();

module.exports = (event, callback) => { const params = { TableName : 'todos', Key: { id: event.pathParameters.id } };

return dynamoDb.delete(params, (error, data) => { if (error) { callback(error); } callback(error, params.Key); }); };

これらのアプリケーションをするには、npmのをインストールするがあります

npm init npm

1.

npm install aws-sdk --saveインストールしますnpm install aws-sdk --save aws-sdkをインス

トールします

2.

npm install uuid --save

3.

これらのプロジェクトをすることができます

cd myServiceプロジェクトディレクトリにあることをしてからコードをデプロイできます serverless deploy

エンドポイントをする

あなたがにしたは、コンソールにapi gatewayのをしてください。

エンドポイントのをテストする

curl -X POST https://XXXX.execute-api.region.amazonaws.com/dev/todos --data '{ "body" : "Learn Serverless" }'

みりエンドポイントのテストすべてみり

curl https://XXXX.execute-api.region.amazonaws.com/dev/todos

みりエンドポイントのテストみり

(41)

エンドポイントのテスト

curl -X PUT https://XXXX.execute-api.region.amazonaws.com/dev/todos/<id> --data '{ "body" : "Understand Serverless" }'

エンドポイントののテスト

`curl -X DELETE https://XXXX.execute-api.region.amazonaws.com/dev/todos/<id`>

オンラインでサーバーレスフレームワークをむ

https://riptutorial.com/ja/aws-lambda/topic/6719/

ーバーレスフレームワーク

(42)

8:

ローカルマシンで

aws-lambdaC

をする

Serverless

きのとして、AWSは、AWS LambdaのCサポートをしました。このでは、Visual

Studio 2015をしてなCAWSラムダを、インストール、びしするをします。

このをするに、まずの「」にみ、なコンポーネントがすべてインストールされていることをして

ください。

なコンポーネントをインストールする

この20171に、のコンポーネントをこのでマシンにインストールするがあります。がったマシン

にはWindows 10 Homeがインストールされていました。

Visual Studio 2015

アップデート3

1.

AWS Toolkit for Visual Studio 2015 - バージョン1.11.2.0

2.

Microsoft .NET

コアツールプレビュー2

- バージョン14.1.21111.0

3.

これらのコンポーネントはにされ、リリースされているため、にじてリンクとバージョンをし、

このドキュメントをしてください。

これら

それぞれ

インストール

がかかることがあります

ので、いをにえるためにに1つずつって

ください。

に、をするにWindowsをするのはしいことですが、Windowsボックスになツールをインストール

したは、にいアイデアです。

Examples

1. Visual Studio

でしいソリューションをする

Visual Studioをき、ファイルを - >プロジェクト

1.

テストをむAWSラムダプロジェクト.NET Coreを

2.

(43)

に、 のがされます。 「 の」をし、「」ボタンをクリックします。

3.

「ツール」 - >「NuGetパッケージマネージャー」 - >「パッケージマネージャーコンソール

」をします。

4.

コンソールウィンドウで、「 Install-Package Amazon.Lambda.Core

とし

ます。

5.

ソリューションエクスプローラでプロジェクトをクリックし、[パッケージの]をします。こ

6.

https://riptutorial.com/ja/home

40

(44)

れはコードをするのなです。

ステップ2.プロジェクトのコードをしてする

Function.csをき、クラスコードをのようにきえます。 public class Function

{

/// <summary>

/// A simple function that takes a birth date and returns Age in years /// </summary>

/// <param name="input"></param> /// <returns>Age is years</returns> ///

[LambdaSerializer(typeof(SimpleSerializer))]

public string FunctionHandler(Dictionary<string, int> input) {

var defaultMessage = "Age could not be determined.";

var birthDate = new DateTime(input["year"], input["month"], input["day"]); var ageInYears = DateTime.Today.Year - birthDate.Year;

if (birthDate.DayOfYear > DateTime.Today.DayOfYear) ageInYears--;

defaultMessage = $"Age in years: {ageInYears}";

return defaultMessage; } }

1.

のくにのusingステートメントをするがあります。

using System.Collections.Generic; using Amazon.Lambda.Core;

(45)

SimpleSerializer.csというのプロジェクトにファイルをする

2.

そのファイルにのコードをします。

3.

using System; using System.IO; using Amazon.Lambda.Core; using Newtonsoft.Json; namespace AWSLambdaFunctionAgeInYears {

public class SimpleSerializer : ILambdaSerializer {

public T Deserialize<T>(Stream requestStream) {

string text;

using (var reader = new StreamReader(requestStream)) text = reader.ReadToEnd();

try {

return JsonConvert.DeserializeObject<T>(text); }

catch (Exception ex) {

if (typeof(T) == typeof(System.String))

return (T)Convert.ChangeType(text, typeof(T));

throw ex; }

}

public void Serialize<T>(T response, Stream responseStream) {

StreamWriter streamWriter = new StreamWriter(responseStream); try

{

string text = JsonConvert.SerializeObject(response); streamWriter.Write(text);

streamWriter.Flush(); }

catch (Exception ex) { if (typeof(T) == typeof(System.String)) { streamWriter.Write(response); streamWriter.Flush(); return; } throw ex; } } } }

テストプロジェクトで、 FunctionTest.cs 23をのようにします。

4.

https://riptutorial.com/ja/home

42

(46)

var upperCase = function.FunctionHandler(null);

ソリューションをビルドします。ビルドエラーはしません。

5.

ステップ3 - ラムダを

AWS

にインストールする

プロジェクトをクリックし、[ AWS Lambdaに...]をします。

1.

[AWS Lambdaにアップロード]がされます。しいがされていることをしてください。すべて

のデフォルトをする。その、AWSLambdaFunctionAgeInYearsをして、へをクリックします

2.

のページで、[Role Name]フィールドに「AWSLambdaRole」をします。アップロードをク

リックすると、はエラーなしでアップロードされます。

3.

(47)

ステップ4.

Visual Studio

から

AWS Lambda

をびします。

の3の、Visual StudioはがロードされたView Functionウィンドウをきます。

1.

こののに、 サンプルボックスにのjsonをします。

2.

{ "month": "10", "day": "28", "year": "1979" }

https://riptutorial.com/ja/home

44

(48)

のステップのびしボタンをクリックします。このはAWSでされ、はのResponseウィンドウ

にされます。

3.

オンラインでローカルマシンで

aws-lambdaC

をするをむ

https://riptutorial.com/ja/aws-lambda/topic/8937/

ローカルマシンで

aws-lambda-c--

をする

(49)

クレジット

S.

No

Contributors

1

aws-lambdaのい

Ahmed Abouhegaza, alatar, Community

2

AWS Lambda with

S3

Adonis Lee Villamor

3

AWSラムダはS3に

よってトリガされる

Doug Schwartz

4

PythonをしたAWS

Lambda

Nithin K Anil

5

S3によってトリガさ

れたaws-lambda

Alastair McCormack, Marshall Anschutz

6

アレクサスキルキッ

Niroshan Ranapathi

7

サーバーレスフレー

ムワーク

Alastair McCormack, Ashan, Eric Nord, Luc Boissaye, Niroshan

Ranapathi

8

ローカルマシンで

aws-lambdaCをする

Taterhead

参照

関連したドキュメント

&lt; &gt;内は、30cm角 角穴1ヶ所に必要量 セメント:2.5(5)&lt;9&gt;kg以上 砂 :4.5(9)&lt;16&gt;l以上 砂利 :6 (12)&lt;21&gt; l

Views of Kazunogawa Hydroelectric Power Station Dams &lt;Upper dam (Kamihikawa dam)&gt;. &lt;Lower dam

[r]

Type of notification: Customers must notify ON Semiconductor (&lt;[email protected] &gt;) in writing within 90 days of receipt of this notification if they consider

Type of notification: Customers must notify ON Semiconductor (&lt;[email protected] &gt;) in writing within 90 days of receipt of this notification if they consider

Type of notification: Customers must notify ON Semiconductor (&lt;[email protected] &gt;) in writing within 90 days of receipt of this notification if they consider

When value of &lt;StThr[3:0]&gt; is different from 0 and measured back emf signal is lower than &lt;StThr[3:0]&gt; threshold for 2 succeeding coil current zero−crossings (including