Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Ansible 2.8 (o versione successiva) è necessario per eseguire i playbook di esempio in questo articolo.
Il bus di servizio di Azure è un broker di messaggi di integrazione aziendale. Il bus di servizio supporta due tipi di comunicazione: code e argomenti.
Le code supportano comunicazioni asincrone tra applicazioni. Un'app invia messaggi a una coda, che archivia i messaggi. L'applicazione ricevente si connette quindi e legge i messaggi dalla coda.
Gli argomenti supportano il modello publish-subscribe, che consente una relazione uno-a-molti tra l'originatore del messaggio e i ricevitori del messaggio.
In questo articolo vengono illustrate le operazioni seguenti:
- Creare una coda
- Creare criteri di firma di accesso condiviso
- Recupera le informazioni sullo spazio dei nomi
- Recuperare le informazioni sulla coda
- Revocare la politica SAS della coda
Prerequisiti
- Sottoscrizione di Azure: se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Installare Ansible: eseguire una delle opzioni seguenti:
- Installare e configurare Ansible in una macchina virtuale Linux
- Configurare Azure Cloud Shell e, se non si ha accesso a una macchina virtuale Linux, creare una macchina virtuale con Ansible.
Creare la coda del bus di servizio
Il codice del playbook di esempio crea le risorse seguenti:
- Gruppo di risorse di Azure
- Lo spazio dei nomi del Service Bus all'interno del gruppo di risorse
- Coda del bus di servizio con lo spazio dei nomi
Salva il playbook seguente come 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
Eseguire il playbook usando ansible-playbook
ansible-playbook servicebus_queue.yml
Creare la policy di SAS
Una Shared Access Signature (SAS) è un meccanismo di autorizzazione basato sulle attestazioni che utilizza i token.
Il codice del playbook di esempio crea due criteri SAS per una coda di Service Bus con privilegi diversi.
Salva il playbook seguente come 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
Prima di eseguire il playbook, vedere le note seguenti:
- Il
rightsvalore rappresenta il privilegio che un utente ha nella coda. Specificare uno dei valori seguenti:manage,listen,sendolisten_send.
Eseguire il playbook usando ansible-playbook
ansible-playbook servicebus_queue_policy.yml
Recuperare le informazioni sullo spazio dei nomi
Il codice del playbook di esempio esegue una query sulle informazioni sullo spazio dei nomi.
Salva il playbook seguente come 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
Prima di eseguire il playbook, vedere le note seguenti:
- Il
show_sas_policiesvalore indica se visualizzare i criteri SAS nello spazio dei nomi specificato. Per impostazione predefinita, il valore èFalseper evitare un sovraccarico di rete aggiuntivo.
Eseguire il playbook usando ansible-playbook
ansible-playbook servicebus_namespace_info.yml
Recuperare le informazioni sulla coda
Il codice del playbook di esempio esegue query sulle informazioni sulla coda.
Salva il playbook seguente come 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
Prima di eseguire il playbook, vedere le note seguenti:
- Il valore
show_sas_policiesindica se i criteri SAS devono essere visualizzati per la coda specificata. Per impostazione predefinita, questo valore è impostato suFalseper evitare un sovraccarico di rete aggiuntivo.
Eseguire il playbook usando ansible-playbook
ansible-playbook servicebus_queue_info.yml
Revocare i criteri di SAS (firma di accesso condiviso) della coda
Il codice del playbook di esempio elimina una politica SAS della coda.
Salva il playbook seguente come 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
Eseguire il playbook usando ansible-playbook
ansible-playbook servicebus_queue_policy_delete.yml
Pulire le risorse
Quando non sono più necessarie, eliminare le risorse create in questo articolo.
Salvare il codice seguente come 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
Eseguire il playbook usando ansible-playbook
ansible-playbook cleanup.yml