この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
最初に書く
協栄情報の陸です。AWSの初心者です。この記事は、日々の学習と発生した問題を記録するために使用されます。記事の中に問題を解決するには遅すぎる場所があるかもしれませんが、解決策を知った後、問題に解決策を追加しますので、ご安心ください。
初めに
昨日は単純にAPI GetawayでAPIインターフェースを作成した後、今日はラムダ関数をベースにAPIインターフェースを作成することでAPI Getawayの理解を深めていきます。
操作
最初のステップはやはりAPIインターフェースの作成です(やり方は前回の記事を参照してください)。
この次のステップは昨日とは違うものになります。 タイプとしてラムダ関数を選択し、ここではラムダ関数を関連付ける必要があります(このラムダ関数の作成方法の詳細については、アーティキュレーションを参照してください)。
システムはデフォルトでAPI Getawayに適切なパーミッションを追加します。
そして、メソッドリクエストをクリックします。
そして、三角形をクリックして、クエリ文字列を選択する
その後、適切な情報を入力し(lambda関数の入力変数に対応する)、必須欄にチェックを入れます。
その後、前の画面に戻り、関連するlambda関数をクリックします
新しいWebページを開き、[統一リポジトリ]を検索します。
次に、以下のコードを見つけて、ラムダ関数にコピーします。
Pythonファイルのコードを以下のように修正します。
そして、テストイベントの設定を選択します。
新しいテストイベントの作成を選択し、検索ボックスにapiと入力し、[apigeteway-was-proxy]を選択します。
その後、コードを変更し、名前を入力し、作成を選択します。
その後、pythonファイルのコードに変更を加えます。
その後、デプロイしてlambda関数が正しいかどうかをテストします。
APIをデプロイするには、API Getawayのページに戻ります。
すでにデプロイされるステージがある場合は直接選択し、ない場合は新規に選択してデプロイします。
その後、アクセスするサブリソースのURLを選択します。
そうすると、ページにはこのようなエラーメッセージが表示されます。
URL欄に[?input_text=翻訳したい単語]を入力します。
問題
検証終了時に、以下のようなエラー通知が届きました。
当初はラムダ関数のコーディングに問題があると思い、最初にラムダ関数に戻ってコードを確認し、再度テストしてみたところ、正解でした。
その後、API Getawayに戻って作成したAPIを再度確認したところ、Lambdaプロキシの連携を使わずにLambda関数が関連付けられていて、結局エラーになってしまいました。
その後、新しいAPIを作り直して、API GetawayをLambda関数に関連付けるというハンズオン実験をようやく完成させることができました。
まとめ
今日は、APIゲッタウェイとラムダ関数の関連付けを通して、簡単な翻訳APIインターフェースを完成させることに成功しました。 実験中に多くの問題に遭遇しましたが、自分で考えて解くことで解決することができました。 解決できない問題に遭遇した場合は、一からやり直して自分の考えを整理し、その過程で問題が見つかる可能性が高いです