ServiceBusClient Kelas

Kelas ServiceBusClient mendefinisikan antarmuka tingkat tinggi untuk mendapatkan ServiceBusSender dan ServiceBusReceiver.

Warisan
builtins.object
ServiceBusClient

Konstruktor

ServiceBusClient(fully_qualified_namespace: str, credential: TokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, retry_total: int = 3, retry_backoff_factor: float = 0.8, retry_backoff_max: float = 120, retry_mode: str = 'exponential', **kwargs: Any)

Parameter

fully_qualified_namespace
str
Diperlukan

Nama host yang sepenuhnya memenuhi syarat untuk namespace Service Bus. Format namespace adalah: .servicebus.windows.net.

credential
TokenCredential atau AzureSasCredential atau AzureNamedKeyCredential
Diperlukan

Objek kredensial yang digunakan untuk autentikasi yang mengimplementasikan antarmuka tertentu untuk mendapatkan token. Ini menerima objek kredensial yang dihasilkan oleh pustaka identitas azure dan objek yang mengimplementasikan metode *get_token(mandiri, cakupan), atau sebagai alternatif, AzureSasCredential juga dapat disediakan.

logging_enable
bool

Apakah akan mengeluarkan log jejak jaringan ke pencatat. Defaultnya adalah False.

transport_type
TransportType

Jenis protokol transportasi yang akan digunakan untuk berkomunikasi dengan layanan Bus Layanan. Defaultnya adalah TransportType.Amqp dalam hal ini port 5671 digunakan. Jika port 5671 tidak tersedia/diblokir di lingkungan jaringan, TransportType.AmqpOverWebsocket dapat digunakan sebagai gantinya yang menggunakan port 443 untuk komunikasi.

http_proxy
Dict

Pengaturan proksi HTTP. Ini harus berupa kamus dengan kunci berikut: 'proxy_hostname' (nilai str) dan 'proxy_port' (nilai int). Selain itu, kunci berikut mungkin juga ada: 'nama pengguna', 'kata sandi'.

user_agent
str

Jika ditentukan, ini akan ditambahkan di depan string agen pengguna bawaan.

retry_total
int

Jumlah total upaya untuk mengulangi operasi yang gagal ketika terjadi kesalahan. Nilai defaultnya adalah 3.

retry_backoff_factor
float

Delta back-off internal di unit kedua di antara percobaan ulang. Nilai defaultnya adalah 0,8.

retry_backoff_max
float

Interval back-off maksimum dalam satuan detik. Nilai default adalah 120.

retry_mode
str

Perilaku penundaan antara upaya coba lagi. Nilai yang didukung adalah "tetap" atau "eksponensial", di mana defaultnya adalah "eksponensial".

custom_endpoint_address
str

Alamat titik akhir kustom yang digunakan untuk membuat koneksi ke layanan Bus Layanan, memungkinkan permintaan jaringan dirutekan melalui gateway aplikasi atau jalur lain yang diperlukan untuk lingkungan host. Defaultnya adalah Tidak Ada. Formatnya akan seperti "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Jika port tidak ditentukan dalam custom_endpoint_address, secara default port 443 akan digunakan.

connection_verify
str

Jalur ke file CA_BUNDLE kustom sertifikat SSL yang digunakan untuk mengautentikasi identitas titik akhir koneksi. Defaultnya adalah Tidak Ada dalam hal ini certifi.where() akan digunakan.

uamqp_transport
bool

Apakah akan menggunakan pustaka uamqp sebagai transportasi yang mendasar. Nilai defaultnya adalah False dan pustaka AMQP Python Murni akan digunakan sebagai transportasi yang mendasar.

Contoh

Buat instans baru ServiceBusClient.


   import os
   from azure.identity import DefaultAzureCredential
   from azure.servicebus import ServiceBusClient
   fully_qualified_namespace = os.environ['SERVICEBUS_FULLY_QUALIFIED_NAMESPACE']
   servicebus_client = ServiceBusClient(
       fully_qualified_namespace=fully_qualified_namespace,
       credential=DefaultAzureCredential()
   )

Variabel

fully_qualified_namespace
str

Nama host yang sepenuhnya memenuhi syarat untuk namespace Service Bus. Format namespace adalah: .servicebus.windows.net.

