Azure Blob Storage每小时生成SAS密钥是否存在限制?
嘿,我来帮你理清关于Azure Blob Storage生成SAS密钥的这两个核心问题:
Azure Blob Storage每小时生成SAS密钥的数量限制
首先,Azure并没有针对SAS密钥生成单独设置每小时的数量上限,但SAS生成操作会占用存储账户的总请求配额:
- 如果你是通过存储账户密钥直接生成SAS(比如用Python的
azure-storage-blobSDK调用generate_blob_sas、generate_container_sas这类方法),这类请求属于Blob Storage服务的直接请求,会被计入存储账户的总请求速率限制。标准存储账户的Blob服务总请求速率上限是每秒20,000个请求(换算成每小时约7200万),这个配额涵盖了所有Blob操作(包括读写、SAS生成、列表等)。 - 如果你是通过Azure Resource Manager(ARM)API生成SAS(比如调用
listAccountSas或listServiceSas接口),那这类请求会受ARM的请求限制约束,ARM的默认限制是每个租户每小时最多12000个请求,具体还可能受资源组级别等限制影响。
生成SAS密钥是否属于ARM事件?
这得分两种情况:
- 不属于ARM事件的场景:当你使用Python Azure Storage SDK(如
azure-storage-blob)直接通过存储账户密钥生成SAS时,SDK是直接和Blob Storage服务的端点交互,完全不经过ARM。这类操作属于Storage服务自身的请求,和ARM的限制无关。 - 属于ARM事件的场景:如果你的代码是通过ARM API来触发SAS生成(比如调用Azure Resource Manager的存储账户SAS生成接口),那这类请求就属于ARM事件,会受到ARM的请求速率限制约束。
举个实际例子:如果你用azure-storage-blob里的generate_blob_sas方法生成Blob级SAS,这完全是Storage服务端的操作,和ARM没关系;但如果是用azure-mgmt-storage SDK调用storage_accounts.list_account_sas,那就是走ARM API,会占用ARM的请求配额。
如果你的列表操作在大量生成SAS后出现问题,大概率是存储账户的总请求数触达了Blob服务的速率上限,或者(如果用ARM生成SAS的话)触发了ARM的请求限制。
内容的提问来源于stack exchange,提问作者supertommy
相关产品推荐
相关产品推荐

