API使ってみたAWSaws-clilambdacognitoAPIGatewayはじめにlambdaをさわっててAPIGatewayのコンソールを覗いてみたら見覚えのない選択肢がありました。APIなるもの、新機能らしいです。ホットなので使ってみました。※検証時点ではプレビュー版となります。APIクラスメソッドさんが解説してくれてます。APIよりも簡単に使えそうな雰囲気ですね。やりたい事curlでapi叩いてlambda動かしたい。やってみたlambda作るウィザードに従い、ぽちぽち作る。言語はpython3.7を指定。Gatewayを追加する。非公開のlambdaを作りたかったので認証必須。APIはCognito使うのが良さそう。認証不要なAPIの場合は、この手順不要かと思います。ユーザープールを作るデフォルトでユーザープール作成する。ユーザーを1人作成する。メールが送られてくる。アプリクライアントを作成する。次のチェックボックスだけONにする。(ALLOW_REFRESH_TOKEN_AUTH)(OFFにできなかった)フェデレーティッドアイデンティティ先ほど作ったユーザープールの画面で下記をメモります。ユーザープールIDアプリクライアントIDフェデレーティッドアイデンティティを開きます。新しいIDプールの作成ボタンを押して、メモった情報を入力し、作成します。公式資料はこれかな?https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/http-api-examples.html認証を有効にしたいので、下記の設定を行う。Gatewayのコンソールから、lambdaから作成したAPIを開く。認可からオーソライザーを作成する。作ったオーソライザーをルートにアタッチする。APIを叩いてみるとりあえず、叩いてみる。Gatewayの箇所に書いてある。https://mnh3XXXXXX.execute-api.ap-northeast-1.amazonaws.com/default/http-api-test{"message":"Unauthorized"}認証作ったし動かなくて正解。認証情報の取得JWTなる認証はJSON形式のトークンを使って認証をやりとりするそうな。--user-pool-idはユーザープールIDを指定。--client-idはアプリクライアントIDを指定。--auth-parametersはcognitoで作成したユーザーの名前とパスワードを指定。}}https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-initiate-auth.htmlまずはパスワード変更してね。--user-pool-idはユーザープールIDを指定。--client-idはアプリクライアントIDを指定。--challenge-responsesでユーザーの名前と新しいパスワードを指定。--sessionは直前に実行したコマンドで返ってきたSessionsの値をコピペ。"MktQk~(長いので省略)~Qoj9zrYg-lsWI"改めてトークンの取得。}}認証につかうのはAuthenticationResult.IdTokenっぽい。Lambda"}うごいた!備考オーソライザーをデタッチしたら、認証介さずアクセスできた。urlはdefaultを省略できるのでhttps://mnh3XXXXXX.execute-api.ap-northeast-1.amazonaws.com/http-api-testでもアクセスできる。requestStockLike0@horit主に滝を登ってます。upLoginユーザーは見つかりませんでした。