URL だけで AWS Lambda を起動できる「Lambda 関数 Url」を、認証タイプ NONE(誰でもアクセス可)として AWS CLI だけで有効化する AWS CLI。
aws lambda add-permission --function-name YOUR_FUNC_NAME \
--statement-id FunctionURLAllowPublicAccess \
--action "lambda:InvokeFunctionUrl" --principal "*" --function-url-auth-type NONE
aws lambda add-permission --function-name YOUR_FUNC_NAME \
--statement-id FunctionURLAllowInvokeAction \
--action "lambda:InvokeFunction" --principal "*" --invoked-via-function-url
aws lambda create-function-url-config --function-name YOUR_FUNC_NAME \
--auth-type NONE
## 確認用
aws lambda get-function-url-config --function-name YOUR_FUNC_NAME
-
--statement-idの名前は任意です。上のCLIで設定しているFunctionURLAllowPublicAccessやFunctionURLAllowInvokeActionはマネジメントコンソールから有効化した際に自動的に付与される名前と同じです
実行例
$ aws lambda add-permission --function-name YOUR_FUNC_NAME --statement-id FunctionURLAllowPublicAccess --action "lambda:InvokeFunctionUrl" --principal "*" --function-url-auth-type NONE
{
"Statement": "{\"Sid\":\"FunctionURLAllowPublicAccess\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"lambda:InvokeFunctionUrl\",\"Resource\":\"arn:aws:lambda:us-west-2:***:function:YOUR_FUNC_NAME\",\"Condition\":{\"StringEquals\":{\"lambda:FunctionUrlAuthType\":\"NONE\"}}}"
}
$ aws lambda add-permission --function-name YOUR_FUNC_NAME --statement-id FunctionURLAllowInvokeAction --action "lambda:InvokeFunction" --principal "*" --invoked-via-function-url
{
"Statement": "{\"Sid\":\"FunctionURLAllowInvokeAction\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-west-2:***:function:YOUR_FUNC_NAME\",\"Condition\":{\"Bool\":{\"lambda:InvokedViaFunctionUrl\":\"true\"}}}"
}
$ aws lambda create-function-url-config --function-name YOUR_FUNC_NAME --auth-type NONE
{
"FunctionUrl": "https://czxku43kxxxxxxxxxxxxxxxy0ptbtq.lambda-url.us-west-2.on.aws/",
"FunctionArn": "arn:aws:lambda:us-west-2:***:function:YOUR_FUNC_NAME",
"AuthType": "NONE",
"CreationTime": "2025-11-07T00:27:11.462355245Z"
}
## 確認用
$ aws lambda get-function-url-config --function-name YOUR_FUNC_NAME
{
"FunctionUrl": "https://czxku43kxxxxxxxxxxxxxxxy0ptbtq.lambda-url.us-west-2.on.aws/",
"FunctionArn": "arn:aws:lambda:us-west-2:951543768772:function:YOUR_FUNC_NAME",
"AuthType": "NONE",
"CreationTime": "2025-11-07T00:27:11.462355245Z",
"LastModifiedTime": "2025-11-07T00:27:11.462355245Z",
"InvokeMode": "BUFFERED"
}
AWS CLI は最新にしましょう
lambda add-permission で以下のエラーが出たら、AWS CLI が古いです。AWS CLI をアップデートしましょう。
Unknown options: --invoked-via-function-url
2025年10月から、権限が追加で必要になりました
- Lambda 関数 Url として動かす関数には
lambda:InvokeFunctionが追加で必要になりました (参考: Control access to Lambda function URLs
無効化
認証タイプ NONE は誰でもアクセス可能なので、必要時に立ち上げて不要になったら無効化しておきましょう。
次回有効化で URL が変わります。同じにしたい場合は CloudFront を経由する等、ちゃんとやりましょう。
--statement-id は作成時に指定した名前を設定してください。
aws lambda delete-function-url-config --function-name YOUR_FUNC_NAME
aws lambda remove-permission --function-name YOUR_FUNC_NAME --statement-id FunctionURLAllowInvokeAction
aws lambda remove-permission --function-name YOUR_FUNC_NAME --statement-id FunctionURLAllowPublicAccess
EoT