Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Rozwiązanie Ansible w wersji 2.8 (lub nowszej) jest wymagane do uruchomienia przykładowych podręczników w tym artykule.
Azure Service Bus jest brokerem komunikatów do integracji przedsiębiorstw. Usługa Service Bus obsługuje dwa typy komunikacji: kolejki i tematy.
Kolejki obsługują asynchroniczną komunikację między aplikacjami. Aplikacja wysyła komunikaty do kolejki, która przechowuje komunikaty. Następnie aplikacja odbierający nawiązuje połączenie z kolejką i odczytuje komunikaty z kolejki.
Tematy obsługują wzorzec publikowania-subskrybowania, który umożliwia relację jeden do wielu między inicjatorem komunikatów a odbiornikami komunikatów.
W tym artykule dowiesz się, jak:
- Utwórz kolejkę
- Utwórz politykę SAS
- Pobieranie informacji o przestrzeni nazw
- Pobieranie informacji o kolejce
- Odwołaj zasady SAS dostępu współdzielonego kolejki
Wymagania wstępne
- Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Zainstaluj oprogramowanie Ansible: Wykonaj jedną z następujących opcji:
- Instalowanie i konfigurowanie rozwiązania Ansible na maszynie wirtualnej z systemem Linux
- Skonfiguruj usługę Azure Cloud Shell i — jeśli nie masz dostępu do maszyny wirtualnej z systemem Linux — utwórz maszynę wirtualną za pomocą rozwiązania Ansible.
Utwórz kolejkę usługi Service Bus
Przykładowy kod podręcznika tworzy następujące zasoby:
- Grupa zasobów platformy Azure
- Przestrzeń nazw usługi Service Bus w grupie zasobów
- Kolejka usługi Service Bus z przestrzenią nazw
Zapisz następujący podręcznik jako servicebus_queue.yml:
---
- hosts: localhost
vars:
resource_group: servicebustest
location: eastus
namespace: servicebustestns
queue: servicebustestqueue
tasks:
- name: Ensure resource group exist
azure_rm_resourcegroup:
name: "{{ resource_group }}"
location: "{{ location }}"
- name: Create a namespace
azure_rm_servicebus:
name: "{{ namespace }}"
resource_group: "{{ resource_group }}"
- name: Create a queue
azure_rm_servicebusqueue:
name: "{{ queue }}"
namespace: "{{ namespace }}"
resource_group: "{{ resource_group }}"
register: queue
- debug:
var: queue
Uruchom podręcznik przy użyciu ansible-playbook
ansible-playbook servicebus_queue.yml
Tworzenie polityki SAS
Sygnatura dostępu współdzielonego (SAS) to mechanizm autoryzacji oparty na oświadczeniach korzystający z tokenów.
Przykładowy kod podręcznika tworzy dwie zasady dostępu współdzielonego SAS dla kolejki usługi Service Bus z różnymi uprawnieniami.
Zapisz następujący podręcznik jako servicebus_queue_policy.yml:
---
- hosts: localhost
vars:
resource_group: servicebustest
namespace: servicebustestns
queue: servicebustestqueue
tasks:
- name: Create a policy with send and listen privilege
azure_rm_servicebussaspolicy:
name: "{{ queue }}-policy"
queue: "{{ queue }}"
namespace: "{{ namespace }}"
resource_group: "{{ resource_group }}"
rights: listen_send
register: policy
- debug:
var: policy
Przed uruchomieniem podręcznika zapoznaj się z następującymi uwagami:
- Wartość
rightsreprezentuje uprawnienia użytkownika względem kolejki. Określ jedną z następujących wartości:manage,listen,sendlublisten_send.
Uruchom podręcznik przy użyciu ansible-playbook
ansible-playbook servicebus_queue_policy.yml
Pobieranie informacji o przestrzeni nazw
Przykładowy kod podręcznika wysyła zapytanie do informacji o przestrzeni nazw.
Zapisz następujący podręcznik jako servicebus_namespace_info.yml:
---
- hosts: localhost
vars:
resource_group: servicebustest
namespace: servicebustestns
tasks:
- name: Get a namespace's information
azure_rm_servicebus_facts:
type: namespace
name: "{{ namespace }}"
resource_group: "{{ resource_group }}"
show_sas_policies: yes
register: ns
- debug:
var: ns
Przed uruchomieniem podręcznika zapoznaj się z następującymi uwagami:
- Wartość
show_sas_policieswskazuje, czy zasady SAS mają być wyświetlane w podanej przestrzeni nazw. Domyślnie wartością jestFalse, aby uniknąć dodatkowego obciążenia sieci.
Uruchom podręcznik przy użyciu ansible-playbook
ansible-playbook servicebus_namespace_info.yml
Pobieranie informacji o kolejce
Przykładowy kod podręcznika wysyła zapytania do informacji o kolejce.
Zapisz następujący podręcznik jako servicebus_queue_info.yml:
---
- hosts: localhost
vars:
resource_group: servicebustest
namespace: servicebustestns
queue: servicebustestqueue
tasks:
- name: Get a queue's information
azure_rm_servicebus_facts:
type: queue
name: "{{ queue }}"
namespace: "{{ namespace }}"
resource_group: "{{ resource_group }}"
show_sas_policies: yes
register: queue
- debug:
var: queue
Przed uruchomieniem podręcznika zapoznaj się z następującymi uwagami:
- Wartość
show_sas_policieswskazuje, czy zasady sygnatury dostępu współdzielonego mają być wyświetlane w określonej kolejce. Domyślnie ta wartość jest ustawiona naFalse, aby uniknąć dodatkowych obciążeń związanych z siecią.
Uruchom podręcznik przy użyciu ansible-playbook
ansible-playbook servicebus_queue_info.yml
Odwołaj zasady SAS dostępu współdzielonego kolejki
Przykładowy kod podręcznika usuwa politykę SAS kolejki.
Zapisz następujący podręcznik jako servicebus_queue_policy_delete.yml:
---
- hosts: localhost
vars:
resource_group: servicebustest
namespace: servicebustestns
queue: servicebustestqueue
tasks:
- name: Create a policy with send and listen privilege
azure_rm_servicebussaspolicy:
name: "{{ queue }}-policy"
queue: "{{ queue }}"
namespace: "{{ namespace }}"
resource_group: "{{ resource_group }}"
state: absent
Uruchom podręcznik przy użyciu ansible-playbook
ansible-playbook servicebus_queue_policy_delete.yml
Uprzątnij zasoby
Gdy zasoby utworzone w tym artykule nie będą już potrzebne, usuń je.
Zapisz następujący kod jako cleanup.yml:
---
- hosts: localhost
vars:
resource_group: servicebustest
namespace: servicebustestns
queue: servicebustestqueue
tasks:
- name: Delete queue
azure_rm_servicebusqueue:
name: "{{ queue }}"
resource_group: "{{ resource_group }}"
namespace: "{{ namespace }}"
state: absent
- name: Delete namespace
azure_rm_servicebus:
name: "{{ namespace }}"
resource_group: "{{ resource_group }}"
state: absent
- name: Delete resource group
azure_rm_resourcegroup:
name: "{{ resource_group }}"
state: absent
force_delete_nonempty: yes
Uruchom podręcznik przy użyciu ansible-playbook
ansible-playbook cleanup.yml