Metode

close

Tutup klien ServiceBus. Semua pengirim, penerima, dan koneksi yang mendasar akan dimatikan.

from_connection_string

Buat ServiceBusClient dari string koneksi.

get_queue_receiver

Dapatkan ServiceBusReceiver untuk antrean tertentu.

get_queue_sender

Dapatkan ServiceBusSender untuk antrean tertentu.

get_subscription_receiver

Dapatkan ServiceBusReceiver untuk langganan tertentu di bawah topik.

get_topic_sender

Dapatkan ServiceBusSender untuk topik tertentu.

close

Tutup klien ServiceBus. Semua pengirim, penerima, dan koneksi yang mendasar akan dimatikan.

close() -> None

Mengembalikan

Tidak ada

from_connection_string

Buat ServiceBusClient dari string koneksi.

from_connection_string(conn_str: str, *, retry_total: int = 3, retry_backoff_factor: float = 0.8, retry_backoff_max: float = 120, retry_mode: str = 'exponential', **kwargs: Any) -> ServiceBusClient

Parameter

conn_str
str
Diperlukan

String koneksi Bus Layanan.

logging_enable
bool

Apakah akan mengeluarkan log jejak jaringan ke pencatat. Defaultnya adalah False.

transport_type
TransportType

Jenis protokol transportasi yang akan digunakan untuk berkomunikasi dengan layanan Bus Layanan. Defaultnya adalah TransportType.Amqp dalam hal ini port 5671 digunakan. Jika port 5671 tidak tersedia/diblokir di lingkungan jaringan, TransportType.AmqpOverWebsocket dapat digunakan sebagai gantinya yang menggunakan port 443 untuk komunikasi.

http_proxy
Dict

Pengaturan proksi HTTP. Ini harus berupa kamus dengan kunci berikut: 'proxy_hostname' (nilai str) dan 'proxy_port' (nilai int). Selain itu, kunci berikut mungkin juga ada: 'nama pengguna', 'kata sandi'.

user_agent
str

Jika ditentukan, ini akan ditambahkan di depan string agen pengguna bawaan.

retry_total
int

Jumlah total upaya untuk mengulangi operasi yang gagal ketika terjadi kesalahan. Nilai defaultnya adalah 3.

retry_backoff_factor
float

Delta back-off internal di unit kedua di antara percobaan ulang. Nilai defaultnya adalah 0,8.

retry_backoff_max
float

Interval back-off maksimum dalam satuan detik. Nilai default adalah 120.

retry_mode
str

Perilaku penundaan antara upaya coba lagi. Nilai yang didukung adalah 'tetap' atau 'eksponensial', di mana defaultnya adalah 'eksponensial'.

custom_endpoint_address
str

Alamat titik akhir kustom yang digunakan untuk membuat koneksi ke layanan Bus Layanan, memungkinkan permintaan jaringan dirutekan melalui gateway aplikasi atau jalur lain yang diperlukan untuk lingkungan host. Defaultnya adalah Tidak Ada. Formatnya akan seperti "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Jika port tidak ditentukan dalam custom_endpoint_address, secara default port 443 akan digunakan.

connection_verify
str

Jalur ke file CA_BUNDLE kustom sertifikat SSL yang digunakan untuk mengautentikasi identitas titik akhir koneksi. Defaultnya adalah Tidak Ada dalam hal ini certifi.where() akan digunakan.

uamqp_transport
bool

Apakah akan menggunakan pustaka uamqp sebagai transportasi yang mendasar. Nilai defaultnya adalah False dan pustaka AMQP Python Murni akan digunakan sebagai transportasi yang mendasar.

Tipe hasil

Contoh

Buat instans baru ServiceBusClient dari string koneksi.


   import os
   from azure.servicebus import ServiceBusClient
   servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
   servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)

get_queue_receiver

Dapatkan ServiceBusReceiver untuk antrean tertentu.

