注意しなければいけないのは、公開APIとしてブラウザからlambdaを利用するにはこの2つのキーをJavaScript内に記述する必要があることです。この2つのキーがあれば、ユーザーが権限をもつ操作は全て出来てしまうので、JavaScript内に記述するということは、基本的には誰でもできてしまうということです。目的のlambda関数のみの実行権限をもつIAMユーザーを作成する必要があります。新規作成へ進み、適当なユーザー名を指定して作成してください。Key」を表示してメモっておくか、認証情報をダウンロードしてください。最初にユーザーを追加した段階では、全く権限のないユーザーが追加されます。ここに目的のlamda関数の実行権限を付与します。ユーザー一覧から目的のユーザーを選択してください。「アクセス許可」の項目から、「インラインポリシー」のドロワーを開くと"表示するインラインポリシーはありません。作成するには、ここをクリックしてください。"と表示されますので、クリックします。Generatorを選択します。Lambdaアクション:invokeFunctionARN:lambda関数のARN値を入力し「ステートメントを追加」をクリックします。実行したい関数が複数ある場合は、同様に2個、3個と登録して下さい。必要な関数への権限が付与できたら、「次のステップ」をクリックして下さい。すると、ポリシー適用用のJsonが表示されます。この画面で「ポリシーを適用」ボタンをクリックすると、ユーザーに権限が付与されます。JavaScript側の実装lambda関数とIAMユーザーを作成したら、ブラウザから実行する準備は整いました。Browserは、ブラウザでAWSにアクセスするための機能を集めたライブラリです。scriptタグで読み込むだけで利用できます。src="base64.min.js"></script>Script本体lambdaの関数を実行するソースは以下のとおりです。});権限の設定まずはAWSサービスにアクセスするための権限設定を行います。region:"us-west-2"});accessKeyIdとsecretAccessKeyには先ほど作成したユーザーの認証情報をいれてください。regionには実行するlambda関数を登録したリージョンを入力して下さい。lambda関数のARN値arn:aws:lambda:us-east-1:xxxxxx:function:HelloWorldの「arn:aws:lambda:」の後に続く文字列です。関数に渡すパラメータはObjectとして渡すことができます。Objectをbase64エンコードする必要があるので,ObjectをJSON.stringifyし、Base64エンコードします。AWS.Lambda();パラメーターの設定SDKのlambda関数実行用のメソッドに渡すパラメータを指定します。};FunctionName:作成したlambda関数の名前を指定します。InvocationType:今回は同期的に実行したいので、"RequestResponse"を指定します。ClientContext:ここにはBase64エンコーディングしたObjectを渡します。ClientContextに指定した値は、lambda関数の中で、context.clientContextとしてアクセス可能です。lambda関数を実行。最後に、AWS.Lambda.invokeメソッドを利用して、lambda関数を実行します。});dataの中には、lambda関数の中で実行する、context.doneの第2引数が入ります。lambda関数のなかで処理したデータをいれれば、同期的に実行し、返り値を受け取ることが可能になります。upLoginユーザーは見つかりませんでした。