你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
QueueServiceClient 类
在帐户级别与队列服务交互的客户端。
此客户端提供检索和配置帐户属性以及列出、创建和删除帐户中的队列的操作。 对于与特定队列相关的操作,可以使用 函数检索此实体的 get_queue_client 客户端。
有关更多可选配置,请 单击此处。
- 继承
-
azure.storage.queue._shared.base_client.StorageAccountHostsMixinQueueServiceClientazure.storage.queue._encryption.StorageEncryptionMixinQueueServiceClient
构造函数
QueueServiceClient(account_url: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any)
参数
- credential
用于进行身份验证的凭据。 如果帐户 URL 已有 SAS 令牌,则这是可选的。 该值可以是 SAS 令牌字符串、AzureSasCredential 的实例或 azure.core.credentials 中的 AzureNamedKeyCredential、帐户共享访问密钥或 azure.identity 中的 TokenCredentials 类的实例。 如果资源 URI 已包含 SAS 令牌,则会忽略此令牌,转而使用显式凭据
- AzureSasCredential 的情况除外,其中冲突的 SAS 令牌将引发 ValueError。 如果使用 AzureNamedKeyCredential 的实例,则“name”应为存储帐户名称,“密钥”应为存储帐户密钥。
- api_version
- str
用于请求的存储 API 版本。 默认值是与当前 SDK 兼容的最新服务版本。 设置为较旧版本可能会导致功能兼容性降低。
- secondary_hostname
- str
辅助终结点的主机名。
- audience
- str
请求 Azure Active Directory 身份验证令牌时要使用的受众。 仅当凭据的类型为 TokenCredential 时有效。 该值可以是 https://storage.azure.com/ 默认 () 或 https://.queue.core.windows.net。
示例
使用帐户 URL 和凭据创建 QueueServiceClient。
from azure.storage.queue import QueueServiceClient
queue_service = QueueServiceClient(account_url=self.account_url, credential=self.access_key)
使用 Azure 标识凭据创建 QueueServiceClient。
# Get a token credential for authentication
from azure.identity import ClientSecretCredential
token_credential = ClientSecretCredential(
self.active_directory_tenant_id,
self.active_directory_application_id,
self.active_directory_application_secret
)
# Instantiate a QueueServiceClient using a token credential
from azure.storage.queue import QueueServiceClient
queue_service = QueueServiceClient(account_url=self.account_url, credential=token_credential)
方法
close |
此方法用于关闭客户端打开的套接字。 与上下文管理器一起使用时,不需要使用它。 |
create_queue |
在指定的帐户下创建新队列。 如果已存在同名队列,则操作将失败。 返回与新创建的队列交互的客户端。 |
delete_queue |
删除指定的队列及其包含的任何消息。 成功删除队列后,会立即将其标记为删除,客户端不再可访问该队列。 该队列将在稍后的垃圾回收期间从队列服务中删除。 请注意,删除队列可能需要至少 40 秒才能完成。 如果在删除队列时尝试对队列执行操作, <xref:azure.storage.queue.HttpResponseError> 则会引发 。 |
from_connection_string |
从连接字符串创建 QueueServiceClient。 |
get_queue_client |
获取要与指定队列交互的客户端。 队列不需要已经存在。 |
get_service_properties |
获取存储帐户的队列服务的属性,包括 Azure 存储分析。 |
get_service_stats |
检索与队列服务的复制有关的统计信息。 仅当为存储帐户启用读取访问异地冗余复制时,它才可用。 通过地域冗余复制,Azure 存储服务在两个位置维护你的持久数据。 在这两个位置,Azure 存储始终维护您数据的多个运行正常副本。 读取、创建、更新或删除数据的位置称为“主”存储帐户位置。 在通过 Azure 管理 Azure 经典门户(例如美国中北部)创建帐户时所选区域中存在主要位置。 数据复制到的位置为“辅助”位置。 根据主位置自动确定辅助位置,它在主位置所在区域中的第二个数据中心内。 如果为存储帐户启用了“读访问的地域冗余复制”,则可对辅助位置执行只读访问。 |
list_queues |
返回一个生成器,以列出指定帐户下的队列。 生成器将延迟遵循服务返回的继续标记,并在返回所有队列后停止。 |
set_service_properties |
设置存储帐户的队列服务的属性,包括 Azure 存储分析。 如果元素 (例如,analytics_logging) 保留为 None,则保留该服务上该功能的现有设置。 |
close
此方法用于关闭客户端打开的套接字。 与上下文管理器一起使用时,不需要使用它。
close()
create_queue
在指定的帐户下创建新队列。
如果已存在同名队列,则操作将失败。 返回与新创建的队列交互的客户端。
create_queue(name: str, metadata: Dict[str, str] | None = None, **kwargs: Any) -> QueueClient
参数
- timeout
- int
超时参数以秒表示。
返回
新创建的队列的 QueueClient。
返回类型
示例
在服务中创建队列。
queue_service.create_queue("myqueue1")
delete_queue
删除指定的队列及其包含的任何消息。
成功删除队列后,会立即将其标记为删除,客户端不再可访问该队列。 该队列将在稍后的垃圾回收期间从队列服务中删除。
请注意,删除队列可能需要至少 40 秒才能完成。 如果在删除队列时尝试对队列执行操作, <xref:azure.storage.queue.HttpResponseError> 则会引发 。
delete_queue(queue: QueueProperties | str, **kwargs: Any) -> None
参数
- timeout
- int
超时参数以秒表示。
返回类型
示例
删除服务中的队列。
queue_service.delete_queue("myqueue1")
from_connection_string
从连接字符串创建 QueueServiceClient。
from_connection_string(conn_str: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self
参数
- credential
用于进行身份验证的凭据。 如果帐户 URL 已有 SAS 令牌,或者连接字符串已具有共享访问密钥值,则这是可选的。 该值可以是 SAS 令牌字符串、AzureSasCredential 的实例或 azure.core.credentials 中的 AzureNamedKeyCredential、帐户共享访问密钥或 azure.identity 中的 TokenCredentials 类的实例。 此处提供的凭据优先于连接字符串中的凭据。 如果使用 AzureNamedKeyCredential 的实例,则“name”应为存储帐户名称,“密钥”应为存储帐户密钥。
- audience
- str
请求 Azure Active Directory 身份验证令牌时要使用的受众。 仅当凭据的类型为 TokenCredential 时有效。 该值可以是 https://storage.azure.com/ 默认 () 或 https://.queue.core.windows.net。
返回
队列服务客户端。
返回类型
示例
使用连接字符串创建 QueueServiceClient。
from azure.storage.queue import QueueServiceClient
queue_service = QueueServiceClient.from_connection_string(conn_str=self.connection_string)
get_queue_client
获取要与指定队列交互的客户端。
队列不需要已经存在。
get_queue_client(queue: QueueProperties | str, **kwargs: Any) -> QueueClient
参数
返回
QueueClient 对象。
返回类型
示例
获取队列客户端。
# Get the queue client to interact with a specific queue
queue = queue_service.get_queue_client(queue="myqueue2")
get_service_properties
获取存储帐户的队列服务的属性,包括 Azure 存储分析。
get_service_properties(**kwargs: Any) -> Dict[str, Any]
参数
- timeout
- int
超时参数以秒表示。
返回
包含队列服务属性(例如分析日志记录、小时/分钟指标、cors 规则等)的对象。
返回类型
示例
获取队列服务属性。
properties = queue_service.get_service_properties()
get_service_stats
检索与队列服务的复制有关的统计信息。
仅当为存储帐户启用读取访问异地冗余复制时,它才可用。
通过地域冗余复制,Azure 存储服务在两个位置维护你的持久数据。 在这两个位置,Azure 存储始终维护您数据的多个运行正常副本。 读取、创建、更新或删除数据的位置称为“主”存储帐户位置。 在通过 Azure 管理 Azure 经典门户(例如美国中北部)创建帐户时所选区域中存在主要位置。 数据复制到的位置为“辅助”位置。 根据主位置自动确定辅助位置,它在主位置所在区域中的第二个数据中心内。 如果为存储帐户启用了“读访问的地域冗余复制”,则可对辅助位置执行只读访问。
get_service_stats(**kwargs: Any) -> Dict[str, Any]
参数
- timeout
- int
超时参数以秒表示。
返回
队列服务统计信息。
返回类型
list_queues
返回一个生成器,以列出指定帐户下的队列。
生成器将延迟遵循服务返回的继续标记,并在返回所有队列后停止。
list_queues(name_starts_with: str | None = None, include_metadata: bool | None = False, **kwargs: Any) -> ItemPaged[QueueProperties]
参数
- results_per_page
- int
每个 API 调用要检索的最大队列名称数。 如果请求未指定,服务器将返回最多 5,000 个项。
- timeout
- int
设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。 此函数可能会对服务进行多次调用,在这种情况下,指定的超时值将应用于每个单独的调用。
返回
QueueProperties 的可迭代 (自动分页) 。
返回类型
示例
列出服务中的队列。
# List all the queues in the service
list_queues = queue_service.list_queues()
for queue in list_queues:
print(queue)
# List the queues in the service that start with the name "my"
list_my_queues = queue_service.list_queues(name_starts_with="my")
for queue in list_my_queues:
print(queue)
set_service_properties
设置存储帐户的队列服务的属性,包括 Azure 存储分析。
如果元素 (例如,analytics_logging) 保留为 None,则保留该服务上该功能的现有设置。
set_service_properties(analytics_logging: QueueAnalyticsLogging | None = None, hour_metrics: Metrics | None = None, minute_metrics: Metrics | None = None, cors: List[CorsRule] | None = None, **kwargs: Any) -> None
参数
- timeout
- int
超时参数以秒表示。
示例
设置队列服务属性。
# Create service properties
from azure.storage.queue import QueueAnalyticsLogging, Metrics, CorsRule, RetentionPolicy
# Create logging settings
logging = QueueAnalyticsLogging(read=True, write=True, delete=True, retention_policy=RetentionPolicy(enabled=True, days=5))
# Create metrics for requests statistics
hour_metrics = Metrics(enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=5))
minute_metrics = Metrics(enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=5))
# Create CORS rules
cors_rule1 = CorsRule(['www.xyz.com'], ['GET'])
allowed_origins = ['www.xyz.com', "www.ab.com", "www.bc.com"]
allowed_methods = ['GET', 'PUT']
max_age_in_seconds = 500
exposed_headers = ["x-ms-meta-data*", "x-ms-meta-source*", "x-ms-meta-abc", "x-ms-meta-bcd"]
allowed_headers = ["x-ms-meta-data*", "x-ms-meta-target*", "x-ms-meta-xyz", "x-ms-meta-foo"]
cors_rule2 = CorsRule(
allowed_origins,
allowed_methods,
max_age_in_seconds=max_age_in_seconds,
exposed_headers=exposed_headers,
allowed_headers=allowed_headers
)
cors = [cors_rule1, cors_rule2]
# Set the service properties
queue_service.set_service_properties(logging, hour_metrics, minute_metrics, cors)
属性
api_version
location_mode
primary_endpoint
primary_hostname
secondary_endpoint
完整的辅助终结点 URL(如果已配置)。
如果不可用,将引发 ValueError。 若要显式指定辅助主机名,请在实例化时使用可选的 secondary_hostname 关键字 (keyword) 参数。
返回类型
例外
secondary_hostname
辅助终结点的主机名。
如果不可用,则此项将为“无”。 若要显式指定辅助主机名,请在实例化时使用可选的 secondary_hostname 关键字 (keyword) 参数。
返回类型
url
此实体的完整终结点 URL,包括 SAS 令牌(如果使用)。
这可以是主终结点,也可以是辅助终结点,具体取决于当前 location_mode。 :returns:此实体的完整终结点 URL,包括 SAS 令牌(如果使用)。 :rtype:str