Share via


Esercitazione: Funzione Python con Archiviazione di accodamento di Azure come trigger

Questa esercitazione illustra come configurare una funzione Python con Archiviazione Queue come trigger completando le attività seguenti.

  • Usare Visual Studio Code per creare un progetto di funzione Python.
  • Usare Visual Studio Code per eseguire la funzione in locale.
  • Usare l'interfaccia della riga di comando di Azure per creare una connessione tra la funzione di Azure e la coda Archiviazione con service Connessione or.
  • Usare Visual Studio per distribuire la funzione.

Panoramica dei componenti del progetto di funzione in questa esercitazione:

Componente progetto Selezione/Soluzione
Servizio di origine Funzione di Azure
Servizio di destinazione Coda di archiviazione di Azure
Associazione di funzioni Archiviazione coda come trigger
Tipo di autenticazione progetto locale Stringa di connessione
Tipo di autenticazione della funzione cloud Stringa di connessione

Prerequisiti

Creare un progetto di funzione Python

Seguire l'esercitazione per creare un progetto di Funzioni di Azure locale e fornire le informazioni seguenti alle richieste:

Richiesta Selezione
Selezionare una lingua Scegliere Python. (modello di linguaggio di programmazione v1)
Selezionare un interprete Python per creare un ambiente virtuale Scegliere l'interprete Python preferito. Se non viene visualizzata un'opzione, digitare il percorso completo del file binario Python.
Selezionare un modello per la prima funzione del progetto Scegliere Azure Queue Storage trigger.
Specificare un nome di funzione Immetti QueueStorageTriggerFunc.
Selezionare l'impostazione da "local.settings.json" Scegliere Create new local app settings, che consente di selezionare l'account Archiviazione e specificare il nome della coda che funziona come trigger.

È stato creato un progetto di funzione Python con Archiviazione di Azure Coda come trigger. Il progetto locale si connette a Archiviazione di Azure usando il stringa di connessione salvato nel local.settings.json file. Infine, la main funzione nel __init__.py file della funzione può utilizzare il stringa di connessione con l'aiuto dell'associazione di funzioni definita nel function.json file.

Eseguire la funzione in locale

Seguire l'esercitazione per eseguire la funzione in locale e verificare il trigger.

  1. Selezionare l'account di archiviazione scelto durante la creazione della risorsa funzione di Azure se viene richiesto di connettersi all'archiviazione. Questo valore viene usato per il runtime della funzione di Azure e non è necessariamente uguale all'account di archiviazione usato per il trigger.
  2. Per avviare la funzione in locale, premere <kbd>F5 </kbd> o selezionare l'icona Esegui e debug nella barra attività sul lato sinistro.
  3. Per verificare il corretto funzionamento del trigger, mantenere la funzione in esecuzione in locale e aprire il pannello Archiviazione Coda in portale di Azure, selezionare Aggiungi messaggio e fornire un messaggio di test. Si noterà che la funzione viene attivata ed elaborata come elemento della coda nel terminale di Visual Studio Code.

Creare una connessione con Service Connessione or

Nell'ultimo passaggio è stato verificato il progetto di funzione in locale. Si apprenderà ora come configurare la connessione tra la funzione di Azure e la coda Archiviazione di Azure nel cloud, in modo che la funzione possa essere attivata dalla coda di archiviazione dopo essere stata distribuita nel cloud.

  1. Aprire il function.json file nel progetto locale, modificare il valore della connection proprietà in in bindings come AZURE_STORAGEQUEUE_CONNECTIONSTRING.
  2. Eseguire il comando seguente dell'interfaccia della riga di comando di Azure per creare una connessione tra la funzione di Azure e l'account di archiviazione di Azure.
az functionapp connection create storage-queue --source-id "<your-function-resource-id>" --target-id "<your-storage-queue-resource-id>" --secret
  • --source-id Formato: /subscriptions/{subscription}/resourceG roups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
  • --target-id Formato: /subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default

Questo passaggio crea una risorsa Connessione or del servizio che configura una AZURE_STORAGEQUEUE_CONNECTIONSTRING variabile nella Impostazioni app della funzione. Il runtime di associazione di funzioni lo usa per connettersi all'archiviazione, in modo che la funzione possa accettare trigger dalla coda di archiviazione. Per altre informazioni, vedere come service Connessione or aiuta Funzioni di Azure connettersi ai servizi.

Distribuire la funzione in Azure

È ora possibile distribuire la funzione in Azure e verificare il funzionamento del trigger della coda di archiviazione.

  1. Seguire questa Funzioni di Azure esercitazione per distribuire la funzione in Azure.
  2. Aprire il pannello Archiviazione Coda nel portale di Azure, selezionare Aggiungi messaggio e fornire un messaggio di test. Si noterà che la funzione viene attivata ed elaborata come elemento della coda nei log delle funzioni.

Risoluzione dei problemi

Se sono presenti errori correlati all'host di archiviazione, ad esempio No such host is known (<acount-name>.queue.core.windows.net:443), verificare se il stringa di connessione usato per connettersi a Archiviazione di Azure contiene o meno l'endpoint della coda. In caso contrario, passare a Archiviazione di Azure nella portale di Azure, copiare il stringa di connessione dal Access keys pannello e sostituire i valori.

Se questo errore si verifica quando si avvia il progetto in locale, controllare il local.settings.json file.

Se questo errore si verifica quando si distribuisce la funzione nel cloud (in questo caso, la distribuzione della funzione in genere ha esito negativo in Syncing triggers ), controllare l'Impostazioni dell'app della funzione.

Pulire le risorse

Se non si intende continuare a usare questo progetto, eliminare la risorsa dell'app per le funzioni creata in precedenza.

  1. Nella portale di Azure aprire la risorsa app per le funzioni e selezionare Elimina.
  2. Immettere il nome dell'app e selezionare Elimina per confermare.

Passaggi successivi

Leggere gli articoli seguenti per altre informazioni sui concetti di Service Connessione or e su come Funzioni di Azure connettersi ai servizi.