Lernprogramm: Konfigurieren von Warteschlangen in Azure Service Bus mithilfe von Ansible

Wichtig

Ansible 2.8 (oder höher) ist erforderlich, um die Beispiel-Playbooks in diesem Artikel auszuführen.

Azure Service Bus ist ein Integrations-Nachrichten-Broker für Unternehmen. Service Bus unterstützt zwei Kommunikationstypen: Warteschlangen und Themen.

Warteschlangen unterstützen die asynchrone Kommunikation zwischen Anwendungen. Eine App sendet Nachrichten an eine Warteschlange, die die Nachrichten speichert. Die empfangende Anwendung stellt dann eine Verbindung zur Warteschlange her und liest die Nachrichten.

Themen unterstützen das Veröffentlichen-Abonnieren-Muster, das eine 1:n-Beziehung zwischen dem Absender der Nachricht und den Empfängern der Nachricht ermöglicht.

In diesem Artikel erfahren Sie, wie Sie:

  • Warteschlange erstellen
  • Erstellen einer SAS-Richtlinie
  • Abrufen von Namespaceinformationen
  • Abrufen von Warteschlangeninformationen
  • Widerrufen der SAS-Richtlinie für die Warteschlange

Voraussetzungen

  • Azure-Abonnement: Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.

Erstellen der Service Bus-Warteschlange

Mit dem Playbook-Beispielcode werden die folgenden Ressourcen erstellt:

  • Azure-Ressourcengruppe
  • Service Bus-Namespace in der Ressourcengruppe
  • Service Bus-Warteschlange mit dem Namespace

Speichern Sie das folgende Playbook als 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

Führen Sie das Playbook mithilfe von ansible-playbook aus.

ansible-playbook servicebus_queue.yml

Erstellen Sie die SAS-Richtlinie

Eine Shared Access Signature (SAS) ist ein anspruchsbasierter Autorisierungsmechanismus mit Token.

Der Beispielcode für das Playbook erstellt zwei SAS-Richtlinien für Service Bus-Warteschlange mit unterschiedlichen Berechtigungen.

Speichern Sie das folgende Playbook als 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

Beachten Sie vor dem Ausführen des Playbooks die folgenden Hinweise:

  • Der rights-Wert repräsentiert das Privileg eines Benutzers in Bezug auf die Warteschlange. Geben Sie einen der folgenden Werte an: manage, listen, sendoder listen_send.

Führen Sie das Playbook mithilfe von ansible-playbook aus.

ansible-playbook servicebus_queue_policy.yml

Abrufen von Namespaceinformationen

Der Beispielcode für das Playbook fragt die Namespaceinformationen ab.

Speichern Sie das folgende Playbook als 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

Beachten Sie vor dem Ausführen des Playbooks die folgenden Hinweise:

  • Der wert show_sas_policies gibt an, ob die SAS-Richtlinien unter dem angegebenen Namespace angezeigt werden sollen. Standardmäßig ist der Wert False, um zusätzlichen Netzwerkaufwand zu vermeiden.

Führen Sie das Playbook mithilfe von ansible-playbook aus.

ansible-playbook servicebus_namespace_info.yml

Abrufen von Warteschlangeninformationen

Der Beispielcode für das Playbook fragt die Warteschlangeninformationen ab.

Speichern Sie das folgende Playbook als 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

Beachten Sie vor dem Ausführen des Playbooks die folgenden Hinweise:

  • Der show_sas_policies-Wert gibt an, ob die SAS-Richtlinien unter der angegebenen Warteschlange angezeigt werden. Standardmäßig ist dieser Wert auf False festgelegt, um zusätzlichen Netzwerkaufwand zu vermeiden.

Führen Sie das Playbook mithilfe von ansible-playbook aus.

ansible-playbook servicebus_queue_info.yml

Widerrufen der SAS-Richtlinie für die Warteschlange

Der Beispielcode für das Playbook löscht eine SAS-Richtlinie für die Warteschlange.

Speichern Sie das folgende Playbook als 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

Führen Sie das Playbook mithilfe von ansible-playbook aus.

ansible-playbook servicebus_queue_policy_delete.yml

Bereinigen von Ressourcen

Wenn sie nicht mehr benötigt wird, löschen Sie die in diesem Artikel erstellten Ressourcen.

Speichern Sie den folgenden Code als 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

Führen Sie das Playbook mithilfe von ansible-playbook aus.

ansible-playbook cleanup.yml

Nächste Schritte