QueueClient クラス
特定のキューと対話するクライアント。
その他のオプションの構成については、 ここをクリックしてください。
- 継承
-
azure.storage.queue._shared.base_client.StorageAccountHostsMixinQueueClientazure.storage.queue._encryption.StorageEncryptionMixinQueueClient
コンストラクター
QueueClient(account_url: str, queue_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any)
パラメーター
- account_url
- str
ストレージ アカウントの URL。 キューへの完全な URI を指定してクライアントを作成するには、 クラスメソッドを使用します from_queue_url 。
- credential
認証に使用する資格情報。 アカウント URL に SAS トークンが既に含まれている場合、これは省略可能です。 値には、SAS トークン文字列、azure.core.credentials の AzureSasCredential または AzureNamedKeyCredential のインスタンス、アカウント共有アクセス キー、または azure.identity からの TokenCredentials クラスのインスタンスを指定できます。 リソース URI に SAS トークンが既に含まれている場合、明示的な資格情報を優先して無視されます
- ただし、競合する SAS トークンによって ValueError が発生する AzureSasCredential の場合を除きます。 AzureNamedKeyCredential のインスタンスを使用する場合は、"name" をストレージ アカウント名に、"key" をストレージ アカウント キーにする必要があります。
- api_version
- str
要求に使用する Storage API バージョン。 既定値は、現在の SDK と互換性のある最新のサービス バージョンです。 古いバージョンに設定すると、機能の互換性が低下する可能性があります。
- secondary_hostname
- str
セカンダリ エンドポイントのホスト名。
- message_encode_policy
送信メッセージで使用するエンコード ポリシー。 既定では、メッセージはエンコードされません。 その他のオプションには、 TextBase64EncodePolicy、 BinaryBase64EncodePolicy または None があります。
- message_decode_policy
受信メッセージで使用するデコード ポリシー。 既定値は、メッセージをデコードしません。 その他のオプションには、 TextBase64DecodePolicy、 BinaryBase64DecodePolicy または None があります。
- audience
- str
Azure Active Directory 認証のトークンを要求するときに使用する対象ユーザー。 資格情報が TokenCredential 型の場合にのみ有効です。 値は (既定値) または https://.queue.core.windows.net にすることができますhttps://storage.azure.com/。
例
URL と資格情報を使用してキュー クライアントを作成します。
token_auth_queue = QueueClient.from_queue_url(
queue_url=queue.url,
credential=sas_token
)
メソッド
clear_messages |
指定したキューからすべてのメッセージを削除します。 |
close |
このメソッドは、クライアントによって開かれたソケットを閉じる方法です。 コンテキスト マネージャーで を使用する場合は使用する必要はありません。 |
create_queue |
ストレージ アカウントに新しいキューを作成します。 同じ名前のキューが既に存在する場合、 操作は ResourceExistsError で失敗します。 |
delete_message |
指定したメッセージを削除します。 通常、クライアントがメッセージの受信操作を使用してメッセージを取得した後、クライアントはメッセージを処理および削除する必要があります。 メッセージを削除するには、メッセージ オブジェクト自体、または id と pop_receipt の 2 つのデータ項目が必要です。 ID は、前のreceive_messages操作から返されます。 pop_receiptは、最新 receive_messages または update_message 操作から返されます。 delete_message操作を成功させるには、要求で指定されたpop_receiptが、 または update_message 操作からreceive_messages返されたpop_receiptと一致している必要があります。 |
delete_queue |
指定したキューとそのキューに含まれるすべてのメッセージを削除します。 キューが正常に削除されると、キューはすぐに削除対象としてマークされ、クライアントからアクセスできなくなります。 このキューは、後でガベージ コレクション中にキュー サービスから削除されます。 キューを削除すると、完了するまでに少なくとも 40 秒かかる可能性があることに注意してください。 削除中にキューに対して操作が試行されると、 <xref:azure.storage.queue.HttpResponseError> がスローされます。 |
from_connection_string |
接続文字列から QueueClient を作成します。 |
from_queue_url |
特定のキューと対話するクライアント。 |
get_queue_access_policy |
Shared Access Signature で使用できるキューで指定された格納されているアクセス ポリシーの詳細を返します。 |
get_queue_properties |
指定したキューのすべてのユーザー定義メタデータを返します。 返されるデータには、キューのメッセージの一覧は含まれません。 |
peek_messages |
キューの先頭から 1 つ以上のメッセージを取得しますが、メッセージの可視性は変更しません。 表示されているメッセージのみを取得できます。 への呼び出し receive_messagesでメッセージが初めて取得されると、そのdequeue_count プロパティは 1 に設定されます。 削除されず、その後再度取得された場合は、dequeue_count プロパティがインクリメントされます。 クライアントはこの値を使用して、メッセージが取得された回数を確認できます。 peek_messagesの呼び出しでは、dequeue_countの値はインクリメントされませんが、クライアントが読み取るためのこの値を返します。 キー暗号化キーまたはリゾルバー フィールドがローカル サービス オブジェクトに設定されている場合、メッセージは返される前に復号化されます。 |
receive_message |
キューの先頭から 1 つのメッセージを削除します。 メッセージがキューから取得されると、応答にはメッセージの内容と、メッセージを削除するために必要なpop_receipt値が含まれます。 メッセージはキューから自動的に削除されませんが、取得後、visibility_timeout パラメーターで指定された時間間隔の間、他のクライアントには表示されません。 ローカル サービス オブジェクトに key-encryption-key または resolver フィールドが設定されている場合、メッセージは復号化されてから返されます。 |
receive_messages |
キューの先頭から 1 つ以上のメッセージを削除します。 メッセージがキューから取得されると、応答にはメッセージの内容と、メッセージを削除するために必要なpop_receipt値が含まれます。 メッセージはキューから自動的に削除されませんが、取得後、visibility_timeout パラメーターで指定された時間間隔の間、他のクライアントには表示されません。 反復子は、キューが空であるか、max_messagesに達するまで (max_messagesが設定されている場合)、メッセージを継続的にフェッチします。 キー暗号化キーまたはリゾルバー フィールドがローカル サービス オブジェクトに設定されている場合、メッセージは返される前に復号化されます。 |
send_message |
メッセージ キューの背面に新しいメッセージを追加します。 可視性のタイムアウトは、メッセージが非表示になる時間を指定します。 タイムアウトになったら、メッセージが表示されるようになります。 表示タイムアウトを指定していない場合、既定値の 0 が使用されます。 メッセージの有効期間は、メッセージがキューに残る期間を指定します。 有効期限が切れると、メッセージがキューから削除されます。 key-encryption-key フィールドがローカル サービス オブジェクトに設定されている場合、このメソッドはアップロードする前にコンテンツを暗号化します。 |
set_queue_access_policy |
共有アクセス署名で使用できるキューの保存されているアクセス ポリシーを設定します。 キューのアクセス許可を設定すると、既存のアクセス許可が置き換えられます。 キューのアクセス許可を更新するには、 を呼び出 get_queue_access_policy して、キューに関連付けられているすべてのアクセス ポリシーをフェッチし、変更するアクセス ポリシーを変更してから、更新を実行するデータの完全なセットでこの関数を呼び出します。 保存されているアクセス ポリシーをキューに設定したときには、有効になるまでに最大で 30 秒かかる場合があります。 この間、格納されているアクセス ポリシーに関連付けられている共有アクセス署名は、アクセス ポリシーがアクティブになるまで を <xref:azure.storage.queue.HttpResponseError> スローします。 |
set_queue_metadata |
指定したキューにユーザー定義メタデータを設定します。 メタデータは、名前と値のペアとしてキューに関連付けられます。 |
update_message |
メッセージの可視性タイムアウトを更新します。 この操作を使用して、メッセージの内容を更新することもできます。 この操作を使用すると、キュー メッセージの非表示を継続的に拡張できます。 この機能は、ワーカー ロールでキュー メッセージを "リース" する場合に便利です。 たとえば、ワーカー ロールがを呼び出 receive_messages し、メッセージの処理に時間が必要であると認識した場合、メッセージが処理されるまでメッセージの非表示を継続的に拡張できます。 処理中にワーカー ロールでエラーが発生しても、最終的にはメッセージが再び参照できるようになるため、別のワーカー ロールがその処理を行うことができます。 key-encryption-key フィールドがローカル サービス オブジェクトに設定されている場合、このメソッドはアップロードする前にコンテンツを暗号化します。 |
clear_messages
指定したキューからすべてのメッセージを削除します。
clear_messages(**kwargs: Any) -> None
パラメーター
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
例
すべてのメッセージをクリアします。
queue.clear_messages()
close
このメソッドは、クライアントによって開かれたソケットを閉じる方法です。 コンテキスト マネージャーで を使用する場合は使用する必要はありません。
close()
create_queue
ストレージ アカウントに新しいキューを作成します。
同じ名前のキューが既に存在する場合、 操作は ResourceExistsError で失敗します。
create_queue(*, metadata: Dict[str, str] | None = None, **kwargs: Any) -> None
パラメーター
メタデータとしてキューに関連付ける名前と値のペアを含む dict。 メタデータ名の作成時に指定された大文字と小文字の違いは維持されますが、設定時または読み取り時には大文字と小文字は区別されません。
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
戻り値
なしまたは cls(response) の結果
の戻り値の型 :
例外
例
キューを作成します。
queue.create_queue()
delete_message
指定したメッセージを削除します。
通常、クライアントがメッセージの受信操作を使用してメッセージを取得した後、クライアントはメッセージを処理および削除する必要があります。 メッセージを削除するには、メッセージ オブジェクト自体、または id と pop_receipt の 2 つのデータ項目が必要です。 ID は、前のreceive_messages操作から返されます。 pop_receiptは、最新 receive_messages または update_message 操作から返されます。 delete_message操作を成功させるには、要求で指定されたpop_receiptが、 または update_message 操作からreceive_messages返されたpop_receiptと一致している必要があります。
delete_message(message: str | QueueMessage, pop_receipt: str | None = None, **kwargs: Any) -> None
パラメーター
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
例
メッセージを削除します。
# Get the message at the front of the queue
msg = next(queue.receive_messages())
# Delete the specified message
queue.delete_message(msg)
delete_queue
指定したキューとそのキューに含まれるすべてのメッセージを削除します。
キューが正常に削除されると、キューはすぐに削除対象としてマークされ、クライアントからアクセスできなくなります。 このキューは、後でガベージ コレクション中にキュー サービスから削除されます。
キューを削除すると、完了するまでに少なくとも 40 秒かかる可能性があることに注意してください。 削除中にキューに対して操作が試行されると、 <xref:azure.storage.queue.HttpResponseError> がスローされます。
delete_queue(**kwargs: Any) -> None
パラメーター
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
の戻り値の型 :
例
キューを削除します。
queue.delete_queue()
from_connection_string
接続文字列から QueueClient を作成します。
from_connection_string(conn_str: str, queue_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self
パラメーター
- credential
認証に使用する資格情報。 これは、アカウント URL に既に SAS トークンがある場合、または接続文字列に既に共有アクセス キー値がある場合は省略可能です。 値には、SAS トークン文字列、azure.core.credentials の AzureSasCredential または AzureNamedKeyCredential のインスタンス、アカウント共有アクセス キー、または azure.identity からの TokenCredentials クラスのインスタンスを指定できます。 ここで指定した資格情報は、接続文字列の資格情報よりも優先されます。 AzureNamedKeyCredential のインスタンスを使用する場合は、"name" をストレージ アカウント名に、"key" をストレージ アカウント キーにする必要があります。
- audience
- str
Azure Active Directory 認証のトークンを要求するときに使用する対象ユーザー。 資格情報が TokenCredential 型の場合にのみ有効です。 値は (既定値) または https://.queue.core.windows.net にすることができますhttps://storage.azure.com/。
戻り値
キュー クライアント。
の戻り値の型 :
例
接続文字列からキュー クライアントを作成します。
from azure.storage.queue import QueueClient
queue = QueueClient.from_connection_string(self.connection_string, "myqueue1")
from_queue_url
特定のキューと対話するクライアント。
from_queue_url(queue_url: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self
パラメーター
- credential
認証に使用する資格情報。 アカウント URL に SAS トークンが既に含まれている場合、これは省略可能です。 値には、SAS トークン文字列、azure.core.credentials の AzureSasCredential または AzureNamedKeyCredential のインスタンス、アカウント共有アクセス キー、または azure.identity の TokenCredentials クラスのインスタンスを指定できます。 リソース URI に SAS トークンが既に含まれている場合、明示的な資格情報を優先して無視されます
- 競合する SAS トークンによって ValueError が発生する AzureSasCredential の場合を除きます。 AzureNamedKeyCredential のインスタンスを使用する場合は、"name" をストレージ アカウント名に、"key" をストレージ アカウント キーにする必要があります。
- audience
- str
Azure Active Directory 認証のトークンを要求するときに使用する対象ユーザー。 資格情報が TokenCredential 型の場合にのみ有効です。 値は (既定値) または https://.queue.core.windows.net にすることができますhttps://storage.azure.com/。
戻り値
キュー クライアント。
の戻り値の型 :
get_queue_access_policy
Shared Access Signature で使用できるキューで指定された格納されているアクセス ポリシーの詳細を返します。
get_queue_access_policy(**kwargs: Any) -> Dict[str, AccessPolicy]
パラメーター
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
戻り値
キューに関連付けられているアクセス ポリシーのディクショナリ。
の戻り値の型 :
get_queue_properties
指定したキューのすべてのユーザー定義メタデータを返します。
返されるデータには、キューのメッセージの一覧は含まれません。
get_queue_properties(**kwargs: Any) -> QueueProperties
パラメーター
- timeout
- int
timeout パラメーターは、秒単位で表されます。
戻り値
キューのユーザー定義メタデータ。
の戻り値の型 :
例
キューのプロパティを取得します。
properties = queue.get_queue_properties().metadata
peek_messages
キューの先頭から 1 つ以上のメッセージを取得しますが、メッセージの可視性は変更しません。
表示されているメッセージのみを取得できます。 への呼び出し receive_messagesでメッセージが初めて取得されると、そのdequeue_count プロパティは 1 に設定されます。 削除されず、その後再度取得された場合は、dequeue_count プロパティがインクリメントされます。 クライアントはこの値を使用して、メッセージが取得された回数を確認できます。 peek_messagesの呼び出しでは、dequeue_countの値はインクリメントされませんが、クライアントが読み取るためのこの値を返します。
キー暗号化キーまたはリゾルバー フィールドがローカル サービス オブジェクトに設定されている場合、メッセージは返される前に復号化されます。
peek_messages(max_messages: int | None = None, **kwargs: Any) -> List[QueueMessage]
パラメーター
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
戻り値
QueueMessage オブジェクトのリスト。 ピークはメッセージをポップせず、既に表示されているメッセージのみを取得できるため、next_visible_onとpop_receiptは設定されないことに注意してください。
の戻り値の型 :
例
メッセージをプレビューします。
# Peek at one message at the front of the queue
msg = queue.peek_messages()
# Peek at the last 5 messages
messages = queue.peek_messages(max_messages=5)
# Print the last 5 messages
for message in messages:
print(message.content)
receive_message
キューの先頭から 1 つのメッセージを削除します。
メッセージがキューから取得されると、応答にはメッセージの内容と、メッセージを削除するために必要なpop_receipt値が含まれます。 メッセージはキューから自動的に削除されませんが、取得後、visibility_timeout パラメーターで指定された時間間隔の間、他のクライアントには表示されません。
ローカル サービス オブジェクトに key-encryption-key または resolver フィールドが設定されている場合、メッセージは復号化されてから返されます。
receive_message(*, visibility_timeout: int | None = None, **kwargs: Any) -> QueueMessage | None
パラメーター
- visibility_timeout
- int
指定しない場合、既定値は 30 です。 サーバー時間を基準に、新しい表示タイムアウト値を秒単位で指定します。 値は 1 以上である必要があり、7 日を超えることはできません。 メッセージの表示タイムアウト値は、有効期限より後の値に設定できます。 visibility_timeoutは、有効期間の値より小さい値に設定する必要があります。
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
戻り値
キューからメッセージを返します。キューが空の場合は None を返します。
の戻り値の型 :
例
キューから 1 つのメッセージを受信します。
# Pop two messages from the front of the queue
message1 = queue.receive_message()
message2 = queue.receive_message()
# We should see message 3 if we peek
message3 = queue.peek_messages()[0]
if not message1 or not message2 or not message3:
raise ValueError("One of the messages are None.")
print(message1.content)
print(message2.content)
print(message3.content)
receive_messages
キューの先頭から 1 つ以上のメッセージを削除します。
メッセージがキューから取得されると、応答にはメッセージの内容と、メッセージを削除するために必要なpop_receipt値が含まれます。 メッセージはキューから自動的に削除されませんが、取得後、visibility_timeout パラメーターで指定された時間間隔の間、他のクライアントには表示されません。 反復子は、キューが空であるか、max_messagesに達するまで (max_messagesが設定されている場合)、メッセージを継続的にフェッチします。
キー暗号化キーまたはリゾルバー フィールドがローカル サービス オブジェクトに設定されている場合、メッセージは返される前に復号化されます。
receive_messages(*, messages_per_page: int | None = None, visibility_timeout: int | None = None, max_messages: int | None = None, **kwargs: Any) -> ItemPaged[QueueMessage]
パラメーター
- visibility_timeout
- int
指定しない場合、既定値は 30 です。 サーバー時間を基準に、新しい表示タイムアウト値を秒単位で指定します。 値は 1 以上である必要があり、7 日を超えることはできません。 メッセージの表示タイムアウト値は、有効期限より後の値に設定できます。 visibility_timeoutは、有効期間の値より小さい値に設定する必要があります。
- max_messages
- int
キューから取得するメッセージの最大数を指定する整数。
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
戻り値
dict に似た Message オブジェクトのメッセージ反復子を返します。
の戻り値の型 :
例
キューからメッセージを受信します。
# Receive messages one-by-one
messages = queue.receive_messages()
for msg in messages:
print(msg.content)
# Receive messages by batch
messages = queue.receive_messages(messages_per_page=5)
for msg_batch in messages.by_page():
for msg in msg_batch:
print(msg.content)
queue.delete_message(msg)
send_message
メッセージ キューの背面に新しいメッセージを追加します。
可視性のタイムアウトは、メッセージが非表示になる時間を指定します。 タイムアウトになったら、メッセージが表示されるようになります。 表示タイムアウトを指定していない場合、既定値の 0 が使用されます。
メッセージの有効期間は、メッセージがキューに残る期間を指定します。 有効期限が切れると、メッセージがキューから削除されます。
key-encryption-key フィールドがローカル サービス オブジェクトに設定されている場合、このメソッドはアップロードする前にコンテンツを暗号化します。
send_message(content: object | None, *, visibility_timeout: int | None = None, time_to_live: int | None = None, **kwargs: Any) -> QueueMessage
パラメーター
メッセージの内容。 許可される型は、サービスで設定されたencode_functionによって決まります。 既定値は str です。 エンコードされたメッセージのサイズは最大 64 KB です。
- visibility_timeout
- int
値を指定しない場合は、既定値 0 が使用されます。 サーバー時間を基準に、新しい表示タイムアウト値を秒単位で指定します。 値は 0 以上である必要があり、7 日を超えることはできません。 メッセージの表示タイムアウト値は、有効期限より後の値に設定できます。 visibility_timeoutは、有効期間の値より小さい値に設定する必要があります。
- time_to_live
- int
メッセージの有効期限を秒単位で指定します。 time-to-live には、正の数、または無限大の場合は -1 を指定できます。 このパラメーターが省略されている場合、既定の有効期限は 7 日です。
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
戻り値
QueueMessage オブジェクト。 このオブジェクトにはコンテンツも設定されますが、サービスから返されません。
の戻り値の型 :
例
メッセージを送信します。
queue.send_message("message1")
queue.send_message("message2", visibility_timeout=30) # wait 30s before becoming visible
queue.send_message("message3")
queue.send_message("message4")
queue.send_message("message5")
set_queue_access_policy
共有アクセス署名で使用できるキューの保存されているアクセス ポリシーを設定します。
キューのアクセス許可を設定すると、既存のアクセス許可が置き換えられます。 キューのアクセス許可を更新するには、 を呼び出 get_queue_access_policy して、キューに関連付けられているすべてのアクセス ポリシーをフェッチし、変更するアクセス ポリシーを変更してから、更新を実行するデータの完全なセットでこの関数を呼び出します。
保存されているアクセス ポリシーをキューに設定したときには、有効になるまでに最大で 30 秒かかる場合があります。 この間、格納されているアクセス ポリシーに関連付けられている共有アクセス署名は、アクセス ポリシーがアクティブになるまで を <xref:azure.storage.queue.HttpResponseError> スローします。
set_queue_access_policy(signed_identifiers: Dict[str, AccessPolicy], **kwargs: Any) -> None
パラメーター
- signed_identifiers
- Dict[str, AccessPolicy]
キューに関連付ける SignedIdentifier アクセス ポリシー。 これには、最大 5 つの要素を含めることができます。 空の dict は、サービスに設定されているアクセス ポリシーをクリアします。
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
例
キューにアクセス ポリシーを設定します。
# Create an access policy
from azure.storage.queue import AccessPolicy, QueueSasPermissions
access_policy = AccessPolicy()
access_policy.start = datetime.utcnow() - timedelta(hours=1)
access_policy.expiry = datetime.utcnow() + timedelta(hours=1)
access_policy.permission = QueueSasPermissions(read=True)
identifiers = {'my-access-policy-id': access_policy}
# Set the access policy
queue.set_queue_access_policy(identifiers)
set_queue_metadata
指定したキューにユーザー定義メタデータを設定します。
メタデータは、名前と値のペアとしてキューに関連付けられます。
set_queue_metadata(metadata: Dict[str, str] | None = None, **kwargs: Any) -> Dict[str, Any]
パラメーター
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
戻り値
応答ヘッダーのディクショナリ。
の戻り値の型 :
例
キューにメタデータを設定します。
metadata = {'foo': 'val1', 'bar': 'val2', 'baz': 'val3'}
queue.set_queue_metadata(metadata=metadata)
update_message
メッセージの可視性タイムアウトを更新します。 この操作を使用して、メッセージの内容を更新することもできます。
この操作を使用すると、キュー メッセージの非表示を継続的に拡張できます。 この機能は、ワーカー ロールでキュー メッセージを "リース" する場合に便利です。 たとえば、ワーカー ロールがを呼び出 receive_messages し、メッセージの処理に時間が必要であると認識した場合、メッセージが処理されるまでメッセージの非表示を継続的に拡張できます。 処理中にワーカー ロールでエラーが発生しても、最終的にはメッセージが再び参照できるようになるため、別のワーカー ロールがその処理を行うことができます。
key-encryption-key フィールドがローカル サービス オブジェクトに設定されている場合、このメソッドはアップロードする前にコンテンツを暗号化します。
update_message(message: str | QueueMessage, pop_receipt: str | None = None, content: object | None = None, *, visibility_timeout: int | None = None, **kwargs: Any) -> QueueMessage
パラメーター
- visibility_timeout
- int
サーバー時間を基準に、新しい表示タイムアウト値を秒単位で指定します。 新しい値は、0 以上の 7 日を超えない値である必要があります。 メッセージの表示タイムアウト値は、有効期限より後の値に設定できます。 メッセージは、削除されるか有効期限が切れるまで更新できます。 更新するメッセージを識別するメッセージ オブジェクトまたはメッセージ ID。
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
戻り値
QueueMessage オブジェクト。 便宜上、このオブジェクトにはコンテンツも設定されますが、サービスからは返されません。
の戻り値の型 :
例
メッセージを更新します。
# Send a message
queue.send_message("update me")
# Receive the message
messages = queue.receive_messages()
# Update the message
list_result = next(messages)
message = queue.update_message(
list_result.id,
pop_receipt=list_result.pop_receipt,
visibility_timeout=0,
content="updated")
属性
api_version
location_mode
primary_endpoint
primary_hostname
secondary_endpoint
完全なセカンダリ エンドポイント URL (構成されている場合)。
使用できない場合は、ValueError が発生します。 セカンダリ ホスト名を明示的に指定するには、インスタンス化時に省略可能な secondary_hostname キーワード (keyword) 引数を使用します。
の戻り値の型 :
例外
secondary_hostname
セカンダリ エンドポイントのホスト名。
使用できない場合、これは None になります。 セカンダリ ホスト名を明示的に指定するには、インスタンス化時に省略可能な secondary_hostname キーワード (keyword) 引数を使用します。
の戻り値の型 :
url
SAS トークン (使用されている場合) を含む、このエンティティへの完全なエンドポイント URL。
これは、現在 location_modeの に応じて、プライマリ エンドポイントまたはセカンダリ エンドポイントのいずれかになります。 :returns: SAS トークン (使用されている場合) を含む、このエンティティへの完全なエンドポイント URL。 :rtype: str
Azure SDK for Python