get_queue_receiver(queue_name: str, *, session_id: str | ~typing.Literal[<ServiceBusSessionFilter.NEXT_AVAILABLE: 0>] | None = None, sub_queue: ~azure.servicebus._common.constants.ServiceBusSubQueue | str | None = None, receive_mode: ~azure.servicebus._common.constants.ServiceBusReceiveMode | str = ServiceBusReceiveMode.PEEK_LOCK, max_wait_time: float | None = None, auto_lock_renewer: ~azure.servicebus._common.auto_lock_renewer.AutoLockRenewer | None = None, prefetch_count: int = 0, **kwargs: ~typing.Any) -> ServiceBusReceiver

Parameter

queue_name
str
Diperlukan

Jalur Antrean Bus Layanan tertentu yang disambungkan klien.

session_id
str atau <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>

Sesi tertentu yang akan diterima. Ini harus ditentukan untuk antrean sesi, jika tidak, itu harus Tidak Ada. Untuk menerima pesan dari sesi berikutnya yang tersedia, atur ini ke ~azure.servicebus.NEXT_AVAILABLE_SESSION.

sub_queue
str atau ServiceBusSubQueue atau None

Jika ditentukan, subantrean yang akan disambungkan oleh penerima ini. Ini termasuk antrean DEAD_LETTER dan TRANSFER_DEAD_LETTER, menyimpan pesan yang tidak dapat dikirimkan ke penerima atau pesan apa pun yang tidak dapat diproses. Defaultnya adalah Tidak Ada, yang berarti terhubung ke antrean utama. Dapat ditetapkan nilai dari enum ServiceBusSubQueue atau nilai string yang setara "deadletter" dan "transferdeadletter".

receive_mode
Union[ServiceBusReceiveMode, str]

receive_mode dengan pesan mana yang akan diambil dari entitas. Dua opsi tersebut PEEK_LOCK dan RECEIVE_AND_DELETE. Pesan yang diterima dengan PEEK_LOCK harus diselesaikan dalam periode kunci tertentu sebelum dihapus dari antrean. Pesan yang diterima dengan RECEIVE_AND_DELETE akan segera dihapus dari antrean, dan kemudian tidak dapat ditolak atau diterima kembali jika klien gagal memproses pesan. Receive_mode default adalah PEEK_LOCK.

max_wait_time
Optional[float]

Batas waktu dalam detik antara pesan yang diterima setelah itu penerima akan secara otomatis berhenti menerima. Nilai defaultnya adalah Tidak Ada, yang berarti tidak ada batas waktu. Jika kesalahan koneksi terjadi karena waktu penulisan habis, nilai batas waktu koneksi mungkin perlu disesuaikan. Lihat parameter opsional socket_timeout untuk detail selengkapnya.

auto_lock_renewer
Optional[AutoLockRenewer]

~azure.servicebus.AutoLockRenewer dapat disediakan sehingga pesan secara otomatis terdaftar pada tanda terima. Jika penerima adalah penerima sesi, itu akan berlaku untuk sesi sebagai gantinya.

prefetch_count
int

Jumlah maksimum pesan untuk di-cache dengan setiap permintaan ke layanan. Pengaturan ini hanya untuk penyetelan performa tingkat lanjut. Meningkatkan nilai ini akan meningkatkan performa throughput pesan tetapi meningkatkan kemungkinan pesan akan kedaluwarsa saat di-cache jika tidak diproses dengan cukup cepat. Nilai defaultnya adalah 0, yang berarti pesan akan diterima dari layanan dan diproses satu per satu. Dalam kasus prefetch_count menjadi 0, ServiceBusReceiver.receive akan mencoba melakukan cache max_message_count (jika disediakan) dalam permintaannya ke layanan.

client_identifier
str

Pengidentifikasi berbasis string untuk mengidentifikasi instans penerima secara unik. Azure Service Bus akan mengaitkannya dengan beberapa pesan kesalahan untuk korelasi kesalahan yang lebih mudah. Jika tidak ditentukan, id unik akan dibuat.

socket_timeout
float

Waktu dalam detik bahwa soket yang mendasar pada koneksi harus menunggu saat mengirim dan menerima data sebelum waktu habis. Nilai defaultnya adalah 0,2 untuk TransportType.Amqp dan 1 untuk TransportType.AmqpOverWebsocket. Jika kesalahan koneksi terjadi karena waktu penulisan habis, nilai yang lebih besar dari default mungkin perlu diteruskan.

Tipe hasil

Contoh

