カテゴリー
【AWS Lambda使い方ガイド】AWS CLIから関数URLを設定してLambdaをAPIとして公開する
※ 当ページには【広告/PR】を含む場合があります。
2023/06/18
Lambdaの関数URL
aws-sdk
+ LambdaにエンドポイントURLを設定できる
+ URLへアクセスすることで、外部からLambdaを直接実行が可能
+ Lambdaへの関数URLのエンドポイント割り当て・利用料は無料。
--> 料金自体は通常のLambdaと同様
+ 関数URLへのアクセスをパブリック(公開)するか、IAM認証を使うか選択できる
AWS CLIによる関数URLの設定
関数URLの権限を追加(add-permissionサブコマンド)
「NONE」
add-permission
$ aws lambda add-permission \
--function-name [Lambdaの関数名] \
--action lambda:InvokeFunctionUrl \
--principal "*" \
--function-url-auth-type "NONE" \
--statement-id [sidの名前]
get-policy
$ aws lambda get-policy --function-name [Lambdaの関数名] | jq '.'
{
"Policy": "{\"Version\":\"2012-10-17\",\"Id\":\"default\",\"Statement\":[{\"Sid\":\"ほげほげ\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"lambda:InvokeFunctionUrl\",\"Resource\":\"arn:aws:lambda:ap-northeast-1:123456789012:function:hoge-api\",\"Condition\":{\"StringEquals\":{\"lambda:FunctionUrlAuthType\":\"NONE\"}}}]}",
"RevisionId": "4f16a95a-dd3a-472e-71c7-2a6bc5de2fa2"
}
関数URLエンドポイントの設定(create-function-url-configサブコマンド)
$ aws lambda create-function-url-config \
--function-name [Lambdaの関数名] \
--auth-type NONE
{
"FunctionUrl": "https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.lambda-url.ap-northeast-1.on.aws/",
"FunctionArn": "arn:aws:lambda:ap-northeast-1:12345689012:function:hoge-api",
"AuthType": "NONE",
"CreationTime": "2023-06-18T06:12:35.068180Z"
}
FunctionUrl
list-function-url-configs
$ aws lambda list-function-url-configs \
--function-name [Lambdaの関数名] | grep https
"FunctionUrl": "https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.lambda-url.ap-northeast-1.on.aws/",
関数URLで動作確認
$ curl -XGET \
'https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.lambda-url.ap-northeast-1.on.aws/'
{
"message": "HELLO, NODEJS V18!!!"
}
関数URLの設定を削除する(delete-function-url-config/remove-permissionサブコマンド)
delete-function-url-config
$ aws lambda delete-function-url-config \
--function-name [Lambdaの関数名]
remove-permission
$ aws lambda remove-permission \
--function-name [Lambdaの関数名] \
--statement-id [sidの名前]
まとめ
参考サイト
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー