Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Se requiere Ansible 2.8 (o posterior) para ejecutar los cuadernos de estrategias de ejemplo de este artículo.
Azure Service Bus es un agente de mensajes de integración empresarial. Service Bus admite dos tipos de comunicación: colas y temas.
Las colas admiten comunicaciones asincrónicas entre aplicaciones. Una aplicación envía mensajes a una cola, que almacena los mensajes. La aplicación receptora se conecta a y lee los mensajes de la cola.
Los temas admiten el patrón publicar-suscribirse, que permite una relación de uno a varios entre el emisor de mensajes y los receptores de mensajes.
En este artículo aprenderá a:
- Creación de una cola
- Creación de una directiva de SAS
- Recuperación de la información del espacio de nombres
- Obtener información de la cola
- Revocar la política SAS de la cola
Prerrequisitos
- Suscripción de Azure: si no tiene una suscripción de Azure, cree una cuenta gratuita antes de comenzar.
Instale Ansible: realice una de las siguientes opciones:
- Instalación y configuración de Ansible en una máquina virtual Linux
- Configure Azure Cloud Shell y, si no tiene acceso a una máquina virtual Linux, cree una máquina virtual con Ansible.
Crear la cola de Service Bus
El código del cuaderno de estrategias de ejemplo crea los siguientes recursos:
- Grupo de recursos de Azure
- Espacio de nombres de Service Bus en el grupo de recursos
- Cola de Service Bus con el espacio de nombres
Guarde el siguiente cuaderno de estrategias como 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
Ejecutar el playbook utilizando ansible-playbook
ansible-playbook servicebus_queue.yml
Cree la directiva de SAS
Una firma de acceso compartido (SAS) es un mecanismo de autorización basado en reclamaciones mediante tokens.
El código del cuaderno de estrategias de ejemplo crea dos directivas SAS para una cola de Service Bus con privilegios diferentes.
Guarde el siguiente cuaderno de estrategias como 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
Antes de ejecutar el cuaderno de estrategias, consulte las notas siguientes:
-
rightsEl valor representa el privilegio que tiene un usuario en la cola. Especifique uno de los siguientes valores:manage,listen,sendolisten_send.
Ejecutar el playbook utilizando ansible-playbook
ansible-playbook servicebus_queue_policy.yml
Recuperación de la información del espacio de nombres
El código del cuaderno de estrategias de ejemplo consulta la información del espacio de nombres.
Guarde el siguiente cuaderno de estrategias como 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
Antes de ejecutar el cuaderno de estrategias, consulte las notas siguientes:
- El
show_sas_policiesvalor indica si se muestran las directivas de SAS en el espacio de nombres especificado. De forma predeterminada, el valor esFalseevitar una sobrecarga de red adicional.
Ejecutar el playbook utilizando ansible-playbook
ansible-playbook servicebus_namespace_info.yml
Obtener información de la cola
El código del playbook de ejemplo consulta la información de la cola.
Guarde el siguiente cuaderno de estrategias como 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
Antes de ejecutar el cuaderno de estrategias, consulte las notas siguientes:
- El valor
show_sas_policiesindica si mostrar las directivas de SAS en la cola especificada. De forma predeterminada, este valor se establece enFalsepara evitar una sobrecarga de red adicional.
Ejecutar el playbook utilizando ansible-playbook
ansible-playbook servicebus_queue_info.yml
Revocar la política SAS de la cola
El código de ejemplo del playbook elimina una política SAS de cola.
Guarde el siguiente cuaderno de estrategias como 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
Ejecutar el playbook utilizando ansible-playbook
ansible-playbook servicebus_queue_policy_delete.yml
Limpieza de recursos
Cuando ya no sea necesario, elimine los recursos creados en este artículo.
Guarde el código siguiente como 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
Ejecuta el playbook mediante ansible-playbook
ansible-playbook cleanup.yml