Buat instans baru ServiceBusReceiver dari ServiceBusClient.


   import os
   from azure.servicebus import ServiceBusClient
   servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
   queue_name = os.environ['SERVICEBUS_QUEUE_NAME']
   servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
   with servicebus_client:
       queue_receiver = servicebus_client.get_queue_receiver(queue_name=queue_name)

get_queue_sender

Dapatkan ServiceBusSender untuk antrean tertentu.

get_queue_sender(queue_name: str, **kwargs: Any) -> ServiceBusSender

Parameter

queue_name
str
Diperlukan

Jalur Antrean Bus Layanan tertentu yang disambungkan klien.

client_identifier
str

Pengidentifikasi berbasis string untuk mengidentifikasi instans pengirim secara unik. Azure Service Bus akan mengaitkannya dengan beberapa pesan kesalahan untuk korelasi kesalahan yang lebih mudah. Jika tidak ditentukan, id unik akan dibuat.

socket_timeout
float

Waktu dalam detik bahwa soket yang mendasar pada koneksi harus menunggu saat mengirim dan menerima data sebelum waktu habis. Nilai defaultnya adalah 0,2 untuk TransportType.Amqp dan 1 untuk TransportType.AmqpOverWebsocket. Jika kesalahan koneksi terjadi karena waktu penulisan habis, nilai yang lebih besar dari default mungkin perlu diteruskan.

Mengembalikan

Pengirim antrean.

Tipe hasil

Contoh

Buat instans baru ServiceBusSender dari ServiceBusClient.


   import os
   from azure.servicebus import ServiceBusClient
   servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
   queue_name = os.environ['SERVICEBUS_QUEUE_NAME']
   servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
   with servicebus_client:
       queue_sender = servicebus_client.get_queue_sender(queue_name=queue_name)

get_subscription_receiver

Dapatkan ServiceBusReceiver untuk langganan tertentu di bawah topik.

get_subscription_receiver(topic_name: str, subscription_name: str, *, session_id: str | ~typing.Literal[<ServiceBusSessionFilter.NEXT_AVAILABLE: 0>] | None = None, sub_queue: ~azure.servicebus._common.constants.ServiceBusSubQueue | str | None = None, receive_mode: ~azure.servicebus._common.constants.ServiceBusReceiveMode | str = ServiceBusReceiveMode.PEEK_LOCK, max_wait_time: float | None = None, auto_lock_renewer: ~azure.servicebus._common.auto_lock_renewer.AutoLockRenewer | None = None, prefetch_count: int = 0, **kwargs: ~typing.Any) -> ServiceBusReceiver

Parameter

topic_name
str
Diperlukan

Nama Topik Bus Layanan tertentu yang disambungkan klien.

subscription_name
str
Diperlukan

Nama Langganan Bus Layanan tertentu di bawah Topik Bus Layanan yang diberikan.

session_id
str atau <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>

Sesi tertentu yang akan diterima. Ini harus ditentukan untuk langganan sesi, jika tidak, langganan harus Tidak Ada. Untuk menerima pesan dari sesi berikutnya yang tersedia, atur ini ke ~azure.servicebus.NEXT_AVAILABLE_SESSION.

sub_queue
str atau ServiceBusSubQueue atau None

Jika ditentukan, subantrean yang akan disambungkan oleh penerima ini. Ini termasuk antrean DEAD_LETTER dan TRANSFER_DEAD_LETTER, menyimpan pesan yang tidak dapat dikirimkan ke penerima atau pesan apa pun yang tidak dapat diproses. Defaultnya adalah Tidak Ada, yang berarti terhubung ke antrean utama. Dapat ditetapkan nilai dari enum ServiceBusSubQueue atau nilai string yang setara "deadletter" dan "transferdeadletter".

receive_mode
Union[ServiceBusReceiveMode, str]

receive_mode dengan pesan mana yang akan diambil dari entitas. Dua opsi tersebut PEEK_LOCK dan RECEIVE_AND_DELETE. Pesan yang diterima dengan PEEK_LOCK harus diselesaikan dalam periode kunci tertentu sebelum dihapus dari langganan. Pesan yang diterima dengan RECEIVE_AND_DELETE akan segera dihapus dari langganan, dan kemudian tidak dapat ditolak atau diterima kembali jika klien gagal memproses pesan. Receive_mode default adalah PEEK_LOCK.

