Microsoft Azure Azure Queue Storage Client Library for Python
项目描述
Azure 存储队列客户端库,用于 Python
Azure 队列存储是一种服务,用于存储大量消息,可以通过使用 HTTP 或 HTTPS 进行身份验证的调用从世界任何地方访问。单个队列消息的大小最多为 64 KiB,一个队列可以包含数百万条消息,最多达到存储帐户的总容量限制。
队列存储的常见用途包括
- 创建工作队列以异步处理
- 在分布式应用程序的不同部分之间传递消息
源代码 | 包(PyPI) | 包(Conda) | API参考文档 | 产品文档 | 示例
入门指南
先决条件
- 使用此包需要Python 3.8或更高版本。有关更多详细信息,请阅读我们关于Azure SDK for Python版本支持策略的页面。
- 您必须有一个Azure订阅和一个Azure存储帐户才能使用此包。
安装包
使用pip安装Azure存储队列的Python客户端库
pip install azure-storage-queue
创建存储帐户
如果您想创建新的存储帐户,可以使用Azure门户、Azure PowerShell或Azure CLI
# Create a new resource group to hold the storage account -
# if using an existing resource group, skip this step
az group create --name my-resource-group --location westus2
# Create the storage account
az storage account create -n my-storage-account-name -g my-resource-group
创建客户端
Python的Azure存储队列客户端库允许您与三种类型的资源进行交互:存储帐户本身、队列和消息。与这些资源的交互从客户端的实例开始。要创建客户端对象,您需要存储帐户的队列服务终结点URL和一个允许您访问存储帐户的凭据
from azure.storage.queue import QueueServiceClient
service = QueueServiceClient(account_url="https://<my-storage-account-name>.queue.core.windows.net/", credential=credential)
查找帐户URL
您可以使用Azure门户、Azure PowerShell或Azure CLI查找存储帐户的队列服务URL
# Get the queue service URL for the storage account
az storage account show -n my-storage-account-name -g my-resource-group --query "primaryEndpoints.queue"
凭据类型
根据您希望使用的授权类型,credential
参数可以以多种形式提供
-
要使用共享访问签名(SAS)令牌,将令牌作为字符串提供。如果您的帐户URL包含SAS令牌,则省略凭据参数。您可以从Azure门户中的“共享访问签名”下生成SAS令牌,或使用其中一个
generate_sas()
函数为存储帐户或队列创建SAS令牌from datetime import datetime, timedelta from azure.storage.queue import QueueServiceClient, generate_account_sas, ResourceTypes, AccountSasPermissions sas_token = generate_account_sas( account_name="<storage-account-name>", account_key="<account-access-key>", resource_types=ResourceTypes(service=True), permission=AccountSasPermissions(read=True), start=datetime.utcnow(), expiry=datetime.utcnow() + timedelta(hours=1) ) queue_service_client = QueueServiceClient(account_url="https://<my_account_name>.queue.core.windows.net", credential=sas_token)
-
要使用存储帐户共享密钥(也称为帐户密钥或访问密钥),将密钥作为字符串提供。您可以在Azure门户的“访问密钥”部分下找到它,或者运行以下Azure CLI命令
az storage account keys list -g MyResourceGroup -n MyStorageAccount
将密钥作为凭据参数用于验证客户端
from azure.storage.queue import QueueServiceClient service = QueueServiceClient(account_url="https://<my_account_name>.queue.core.windows.net", credential="<account_access_key>")
-
要使用Azure Active Directory(AAD)令牌凭据,提供从azure-identity库获取的所需凭据类型的实例。例如,可以使用DefaultAzureCredential来验证客户端。
这需要一些初始设置
- 安装azure-identity
- 注册新的 Azure AD 应用程序 并授予访问 Azure 存储的权限
- 授予访问 Azure 队列数据,在 Azure 门户中使用 RBAC
- 将 AAD 应用程序的客户端 ID、租户 ID 和客户端密钥的值设置为环境变量:AZURE_TENANT_ID、AZURE_CLIENT_ID、AZURE_CLIENT_SECRET
使用返回的令牌凭据进行客户端身份验证
from azure.identity import DefaultAzureCredential from azure.storage.queue import QueueServiceClient token_credential = DefaultAzureCredential() queue_service_client = QueueServiceClient( account_url="https://<my_account_name>.queue.core.windows.net", credential=token_credential )
从连接字符串创建客户端
根据您的用例和授权方法,您可能更喜欢使用存储连接字符串初始化客户端实例,而不是单独提供账户 URL 和凭据。为此,将存储连接字符串传递给客户端的 from_connection_string
类方法
from azure.storage.queue import QueueServiceClient
connection_string = "DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxx;EndpointSuffix=core.windows.net"
service = QueueServiceClient.from_connection_string(conn_str=connection_string)
您可以在 Azure 门户的“访问密钥”部分或通过运行以下 CLI 命令找到您的存储账户的连接字符串:
az storage account show-connection-string -g MyResourceGroup -n MyStorageAccount
关键概念
以下组件构成了 Azure 队列服务
- 存储账户本身
- 存储账户中的一个队列,其中包含一组消息
- 队列中的消息,可以是任何格式,大小最多为 64 KiB
Azure 存储队列 Python 客户端库允许您通过使用专门的客户端对象与这些组件交互。
异步客户端
此库包括一个完整的异步 API,支持 Python 3.5+。要使用它,您必须首先安装异步传输,例如 aiohttp。有关更多信息,请参阅 azure-core 文档。
当不再需要时,应关闭异步客户端和凭据。这些对象是异步上下文管理器,并定义了异步 close
方法。
客户端
提供了两个不同的客户端来与队列服务的不同组件交互
- QueueServiceClient - 此客户端表示与 Azure 存储账户的交互,允许您获取预配置的客户端实例来访问队列。它提供了检索和配置账户属性的操作,以及列出、创建和删除账户内的队列的操作。要执行特定队列的操作,请使用
get_queue_client
方法获取客户端。 - QueueClient - 此客户端表示与特定队列的交互(该队列可能尚不存在)。它提供了创建、删除或配置队列的操作,并包括发送、接收、查看、删除和更新队列中消息的操作。
消息
- 发送 - 将消息添加到队列,并可选地为消息设置可见性超时。
- 接收 - 从队列中检索消息,使其对其他消费者不可见。
- 查看 - 从队列前面检索消息,而不更改消息可见性。
- 更新 - 更新消息的可见性超时和/或消息内容。
- 删除 - 从队列中删除指定的消息。
- 清除 - 从队列中清除所有消息。
示例
以下部分提供了几个代码片段,涵盖了 Storage 队列的一些常见任务,包括
创建队列
在您的存储账户中创建队列
from azure.storage.queue import QueueClient
queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
queue.create_queue()
使用异步客户端创建队列
from azure.storage.queue.aio import QueueClient
queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
await queue.create_queue()
发送消息
向您的队列发送消息
from azure.storage.queue import QueueClient
queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
queue.send_message("I'm using queues!")
queue.send_message("This is my second message")
异步发送消息
import asyncio
from azure.storage.queue.aio import QueueClient
queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
await asyncio.gather(
queue.send_message("I'm using queues!"),
queue.send_message("This is my second message")
)
接收消息
接收和处理队列中的消息
from azure.storage.queue import QueueClient
queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
response = queue.receive_messages()
for message in response:
print(message.content)
queue.delete_message(message)
# Printed messages from the front of the queue:
# >> I'm using queues!
# >> This is my second message
批量接收和处理消息
from azure.storage.queue import QueueClient
queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
response = queue.receive_messages(messages_per_page=10)
for message_batch in response.by_page():
for message in message_batch:
print(message.content)
queue.delete_message(message)
异步接收和处理消息
from azure.storage.queue.aio import QueueClient
queue = QueueClient.from_connection_string(conn_str="<connection_string>", queue_name="myqueue")
response = queue.receive_messages()
async for message in response:
print(message.content)
await queue.delete_message(message)
可选配置
可以在客户端和每个操作级别传递的可选关键字参数。
重试策略配置
在实例化客户端时,使用以下关键字参数来配置重试策略
- retry_total (int): 允许的重试总次数。优先于其他计数。如果不想在请求上重试,请传入
retry_total=0
。默认为10。 - retry_connect (int): 在连接相关错误上重试的次数。默认为3。
- retry_read (int): 在读取错误上重试的次数。默认为3。
- retry_status (int): 在不良状态码上重试的次数。默认为3。
- retry_to_secondary (bool): 如果可能,请求是否应该重试到二级。仅当使用RA-GRS账户且可能处理过时数据时才启用。默认为
False
。
其他客户端/每操作配置
可以在客户端或每操作中指定的其他可选配置关键字参数。
客户端关键字参数
- connection_timeout (int): 客户端建立与服务器连接将等待的秒数。默认为20秒。
- read_timeout (int): 客户端在连续读取操作之间等待服务器响应的秒数。这是一个套接字级别超时,不受整体数据大小的影响。客户端端读取超时将自动重试。默认为60秒。
- transport (Any): 用户提供的用于发送HTTP请求的传输。
每操作关键字参数
- raw_response_hook (callable): 给定的回调使用服务返回的响应。
- raw_request_hook (callable): 给定的回调使用在发送到服务之前请求。
- client_request_id (str): 可选的用户指定的请求标识。
- user_agent (str): 将自定义值附加到要随请求发送的用户代理头中。
- logging_enable (bool): 启用DEBUG级别的日志记录。默认为False。也可以在客户端级别传入以启用所有请求。
- logging_body (bool): 启用记录请求和响应正文。默认为False。也可以在客户端级别传入以启用所有请求。
- headers (dict): 以键值对的形式传入自定义头。例如:
headers={'CustomValue': value}
故障排除
一般
存储队列客户端抛出在Azure Core中定义的异常。
此列表可用于参考以捕获抛出的异常。要获取异常的具体错误代码,请使用error_code
属性,即exception.error_code
。
日志记录
此库使用标准的logging库进行日志记录。HTTP会话(URL、头等)的基本信息以INFO级别记录。
可以通过在客户端使用logging_enable
参数启用详细的DEBUG级别日志记录,包括请求/响应正文和未脱敏的头。
import sys
import logging
from azure.storage.queue import QueueServiceClient
# Create a logger for the 'azure.storage.queue' SDK
logger = logging.getLogger('azure.storage.queue')
logger.setLevel(logging.DEBUG)
# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)
# This client will log detailed information about its HTTP sessions, at DEBUG level
service_client = QueueServiceClient.from_connection_string("your_connection_string", logging_enable=True)
同样,logging_enable
可以在客户端未启用的情况下为单个操作启用详细日志记录。
service_client.get_service_stats(logging_enable=True)
下一步
更多示例代码
从我们的队列示例开始。
在SDK的GitHub存储库中,有多个存储队列Python SDK示例可供您使用。这些示例提供了在处理存储队列时常见场景的示例代码。
-
queue_samples_hello_world.py (异步版本) - 文章中找到的示例
- 客户端创建
- 创建队列
- 发送消息
- 接收消息
-
queue_samples_authentication.py (异步版本) - 验证和创建客户端的示例
- 从连接字符串
- 从共享访问密钥
- 从共享访问签名令牌
- 从Azure Active Directory
-
queue_samples_service.py (异步版本) - 与队列服务交互的示例
- 获取和设置服务属性
- 列出存储账户中的队列
- 从服务创建和删除队列
- 获取QueueClient
-
queue_samples_message.py (异步版本) - 处理队列和消息的示例
- 设置访问策略
- 获取和设置队列元数据
- 发送和接收消息
- 删除指定的消息和清除所有消息
- 查看并更新消息
其他文档
有关Azure队列存储的更多文档,请参阅docs.microsoft.com上的Azure队列存储文档。
贡献
此项目欢迎贡献和建议。大多数贡献都需要您同意贡献者许可协议(CLA),声明您有权利,并且确实授予我们使用您贡献的权利。有关详细信息,请访问https://cla.microsoft.com。
提交拉取请求时,CLA-bot将自动确定您是否需要提供CLA,并相应地装饰PR(例如,标签、注释)。只需遵循机器人提供的说明即可。您在整个使用我们的CLA的仓库中只需要这样做一次。
此项目已采用Microsoft开源行为准则。有关更多信息,请参阅行为准则常见问题解答或联系opencode@microsoft.com,如有任何其他问题或评论。
发布历史
12.12.0 (2024-09-17)
新增功能
- 12.12.0b1的稳定版功能
12.12.0b1 (2024-08-07)
新增功能
- 增加了对服务版本2024-11-04的支持。
其他更改
- 将最低的
azure-core
依赖项提升到1.30.0。
12.11.0 (2024-07-18)
新增功能
- 12.11.0b1的稳定版功能
12.11.0b1 (2024-06-11)
新增功能
- 更新OAuth实现,使用Bearer challenge返回的AAD范围。
- 修复了一个问题,即客户端指定的服务版本可能会被忽略。
12.10.0 (2024-05-07)
新增功能
- 12.10.0b1的稳定版功能
12.10.0b1 (2024-04-16)
此版本及所有后续版本将需要Python 3.8+。Python 3.7不再受支持。
新增功能
- 在
generate_account_sas
API中添加了services
参数,这使得能够生成用于多个服务的SAS令牌。默认情况下,SAS令牌服务作用域将默认为当前服务。
错误修复
- 将
typing-extensions
的依赖项提升到>=4.6.0
,以避免在Python 3.12上使用typing.TypeVar
时潜在的TypeError
。 - 修复了使用异步OAuth凭据时,认证错误可能会引发
AttributeError
而不是ClientAuthenticationError
的问题。
12.9.0 (2023-12-05)
其他更改
- 在整个包中更新了类型提示,并使MyPy在CI期间运行。如果某些公共类型之前错误或不完整,可能已对其进行调整。
12.8.0 (2023-11-07)
新增功能
- 12.18.0b1的稳定版功能
12.8.0b1 (2023-10-17)
新增功能
- 将
audience
添加为一个可选关键字,可以在具有credential
参数的API上指定。此关键字仅在提供的凭据类型为TokenCredential
时才有效。
12.7.3 (2023-10-10)
错误修复
- 修复了在客户端构造过程中提供无效类型给
credential
时的问题,对象的__str__
会出现在异常消息中,因此可能会被记录。
12.7.2 (2023-09-25)
错误修复
- 修复了在客户端配置加密时忽略
user_agent
的问题,在send_message
、receive_message
、receive_messages
、update_message
和peek_messages
中。
12.7.1 (2023-09-13)
错误修复
- 修复了
create_configuration
中的破坏性错误KeyError: 'sdk_moniker'
。注意:这不是一个导出方法,因此不应该直接导入或调用。
12.7.0 (2023-09-12)
新增功能
- 12.7.0b1的稳定版本功能。
12.7.0b1(2023-08-08)
其他更改
- 将
azure-core
最低依赖性提升到1.28.0,并将typing-extensions
提升到4.3.0。
12.6.0 (2023-02-22)
新增功能
- 12.6.0b1的稳定版本功能。
12.6.0b1(2023-02-02)
其他更改
- 移除了
msrest
依赖。 - 将
typing-extensions>=4.0.1
添加为依赖项。 - 将
isodate>=0.6.1
添加为依赖项。 - 添加了额外的依赖项
aio
来安装可选的异步依赖项。使用pip install azure-storage-queue[aio]
进行安装。
12.5.0 (2022-10-11)
新增功能
- 12.5.0b1的稳定版本功能。
其他更改
- 将所有客户端的默认
read_timeout
值更改为60秒。
12.5.0b1(2022-08-23)
此版本和所有未来版本将需要Python 3.7+。Python 3.6不再受支持。
新增功能
- 添加了对
AzureNamedKeyCredential
作为有效credential
类型的支持。
12.4.0 (2022-07-07)
新增功能
- 12.4.0b1的稳定版本功能。
12.4.0b1(2022-06-15)
新增功能
- 引入了队列消息客户端端加密的2.0版本,该版本使用AES-GCM-256加密。1.0版本已弃用,不再被认为是安全的。如果您正在使用客户端端加密,强烈建议您升级到2.0版本。可以通过任何客户端构造函数上的
encryption_version
关键字(例如encryption_version='2.0'
)指定加密版本。
12.3.0 (2022-05-09)
新增功能
- 12.3.0b1的稳定版本功能。
错误修复
- 修复了上一个beta版本中引入的错误,该错误在使用某些服务级别操作尝试使用Account SAS时导致身份验证错误。
12.3.0b1(2022-04-14)
新增功能
- 在
receive_messages()
中添加了对max_messages
的支持,以指定从队列中接收的消息的最大数量。
其他更改
- 更新了SAS令牌生成,默认使用最新支持的服务版本。切换到最新版本还包括了如何生成账户SAS的改变,以反映服务在SAS生成方面对2020-12-06服务版本的更改。
- 更新了
receive_messages()
的文档,解释迭代器行为和生命周期。 - 在
queue_samples_message.py
(以及异步等效版本)中添加了一个示例,展示了在receive_messages()
中使用max_messages
。
12.2.0 (2022-03-08)
此版本和所有未来版本将需要Python 3.6+。Python 2.7不再受支持。
错误修复
- 更新
azure-core
依赖项以避免安装不一致的依赖项。
12.1.6 (2021-04-20)
修复
- 使conn_str中的
AccountName
、AccountKey
等参数不区分大小写 - 修复了未关闭的
ThreadPoolExecutor
(#8955)
12.1.5 (2021-01-13)
新功能
- 添加了对
AzureSasCredential
的支持,允许在长期存在的客户端中轮换SAS。
12.1.4 (2020-11-10)
新功能
- 在QueueClient上添加了
receive_message
以支持从队列中接收一条消息(#14844,#14762)
注释
- 更新了依赖项
azure-core
,从azure-core<2.0.0,>=1.6.0到azure-core<2.0.0,>=1.9.0,以获取AzureError上的continuation_token属性。
12.1.3 (2020-09-10)
修复
- 修复了QueueClient类型声明(#11392)。
12.1.2
注释
- 将依赖项从azure-core<2.0.0,>=1.2.2更新到azure-core<2.0.0,>=1.6.0。
12.1.1 (2020-03-10)
修复
- 响应始终以UTF8解码
注释
StorageUserAgentPolicy
现在被UserAgentPolicy
从azure-core替换。因此,自定义用户代理现在作为前缀添加,而不是追加。
12.1.0 (2019-12-04)
新功能
- 所有客户端现在都有一个
close()
方法,用于在没有使用上下文管理器的情况下关闭客户端打开的套接字。
12.0.0 (2019-10-31)
破坏性变更
QueueClient
现在只接受必需的字符串参数queue_name
的account_url
。要使用queue_url
,必须使用from_queue_url
方法。set_queue_access_policy
必须包含参数signed_identifiers
。NoRetry
策略已被移除。使用关键字参数retry_total=0
表示不重试。NoEncodePolicy
和NoDecodePolicy
已被移除。使用message_encode_policy=None
和message_decode_policy=None
。- 已移除从两个模块意外暴露的类型。应该仅从 azure.storage.queue.aio 导入
QueueServiceClient
和QueueClient
。 - 一些参数现在只能是关键字参数,而不是位置参数。以下是一些例子:
loop
max_concurrency
validate_content
timeout
等。
QueueMessage
的参数已从insertion_time
、time_next_visible
、expiration_time
重命名为inserted_on
、next_visible_on
、expires_on
。Logging
已重命名为QueueAnalyticsLogging
。enqueue_message
现在称为send_message
。- 客户端和模型文件已变为内部使用。用户应仅从顶级模块
azure.storage.queue
和azure.storage.queue.aio
导入。 - 在
QueueServiceClient
和QueueClient
上的generate_shared_access_signature
方法已被模块级函数generate_account_sas
和generate_queue_sas
替换。 get_service_stats
现在返回一个字典。get_service_properties
现在返回一个字典,其键与set_service_properties
中的键一致。
新功能
ResourceTypes
和Services
现在有方法from_string
,它接受字符串参数。
修复和改进
- 修复了 XML 被双重编码和双重解码的问题。
12.0.0b4 (2019-10-08)
破坏性变更
- 权限模型。
AccountPermissions
和QueuePermissions
已分别重命名为AccountSasPermissions
和QueueSasPermissions
。- 从它们两个中移除了枚举样式的列表参数。
__add__
和__or__
方法已被移除。
max_connections
现在重命名为max_concurrency
。
新功能
AccountSasPermissions
和QueueSasPermissions
现在有方法from_string
,它接受字符串参数。
12.0.0b3 (2019-09-10)
依赖项更新
-
已采用 azure-core 1.0.0b3
- 如果您以后想回滚到 azure-storage-queue 的先前版本,或需要 azure-core 1.0.0b1 或 azure-core 1.0.0b2 的其他 Azure SDK 库,您必须显式安装 azure-core 的特定版本。例如
pip install azure-core==1.0.0b2 azure-storage-queue==12.0.0b2
12.0.0b2 (2019-08-06)
破坏性变更
- 列出操作的行为已被修改
- 之前的
marker
参数已被移除。 - 可迭代的响应对象现在支持一个
by_page
函数,该函数将返回一个包含结果批次的二级迭代器。此函数支持一个continuation_token
参数,以替换之前的marker
参数。
- 之前的
- 新的列出行为也适用于
receive_messages
操作。- 接收操作返回一个与之前相同的消息迭代器。
- 返回的迭代器支持一个
by_page
操作,以批量接收消息。
新功能
- 已向子命名空间
azure.storage.queue.aio
添加了异步 API。 - 现在支持分布式跟踪框架 OpenCensus。
依赖项更新
-
已采用 azure-core 1.0.0b2
- 如果您以后想回滚到 azure-storage-queue 12.0.0b1,或需要 azure-core 1.0.0b1 的其他 Azure SDK 库,您必须显式安装 azure-core 1.0.0b1。例如
pip install azure-core==1.0.0b1 azure-storage-queue==12.0.0b1
修复和改进
- 对重复和共享代码进行了通用重构。
12.0.0b1 (2019-07-02)
12.0.0b1 版本是我们创建一个用户友好且符合 Python 语言的 Azure 存储队列客户端库的第一版预览。有关此版本和其他 Azure SDK 库的预览发布信息,请访问 https://aka.ms/azure-sdk-preview1-python。
重大变更:新的 API 设计
-
操作现在限定在特定的客户端范围内
QueueServiceClient
:此客户端处理账户级别的操作。包括管理服务属性和列出账户内的队列。QueueClient
:此客户端处理特定队列内的操作。包括创建或删除该队列,以及入队和出队消息。
可以通过导航客户端层次结构或直接使用资源(账户或队列)的 URL 来访问这些客户端。有关新 API 的完整详情,请参阅 参考文档。
-
新的消息迭代器,用于连续流式传输从队列接收消息。
-
基于新的
azure-core
库的新底层 REST 管道实现。 -
客户端和管道配置现在可以通过客户端级别和操作级别的关键字参数进行访问。有关所有可选配置参数的完整列表,请参阅参考文档。
-
使用
azure-identity
凭据进行身份验证- 有关更多信息,请参阅 Azure Identity 文档
-
新的错误层次结构
- 所有服务错误现在将使用基本类型:
azure.core.exceptions.HttpResponseError
- 从该基本类型派生出几个特定异常类型,用于常见的错误场景
ResourceNotFoundError
:资源(例如队列、消息)未找到。通常是 404 状态码。ResourceExistsError
:资源冲突 - 通常是在尝试创建已存在的资源时发生。ResourceModifiedError
:资源已被修改(例如覆盖),因此当前操作冲突。或者,如果操作的条件未满足,也可能抛出此异常。ClientAuthenticationError
:身份验证失败。
- 所有服务错误现在将使用基本类型:
-
不再有针对
get_metadata
的特定操作 - 使用get_properties
代替。 -
不再有针对
exists
的特定操作 - 使用get_properties
代替。 -
操作
get_queue_acl
和set_queue_acl
已重命名为get_queue_access_policy
和set_queue_access_policy
。 -
操作
put_message
已重命名为enqueue_message
。 -
操作
get_messages
已重命名为receive_messages
。
2.0.1
- 已更新对 azure-storage-common 的依赖。
2.0.0
- 支持 2018-11-09 REST 版本。
1.4.0
- 在 Python 3 中不再安装 azure-storage-nspkg(基于 PEP420 的命名空间包)
1.3.0
- 支持 2018-03-28 REST 版本。请参阅我们的 REST API 文档和博客,了解相关新增功能。
1.2.0rc1
- 支持 2017-11-09 REST 版本。请参阅我们的 REST API 文档和博客,了解相关新增功能。
- 增加了对 HTTPS 请求 OAuth 身份验证的支持(请注意,此功能处于预览状态)。
1.1.0
- 支持 2017-07-29 REST 版本。请参阅我们的 REST API 文档和博客,了解相关新增功能。
- 队列消息现在可以有任意大的或无限的生命周期。
- 错误消息现在包含来自 x-ms-error-code 报头值的 ErrorCode。
1.0.0
- 该软件包已从 Apache 2.0 许可证切换到 MIT 许可证。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。