この機能は委任を使用します。2017年6月8日より、アドオンを使用していないテナントでは、デフォルトで委任が無効になります。委任を必要とするアドオンを使用中のレガシーテナントは、引き続きこの機能を使用できます。今後、委任機能が変更されるか、サービスから削除されることがあれば、使用中のお客様が余裕を持って移行できるよう、あらかじめお知らせします。また、委任はカスタムドメインの使用をサポートしていないため、委任に依存する機能をカスタムドメインと共に使うとうまく機能しない可能性があります。
手順 1 - Amazon API Gatewayのセットアップ
この手順を終えると、以下が完了した状態となります。- Amazon DynamoDBテーブルからペットを取得して保管しているサービスロジックを実行するために、AWS Lambda関数を使用してAmazon API Gatewayがセットアップされる。
- ペットのリストの取得および更新のための認証されていない2つのRESTサービスメソッドが作成されている。
1.Amazon DynamoDBテーブルを作成する
Amazon DynamoDBコンソールで、 [Create Table(テーブルの作成)] をクリックします。
- [Table name(テーブル名)] :Pets
- [Primary key(プライマリキー)] :ユーザー名
- [Primary key type(プライマリキーの種類)] :String(文字列)
- [Use default settings(デフォルト設定を使用)] :チェックなし
- Read capacity units(読み込みキャパシティユニット)] :3
- Write capacity units(書き込みキャパシティユニット)] :3


2.DynamoDB PetsテーブルへのアクセスをAWS Lambda関数に付与するポリシーを作成する
AWS IAMコンソールに移動します。 左側のメニューの [Roles(ロール)] をクリックし、 [Create New Role(新しいロールを作成)] ボタンをクリックします。
APIGatewayLambdaExecRole
という名前を付け、 [Next Step(次の手順)] をクリックします。
[Role(ロール]タイプを選択します。[AWS Service Roles]の下の[AWS Lambda]を選択します。

LogAndDynamoDBAccess
」という名前を付け、ポリシードキュメントとして以下のコードを追加します(必ずDynamoDBテーブルのAmazon Resource Name (ARN)を最初に更新してください)。 [Apply policy(ポリシーを適用)] をクリックします。
2.AWS Lambda関数を作成する
次の3つの手順で、DynamoDBテーブルのペット情報を取得および更新するためのAWS Lambda関数を作成します。GetPetInfoのLambda関数を作成する
AWS Lambdaコンソールで、 [Create a Lambda Function(Lambda関数の作成)] を選択します(今までAWS Lambda関数を作成したことがない場合は、 [Get Started Now(今すぐ始める)] をクリックします)。 [Select blueprint(ブループリントの選択)]画面で、 [Blank Function(ブランク関数)] を選択します。 その後、[Configure triggers(トリガーの構成)]画面が表示されます。 [Next(次へ)] をクリックして続行します。この時点ではこれを行う必要はありません。 最後に、[Configure function(関数の構成)]を尋ねられます。 以下の情報を使用して、該当するフィールドに入力します。- [Name(名前)] :
GetPetInfo
- [Runtime(ランタイム)] :Node.js 6.10
{}
)が表示されます。テーブルは空です。
UpdatePetInfoのLambda関数を作成する
GetPetInfo
関数を作成するときに使用する手順方法を繰り返しますが、関数コードとして代わりに以下を使用します。
{}
)が返されます。
GetPetInfo
Lambda関数に戻り、 [Test(テスト)] を再びクリックします。ペットが1つ表示されます。
3つめのLambda関数を作成する
もう一つLambda関数を作成します。この関数は何もしませんが、後のセクションで説明するように、CORSのOPTIONSメソッドで必要です。 上述の手順を使用して、NoOp
という名前のLambda関数を作成します。この関数コードは以下の通りです。
3.Amazon API Gateway APIを作成する
2つのメソッドでAPIを作成します。1つはペット情報をGET
、もう1つはペット情報をPOST
します。
方式:ペット情報をGET
Amazon API Gatewayコンソールに移動して [Create API(APIの作成)] をクリックします。APIを作成するのが初めての場合は、 [Get Started(開始)] 画面が表示されます。 APIを作成するのが初めての場合は、[Example API(サンプルAPI)]を作成するよう求められます。 [OK] をクリックしてポップアップ通知を閉じ、 [Example API(サンプルAPI)] ボタンの代わりに、 [New API(新規API)] ラジオボタンを選択します。 APIを「SecurePets
」と名づけ、 [Create API(APIの作成)] をクリックします。
SecurePets
APIの[Resource(リソース)]タブに移動し、 [Create Resource(リソースの作成)] アクションをクリックします。
リソースに「Pets
」の名前を付け、 [Create Resource(リソースの作成)] を再びクリックします。
左ペインで/pets
を選択し、 [CreateMethod(メソッドの作成] ボタンをクリックします。
ドロップダウンで、[GET]を選択し、チェックマークボタンをクリックします。GET
メソッドのために、以下の構成値を提供します。
- [Integration type(統合タイプ)] :Lambda関数
- Lambda Region(lambdaリージョン) :あなたがいる地域
- [Lambda Function(Lambda関数)] :GetPetInfo
方式:ペット情報をPOST
ペット情報をPOST
に使用するAPIの作成は、ペット情報をGET
に使用したAPIの作成方法と似ています。
左ペインで/pets
を選択し、 [CreateMethod(メソッドの作成] をクリックします。
ドロップダウンで、[POST]を選択し、チェックマークボタンをクリックします。
[Integration type(統合タイプ)]にLambda関数を選択し、あなたがいる地域を選択し、[Lambda Function(Lambda関数)]に「UpdatePetInfo」を選択します。
[Save(保存)] をクリックし、Lambda関数に権限を付与することをポップアップで求められたら [OK] をクリックします。
[Test(テスト)] をクリックし、以下を要求本文に貼り付けます。
{}
)が返されます。
GETメソッドに戻り、 [Test(テスト)] を再びクリックし、テーブルにペットが2つ記載されていることを要求本文が示していることを確認します。
方式:OPTIONS
アクションを起こさないlambda関数を作成する代わりに、API GatewayでOPTIONS
メソッドを作成することができます。
左ペインで/pets
を選択し、 [CreateMethod(メソッドの作成] をクリックします。ドロップダウンで、[OPTIONS]を選択し、チェックマークボタンをクリックします。[Integration type(統合タイプ)]に[Mock]を選択します。 [Save(保存)] をクリックします。
応答本文は空欄のまま、 [Test(テスト)] をクリックします。no data
と示す応答本文を受け取るはずです。
この時点で、AWS Lambda関数とAmazon API Gatewayメソッドは、セキュリティなしで定義されています。