【AWS】APIGatewayのURLにアクセスするとエラー「Missing Authentication Token」が表示される

  • 2021年2月5日
  • 2021年2月6日
  • IT
IT

こんにちはますのです。
最近お仕事の関係でAPIGatewayを使いそうな気配があるので、少し触っておこうと思いお触り中です。

DevOps関係は全くの初心者さんになるので手探りです。
APIGateway構築終わったのにエラーが出てアクセスが出来ずに四苦八苦しました。

原因は至ってシンプル

アクセスするURL間違えてたというオチです。

その悲しさをブログに起こして忘れないようにしたいと思います。

やりたかったこと

APIGateway→Lambda→S3へのアップロード

よくあるやつですね。
チュートリアルもあるし余裕やでぇ!!って思ってたのですが、チュートリアル無視してやっていたら詰みました。

アップロードも画像ではなく、テキストアップロードが良かったのですがまずは画像でやってみようとスタート。

Lambda→APIGateway→S3の設定が完了する

それでは構築を進めます。
なお、構築方法から間違えています。カオスです。

Lambdaを1から作成

APIGatewayを1から作成

この時点でAPIGatewayの作成を間違えております。
Lambdaの「トリガーを追加」から作成していればもう少し分かりやすかったのかなと思います。
S3の作成

作成したAPIGatewayのURLにアクセスするがエラーが出る

作成が終わったということで意気揚々とアクセスを試みます。
ちなみに以下の実施が必要であることは後から知ったという初心者さんです。
  • ステージの作成
  • APIのデプロイ

ちゃんと「APIのデプロイ」と「ステージの作成」を実施してアクセスします。

APIのデプロイ

ステージの作成

作成が終わると念願のURLが表示されました。

URLへアクセスしてみますがmessage:“Missing Authentication Token”のエラーとなります。

Talend API Testerという拡張機能でPOSTしてみますが、同じく403エラーとなります。
恐らくcurlでテストしても同じでしょう。

解決方法:作成したステージの階層を開けてURLを確認する

APIGateway初心者泣かせです。
ステージ作ったら一番最初に表示されるURLではなく、その下の階層が本来アクセスすべきURLでした。

今回はPOSTしたい時のURLが欲しいので以下の通りです。

ステージ:testを開く>全部開ける>POSTをクリック>URLが表示される

ステージ配下のURLへと記載も変わっていますね。
POSTのURLは別建てになるってことでしょうか。
筆者はURLをクリックしても変わらずmessage:“Missing Authentication Token”が出ました。
恐らくこれは他の部分の設定ミスでしょう。
APIGatewayで4xxエラーでも5xxエラーでも同じ値を返すようになっているからかと。
拡張機能の「Talend API Tester」を使った際は「200」になり通信レベルでは正常という動きに変わりました。

本来やりたかった「APIGateway→Lambda→S3」へのアップロードは以下の記事を参考に実施した際に出来ました。

AWS API Gateway + Lambda から multipart/form-dataを用いてバイナリデータ(wav)をS3にputする

PNGのアップロードはできた!
次はCSVやXMLのアップロードはどうやるの??という状態。
もう少しAPIGatewayと付き合っていきたい所存です。

最新情報をチェックしよう!