Esercitazione: Funzione Python con Archiviazione tabella di Azure come output
Questa esercitazione illustra come configurare una funzione Python con Archiviazione Table come output completando le attività seguenti.
- Usare Visual Studio Code per creare un progetto di funzione Python.
- Aggiungere un'associazione di funzioni di output tabella Archiviazione.
- 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 Archiviazione Table with 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 | Tabella di archiviazione di Azure |
Associazione di funzioni | Trigger HTTP, Archiviazione Tabella come output |
Tipo di autenticazione progetto locale | Stringa di connessione |
Tipo di autenticazione della funzione cloud | Stringa di connessione |
Prerequisiti
- Installare Visual Studio Code in una delle piattaforme supportate.
- Interfaccia della riga di comando di Azure. È possibile usarlo in Azure Cloud Shell o installarlo in locale.
- Un account Archiviazione di Azure e una tabella Archiviazione. Se non si ha un account di archiviazione, crearne uno.
- La guida presuppone che si conoscano i concetti presentati nella Guida per sviluppatori di Funzioni e come connettersi ai servizi in Funzioni di Azure.
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 HTTP trigger . |
Specificare un nome di funzione | Immetti TableStorageOutputFunc . |
Livello di autorizzazione | Scegliere Anonymous , che consente a chiunque di chiamare l'endpoint della funzione. |
È stato creato un progetto di funzione Python con un trigger HTTP.
Aggiungere un'associazione di output della tabella di archiviazione
Gli attributi di associazione vengono definiti nel file function.json per una determinata funzione. Per creare un'associazione, fare clic con il pulsante destro del mouse (CTRL+clic su macOS) sul function.json
file nella cartella della funzione e scegliere Aggiungi associazione... . Seguire i prompt per definire le proprietà seguenti per il nuovo binding:
Richiesta | Valore | Descrizione |
---|---|---|
Selezionare la direzione di binding | out |
Il binding è un binding di output. |
Selezionare il binding con direzione | Azure Table Storage |
L'associazione è un'associazione di tabella Archiviazione di Azure. |
Il nome usato per identificare questo binding nel codice | outMessage |
Nome che identifica il parametro di binding a cui viene fatto riferimento nel codice. |
Nome tabella nell'account di archiviazione in cui verranno scritti i dati | testTable |
Il nome della tabella scritto dalla funzione come output. Creare una tabella denominata testTable nell'account di archiviazione, se non esiste. |
Selezionare l'impostazione da "local.setting.json" | Create new local app settings |
Selezionare il Archiviazione Account la funzione scrive come output. Visual Studio Code recupera i stringa di connessione per la connessione al progetto locale. |
Per verificare che l'associazione sia stata aggiunta correttamente:
- Aprire il
TableStorageOutputFunc/function.json
file, verificare che in questo file sia stata aggiunta una nuova associazione contype: table
edirection: out
. - Aprire il
local.settings.json
file, verificare che in questo file sia stata aggiunta una nuova coppia<your-storage-account-name>_STORAGE: <your-storage-account-connection-string>
chiave-valore contenente l'account di archiviazione stringa di connessione.
Dopo aver aggiunto l'associazione, aggiornare i codici di funzione per usare l'associazione sostituendo TableStorageOutputFunc/__init__.py
con il file Python qui.
import logging
import uuid
import json
import azure.functions as func
def main(req: func.HttpRequest, outMessage: func.Out[str]) -> func.HttpResponse:
rowKey = str(uuid.uuid4())
data = {
"Name": "Output binding message",
"PartitionKey": "message",
"RowKey": rowKey
}
outMessage.set(json.dumps(data))
return func.HttpResponse(f"Message created with the rowKey: {rowKey}")
Eseguire la funzione in locale
Seguire l'esercitazione per eseguire la funzione in locale e verificare l'output della tabella.
- Selezionare l'account Archiviazione scelto durante la creazione della risorsa funzione di Azure se viene richiesto di connettersi a un account di archiviazione. Questo valore viene usato per il runtime di Funzioni di Azure. Non è necessariamente lo stesso account di archiviazione usato per l'output.
- Per avviare la funzione in locale, premere
<kbd>
F5</kbd>
o selezionare l'icona Esegui e debug nella barra attività sul lato sinistro. - Per verificare che la funzione possa scrivere nella tabella, fare clic con il pulsante destro del mouse
Execute Function Now...
sulla funzione nella visualizzazione AREA di lavoro di Visual Studio Code e controllare la risposta della funzione. Il messaggio di risposta deve contenere l'oggettorowKey
scritto nella tabella.
Creare una connessione con Service Connessione or
Nell'ultimo passaggio è stato verificato il progetto di funzione in locale. A questo punto si apprenderà come configurare la connessione tra la funzione di Azure e Archiviazione di Azure Tabella nel cloud, in modo che la funzione possa scrivere nel BLOB di archiviazione dopo essere stata distribuita nel cloud.
- Aprire il
function.json
file nel progetto locale, modificare il valore dellaconnection
proprietà in inbindings
comeAZURE_STORAGETABLE_CONNECTIONSTRING
. - Eseguire il comando seguente dell'interfaccia della riga di comando di Azure per creare una connessione tra la funzione di Azure e l'Archiviazione di Azure.
az functionapp connection create storage-table --source-id "<your-function-resource-id>" --target-id "<your-storage-table-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}/tableServices/default
È stata creata una risorsa service Connessione or che configura una AZURE_STORAGETABLE_CONNECTIONSTRING
variabile nella Impostazioni app della funzione. Questa impostazione dell'app verrà quindi utilizzata dall'associazione di funzioni per connettersi all'archiviazione, in modo che la funzione possa scrivere nella tabella di archiviazione. Per altre informazioni sul modo in cui service Connessione or consente di Funzioni di Azure connettersi ai servizi.
Distribuire la funzione in Azure
È ora possibile distribuire la funzione in Azure e verificare il funzionamento dell'associazione di output della tabella di archiviazione.
- Seguire questa Funzioni di Azure esercitazione per distribuire la funzione in Azure.
- Per verificare che la funzione possa scrivere nella tabella, fare clic con il pulsante destro del mouse
Execute Function Now...
sulla funzione nella visualizzazione RISORSE di Visual Studio Code e controllare la risposta della funzione. Il messaggio di risposta deve contenere larowKey
funzione appena scritta nella tabella.
Risoluzione dei problemi
Se sono presenti errori correlati all'host di archiviazione, ad esempio No such host is known (<acount-name>.table.core.windows.net:443)
, è necessario verificare se il stringa di connessione usato per connettersi a Archiviazione di Azure contiene o meno l'endpoint della tabella. In caso contrario, passare a Archiviazione di Azure portale, 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 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.
- Nella portale di Azure aprire la risorsa app per le funzioni e selezionare Elimina.
- 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 consente di Funzioni di Azure connettersi ad altri servizi cloud.