max_wait_time
Optional[float]

Batas waktu dalam detik antara pesan yang diterima setelah itu penerima akan secara otomatis berhenti menerima. Nilai defaultnya adalah Tidak Ada, yang berarti tidak ada batas waktu. Jika kesalahan koneksi terjadi karena waktu penulisan habis, nilai batas waktu koneksi mungkin perlu disesuaikan. Lihat parameter opsional socket_timeout untuk detail selengkapnya.

auto_lock_renewer
Optional[AutoLockRenewer]

~azure.servicebus.AutoLockRenewer dapat disediakan sehingga pesan secara otomatis terdaftar pada tanda terima. Jika penerima adalah penerima sesi, itu akan berlaku untuk sesi sebagai gantinya.

prefetch_count
int

Jumlah maksimum pesan untuk di-cache dengan setiap permintaan ke layanan. Pengaturan ini hanya untuk penyetelan performa tingkat lanjut. Meningkatkan nilai ini akan meningkatkan performa throughput pesan tetapi meningkatkan kemungkinan pesan akan kedaluwarsa saat di-cache jika tidak diproses dengan cukup cepat. Nilai defaultnya adalah 0, yang berarti pesan akan diterima dari layanan dan diproses satu per satu. Dalam kasus prefetch_count menjadi 0, ServiceBusReceiver.receive akan mencoba melakukan cache max_message_count (jika disediakan) dalam permintaannya ke layanan.

client_identifier
str

Pengidentifikasi berbasis string untuk mengidentifikasi instans penerima secara unik. Azure Service Bus akan mengaitkannya dengan beberapa pesan kesalahan untuk korelasi kesalahan yang lebih mudah. Jika tidak ditentukan, id unik akan dibuat.

socket_timeout
float

Waktu dalam detik bahwa soket yang mendasar pada koneksi harus menunggu saat mengirim dan menerima data sebelum waktu habis. Nilai defaultnya adalah 0,2 untuk TransportType.Amqp dan 1 untuk TransportType.AmqpOverWebsocket. Jika kesalahan koneksi terjadi karena waktu penulisan habis, nilai yang lebih besar dari default mungkin perlu diteruskan.

Tipe hasil

Contoh

Buat instans baru ServiceBusReceiver dari ServiceBusClient.


   import os
   from azure.servicebus import ServiceBusClient
   servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
   topic_name = os.environ["SERVICEBUS_TOPIC_NAME"]
   subscription_name = os.environ["SERVICEBUS_SUBSCRIPTION_NAME"]
   servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
   with servicebus_client:
       subscription_receiver = servicebus_client.get_subscription_receiver(
           topic_name=topic_name,
           subscription_name=subscription_name,
       )

get_topic_sender

Dapatkan ServiceBusSender untuk topik tertentu.

get_topic_sender(topic_name: str, **kwargs: Any) -> ServiceBusSender

Parameter

topic_name
str
Diperlukan

Jalur Topik Bus Layanan tertentu yang disambungkan klien.

client_identifier
str

Pengidentifikasi berbasis string untuk mengidentifikasi instans pengirim secara unik. Azure Service Bus akan mengaitkannya dengan beberapa pesan kesalahan untuk korelasi kesalahan yang lebih mudah. Jika tidak ditentukan, id unik akan dibuat.

socket_timeout
float

Waktu dalam detik bahwa soket yang mendasar pada koneksi harus menunggu saat mengirim dan menerima data sebelum waktu habis. Nilai defaultnya adalah 0,2 untuk TransportType.Amqp dan 1 untuk TransportType.AmqpOverWebsocket. Jika kesalahan koneksi terjadi karena waktu penulisan habis, nilai yang lebih besar dari default mungkin perlu diteruskan.

Mengembalikan

Pengirim topik.

Tipe hasil

Contoh

Buat instans baru ServiceBusSender dari ServiceBusClient.


   import os
   from azure.servicebus import ServiceBusClient
   servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
   topic_name = os.environ['SERVICEBUS_TOPIC_NAME']
   servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
   with servicebus_client:
       topic_sender = servicebus_client.get_topic_sender(topic_name=topic_name)