Lambda のプロビジョニング済み同時実行が設定できない時の対処法
Lambda でプロビジョニング済み同時実行を設定する際、エラーで設定ができずに少しハマったので、対処法を紹介します。
結論
予約されていないアカウントの同時実行数の上限緩和を実施します。
対処方法
Service Quotas から上限緩和を実施します。
以下の手順で実施します。
「AWS のサービス」→ 検索欄で「Lambda」と入力→「AWS Lambda」をクリックします。
「Concurrent executions」をクリックします。
「クォータの引き上げをリクエスト」をクリックします。
「クォータ値を変更」の部分で、101 以上を入力し、「リクエスト」をクリックします。
101 以上にする理由は後述します。
これで上限緩和の申請ができました。
Service Quotas から上限緩和申請を実施すると、自動的に英語のサポートケースが起票され、AWS サポートが上限緩和を実施してくれます。
上限緩和には 1 ~ 2 日ほどかかるので、しばらく待ちます。
上限緩和が完了すると、AWS サポートから完了した旨の連絡が来て、Service Quotas 上でもステータスが「終了」になります。
これで上限緩和が完了したので、Lambda のプロビジョニング済み同時実行が設定できるようになっているはずです。
Lambda のプロビジョニング済み同時実行が設定できなかった理由
予約済同時実行数のない関数の場合は、それより 100 少ない値まで予約できます。
上記 AWS 公式ドキュメントの記載より、Lambda のプロビジョニング済み同時実行は、予約されていないアカウントの同時実行数より、100 少ない値まで予約できます。
ただし、Lambda のプロビジョニング済み同時実行は 1 以上の値を指定する必要があります。
僕のアカウントでは、予約されていないアカウントの同時実行数のデフォルト値が 50 でした。
そのため、50 - 100 = -50 となってしまうため、1 以上の値を指定することができない状態だったことが原因でした。
先述の上限緩和で「クォータ値を変更」を 101 以上にする理由は、予約されていないアカウントの同時実行数より、100 少ない値を指定しても、1 以上になる値ということです。
101 - 100 = 1
もちろん予約されていないアカウントの同時実行数が 101 だと、プロビジョニング済み同時実行では 1 しか指定できないので、必要に応じて上限緩和の値を変更してください。
まとめ
今回は Lambda のプロビジョニング済み同時実行が設定できない時の対処法と理由について紹介しました。
小ネタですが、参考になれば幸いです。
Discussion