ServiceBusClient Kelas
Kelas ServiceBusClient mendefinisikan antarmuka tingkat tinggi untuk mendapatkan ServiceBusSender dan ServiceBusReceiver.
- Warisan
-
builtins.objectServiceBusClient
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
Nama host yang sepenuhnya memenuhi syarat untuk namespace Service Bus. Format namespace adalah: .servicebus.windows.net.
- credential
- TokenCredential atau AzureSasCredential atau AzureNamedKeyCredential
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
- 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
- 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.
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
- 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
- subscription_name
- str
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.
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
- 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)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk