AWS SAPro試験の知識補填のために、Lambdaを動かしてみます。
トライアンドエラー形式で進めながら、一緒に設定の意味を理解していきましょう。
Lambda関数の作成
Lambdaを選んで
関数 > 関数の作成
こんな感じに設定
Bedrockを呼び出すコードを作成
この方のlambda_functionと書かれたコードを以下にぺとっと貼ります。
以下か所を自分の環境に合わせたら、Deployします。
・region_nameを自分のリージョンに変更
・modelIdも自分の使用できるモデルに変更
テストコードの作成
以下か所を書き換えます。
今回はpromptというキーでプロンプトを受け付けているので、以下デフォルトのJsonを書き換えます。
こんな感じにして保存します。
テスト実行してみる1
おそらく権限が足りないので、「"errorMessage": "An error occurred (AccessDeniedException) ~省略~
is not authorized to perform: bedrock:InvokeModel」的なエラーメッセージが表示されると思います。
ロールにポリシーをアタッチ
上記エラーを解消するために、ロールにポリシーをアタッチします。
実行ロールを別タブで開きます
とりあえず触れればいい場合
許可を追加 > ポリシーをアタッチ
全部許可しちゃえばいい
ちょっとちゃんとする場合
許可を追加 > インラインポリシーを作成
先ほどエラーで怒られた「InvokeModel」を追加します。
名前を付けて作成します
テスト実行してみる2
timeoutになりました。
timeoutの時間を延ばす
デフォルトだと3秒で短いので、編集する
後述しますが、10秒くらいでいいと思います。
テスト実行してみる3
やったー!できましたね!
おまけ
timeout境界を知りたい
環境とプロンプトによるだろうけど、今回のパターンなら10秒くらいがよさそう
3秒:ダメだった
6秒:ダメだった
7秒:大丈夫そう