以下に示す手順に従って REST API を作成します。各ステップの番号をクリックして、セクションを展開してください。

  • ステップ 1: 新しい REST API を作成する

    Amazon API Gateway を使用すると、独自の REST および WebSocket API オペレーションを作成、公開、保守、監視、保護することができます。新しい REST API を作成するには、以下の手順を実行します。

    1. Amazon API Gateway コンソールを https://console.aws.amazon.com/apigateway で開きます。
    2. これが初回の API オペレーションの場合には、[新しい API の作成] を選択します。2 回目以降の API オペレーションの場合には、[API の作成] を選択します。
    3. [プロトコルの選択] で、[REST] を選択したままにします。
    4. [新しい API の作成] で、[新しい API] を選択したままにします。
    5. [設定] で、以下を行います。
          • [API 名] に、「examplecorp_saas」と入力します。
          • [説明] には、必要に応じて説明を入力できます。
          • [エンドポイントタイプ] で、[エッジ最適化] を選択します。
    6. [API の作成] を選択します。
  • ステップ 2:Lambda 統合用の API ゲートウェイを設定する

    Lambda 統合用の API Gateway を設定するには、以下の手順を実行します。作成した Lambda 関数は要求があったときには、ストリーミング URL を生成します。

    1.Amazon API Gateway コンソールを https://console.aws.amazon.com/apigateway で開きます。
    2.ナビゲーションペインで、[examplecorp_saas API] の下にある [オーソライザー] を選択します。
    3.[新しいオーソライザーを作成する] を選択し、次に以下を実行します。

    • [名前] に、「examplecorp_auth」と入力します。
    [タイプ] で、[Cognito] を選択します。
    • [Cognito User Pool] で、リスト (examplecorp_saas) から作成した Amazon Cognito ユーザープールを選択します。次に、ユーザープールを作成したリージョンが選択されていることを確認します。
    • [トークンソース] に「Authorization」と入力します。
    • [Token Validation] は空のままにします。

    4.[作成] を選択します。
    5.ナビゲーションペインで [リソース] を選択します。
    6.[アクション]、[リソースの作成] の順に選択します。
    7.次に、以下を実行します。

    • [リソース] に、「auth」と入力します。
    • [リソースパス] の値が「/auth」であることを確認します。
    • [API Gateway CORS を有効にする] チェックボックスをオンにします。

    8.[リソース作成] を選択します。
    9.[リソース] ペインで新しく作成したリソース (/auth) が選択された状態で、[アクション]、[メソッドの作成] の順に選択します。
    10.[オプション] で [POST] を選択し、リストの右側にあるチェックマークを入れて、変更を保存します。
    11.POST 設定ペインで、以下を実行します。

    • [統合タイプ] で、[Lambda 関数] を選択したままにします。
    • [Lambda プロキシ統合の使用] チェックボックスをオンにします。
    • [Lambda リージョン] 、Lambda 関数を作成したリージョンが選択されていることを確認します。
    • [Lambda 関数]に、先ほどこのプロジェクトで作成した関数の名前「examplecorp_lambda_saas_function」を入力します。

    12.[保存] を選択します。
    13.[Lambda 関数に権限を追加する] ダイアログボックスで、[OK] を選択して変更を確定します。
    14.新しいメソッドが選択された状態で、[メソッドの実行] 詳細ペインで [メソッドリクエスト] カードを選択します。
    15.[Post Method Request] ペインの [設定] の下で、以下を実行します。

    • [許可] リストの右側にある鉛筆アイコンを選択します。
    • リスト (examplecorp_auth) から作成した Amazon Cognito オーソライザーを選択します。
    • リストの右側にあるチェックマークをチェックして、変更を保存します。

    16.[リソース] ペインで、リソース [/auth] を選択します。
    17.[アクション]、[API をデプロイ] の順に選択します。
    18.[API をデプロイ] ダイアログボックスで、以下を実行します。

    デプロイステージで、[新しいステージ] を選択します。
    • [ステージ] 名に、「auth」と入力します。
    • [ステージの説明] および [デプロイメントの説明] には、必要に応じて説明を入力できます。
    • [デプロイ] を選択します。

    19.[auth ステージエディタ] ペインの最上部に、[呼び出し URL] が表示されます。この URL を書き留めます。

  • ステップ 3:Amazon S3 バケットのウェブ設定ファイルを更新します

    ウェブサイトデプロイ内の config.js ファイルを更新して、作成したステージの呼び出し URL、および Amazon Cognito ユーザープールのユーザープール ID とアプリケーションクライアント ID を含めます。以下の手順を実行してこれらの変数の値をコピーし、それらを config.js ファイルの必要な場所に貼り付けます。

    1.Amazon S3 コンソールを https://console.aws.amazon.com/s3/ で開きます。
    2.S3 バケットペインの検索ボックスに、作成した Amazon S3 バケットの名前と Example Corp. ウェブサイトのファイルをコピーした場所を入力します。
    3.リストにバケットが表示されたら、バケット名を選択します。
    4.ファイルリスト内の [Overview] タブで、assets/js/config.js に進みます。
    5.config.js ファイルの横のチェックボックスにチェックを入れ、[ダウンロード] を選択します。
    6.ローカルコンピュータでこのファイルをダウンロードした場所に移動して、ファイルを開きます。
    7.ファイル内で、リージョン変数の値が、ユーザープールを作成したリージョンに設定されていることを確認します。次に、以下の変数のデフォルト値を検索して置き換えます。

    invokeurl
    userPoolId
    userPoolClientId

    各パラメータの意味は次のとおりです。

    invokeurl は、前の手順「Lambda 統合用の API Gateway を設定する」の手順を完了したときに生成された呼び出し URL の値です。
    userPoolId は、「Amazon Cognito ユーザープールの作成」の手順を完了したときに生成されたユーザープール ID の値です。
    userPoolClientId は、「アプリをユーザープールに追加する」の手順を完了したときに生成されたアプリクライアント ID の値です。

    8.変更を保存して、ファイルを閉じます。
    9.Amazon S3 コンソールの [Overview] タブで、[アップロード] を選択します。
    10.編集した config.js ファイルを [アップロード] ウィンドウにドラッグして、[アップロード] をクリックします。
    11.アップロードが完了したら、更新されたファイルが [Overview] タブのリストに表示されていることを確認します。