Do not delete containers! I’ve just had to create a support request to ask Microsoft to kindly increase the resources in my region because I cannot recreate the container. I spent 30 minutes trying at the end of day yesterday, and 15 minutes at the start of today –
Red
Jun 9, 2022 at 8:15
Stack Overflow における大元の質問は How to clear a Cosmos DB database or delete all items using Azure portal というタイトルで、4 つの回答のうち、2 番目に vote を得ている回答に対して、上記のコメントがついている形です。ちなみにその 2番目の回答の趣旨はコンテナーの再作成です。
この Red 氏のコメントを意訳すると、 「コンテナーを削除したらリージョンのクォータにひっかかったままとなり、コンテナーの新規作成ができなかった。なので、コンテナーを削除してないけない」 ということであると私は理解しました。
まさかそんなことがあるはずないとは思いつつ、それがありえないという悪魔の証明はできません。ここは私の謙虚さと良心に従い、 Red 氏の言い分が真であると仮定します。
まずは原則として、Cosmos DB のコンテナーに関する制約あるいはクォータを以下のページから確認します。
Maximum number of containers per database with shared throughput
25
2
Maximum number of containers per account
500 (Provisioned), 100 (Serverless)
3
Maximum containers per subscription (NoSQL, Gremlin, API for Table)
1 (Try Cosmos DB Free)
4
Maximum number of containers in a shared throughput database
25 (Azure Cosmos DB free tier)
ここで、 Red 氏はサポートリクエストを上げたとのことですので、 Try Cosmos DB Free (試用版) のユーザーではなく、3 番の筋はありません。
そこまでは分かるのですが、そこから先は憶測でしか議論ができません。 例えば、クォータ一杯までコンテナーを作成していて、削除が完全に完了してコンテナー数のカウントが減少する前にコンテナーを新規作成しようとしていたのではないかとか、複数人で Cosmos DB アカウントを共用していて、他の方のコンテナー作成により、Red 氏による新規作成時にクォータに達してしまったのではないかとか、あるいは、2022年6月という時期から、特定のリージョンやゾーン (データセンター) におけるサーバーのハードウェアリソースが枯渇していて、Cosmos DB のコンテナー作成に一時的な制約がかかっていた可能性も考えられなくはないとか。これらは全て確証の取りようがない憶測です。 (なお、Stack Overflow 上で Red 氏に質問をするには至りませんでした。)
num=`get_the_number_of_containers` if [ $num -ne 1 ]; then echo"ERROR: Container creation ${Container}${n} failed due to the number of containers ${num}." retval=1 break fi echo -n "Create container: Container name is " echo$ret | jq '.name' echo" The number of containers is ${num}"
sleep$sleep_sec
az cosmosdb sql container delete \ -g ${RG} \ -a ${Account} \ -d ${DB} \ -n ${Container}${n} \ -y
num=`get_the_number_of_containers` if [ $num -ne 0 ]; then echo"ERROR: Container deletion ${Container}${n} failed due to the number of containers ${num}." retval=1 break fi echo"Delete container: finished" echo" The number of containers is ${num}"
sleep$sleep_sec
i=`expr$i + 1` done
if [ $retval -eq 0 ]; then echo"INFO: cosmos-db-container-recreation-test successfully finished." fi date exit$retval
[2023-02-25 10:23:41]% time ./cosmos-db-container-recreation-test.sh Sat Feb 25 10:23:49 JST 2023 INFO: cosmos-db-container-recreation-test successfully started. INFO -------------------------------- INFO i = 0, Container = testcontainer0 INFO -------------------------------- Create container: Container name is "testcontainer0" The number of containers is 1 Delete container: finished The number of containers is 0 INFO -------------------------------- INFO i = 1, Container = testcontainer1 INFO -------------------------------- Create container: Container name is "testcontainer1" The number of containers is 1 Delete container: finished The number of containers is 0 INFO -------------------------------- INFO i = 2, Container = testcontainer2 INFO -------------------------------- Create container: Container name is "testcontainer2" The number of containers is 1 Delete container: finished The number of containers is 0
(中略)
INFO -------------------------------- INFO i = 499, Container = testcontainer1 INFO -------------------------------- Create container: Container name is "testcontainer1" The number of containers is 1 Delete container: finished The number of containers is 0 INFO -------------------------------- INFO i = 500, Container = testcontainer2 INFO -------------------------------- Create container: Container name is "testcontainer2" The number of containers is 1 Delete container: finished The number of containers is 0 INFO -------------------------------- INFO i = 501, Container = testcontainer0 INFO -------------------------------- Create container: Container name is "testcontainer0" The number of containers is 1 Delete container: finished The number of containers is 0 INFO: cosmos-db-container-recreation-test successfully finished. Sat Feb 25 21:29:40 JST 2023 ./cosmos-db-container-recreation-test.sh 1711.37s user 778.98s system 6% cpu 11:05:53.83 total