Creare una funzione attivata da Azure Cosmos DB

Informazioni su come creare una funzione nella portale di Azure attivata quando i dati vengono aggiunti o modificati in Azure Cosmos DB. Per altre informazioni su Azure Cosmos DB, vedere Azure Cosmos DB: elaborazione di database senza server con Funzioni di Azure.

Nota

La modifica nel portale è supportata solo per le funzioni JavaScript, PowerShell e Script C#. La modifica nel portale di Python è supportata solo quando è in esecuzione nel piano a consumo. Quando possibile, è consigliabile sviluppare le funzioni in locale.

Per altre informazioni sulle limitazioni relative alla modifica del codice della funzione nella portale di Azure, vedere Limitazioni di sviluppo nella portale di Azure.

Prerequisiti

Per completare questa esercitazione:

  • Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Nota

Le associazioni di Azure Cosmos DB sono supportate solo per l'uso con Azure Cosmos DB per NoSQL. Il supporto per Azure Cosmos DB per la tabella viene fornito usando le associazioni di archiviazione tabelle, a partire dall'estensione 5.x. Per tutte le altre API di Azure Cosmos DB, è necessario accedere al database dalla funzione usando il client statico per l'API, tra cui Azure Cosmos DB per MongoDB, Azure Cosmos DB per Cassandra e Azure Cosmos DB per Apache Gremlin.

Accedere ad Azure

Accedere al portale di Azure con il proprio account Azure.

Creare un account Azure Cosmos DB

Prima di creare il trigger è necessario un account Azure Cosmos DB che usa l'API SQL.

  1. Nel menu del portale di Azure o dalla pagina Home selezionare Crea una risorsa.

  2. Cercare Azure Cosmos DB. Selezionare Crea>Azure Cosmos DB.

  3. Nella pagina Crea un account Azure Cosmos DB selezionare l'opzione Crea nella sezione Azure Cosmos DB per NoSQL .

    Azure Cosmos DB offre diverse API:

    • NoSQL, per i dati del documento
    • PostgreSQL
    • MongoDB, per i dati dei documenti
    • Apache Cassandra
    • Tabella
    • Apache Gremlin, per i dati del grafo

    Per altre informazioni sull'API per NoSQL, vedere Introduzione ad Azure Cosmos DB.

  4. Nella pagina Crea account Azure Cosmos DB immettere le impostazioni di base per il nuovo account Azure Cosmos DB.

    Impostazione valore Descrizione
    Abbonamento Nome della sottoscrizione Selezionare la sottoscrizione di Azure da usare per l'account Azure Cosmos DB.
    Gruppo di risorse Nome gruppo di risorse Selezionare un gruppo di risorse oppure fare clic su Crea nuovo, quindi immettere un nome univoco per il nuovo gruppo di risorse.
    Nome conto Un nome univoco Immettere un nome per identificare l'account Azure Cosmos DB. Dato che al nome specificato viene aggiunto documents.azure.com per creare l'URI, usare un nome univoco. Il nome può contenere solo lettere minuscole, numeri e il trattino (-). Deve essere di 3-44 caratteri.
    Ufficio Area più vicina ai propri utenti Selezionare una posizione geografica in cui ospitare l'account Azure Cosmos DB. Usare la località più vicina agli utenti per offrire loro la massima velocità di accesso ai dati.
    Modalità di capacità Velocità effettiva con provisioning o senza server Selezionare Provisioning velocità effettiva per creare un account in modalità Provisioning velocità effettiva. Selezionare Serverless per creare un account in modalità Serverless.
    Applicare lo sconto in base al livello gratuito di Azure Cosmos DB Applicare o non applicare Con il livello gratuito di Azure Cosmos DB si ottengono gratuitamente i primi 1000 UR/sec e 25 GB di spazio di archiviazione in un account. Altre informazioni sul livello gratuito.
    Limitare la velocità effettiva totale dell'account Selezionato o non selezionato Limitare la quantità totale di velocità effettiva di cui è possibile effettuare il provisioning in questo account. Questo limite impedisce addebiti imprevisti correlati alla velocità effettiva con provisioning. È possibile aggiornare o rimuovere questo limite dopo la creazione dell'account.

    È possibile avere fino a un account Azure Cosmos DB di livello gratuito per ogni sottoscrizione di Azure e deve acconsentire esplicitamente durante la creazione dell'account. Se non viene visualizzata l'opzione per applicare lo sconto del livello gratuito, un altro account nella sottoscrizione è già stato abilitato con il livello gratuito.

    Screenshot shows the Create Azure Cosmos DB Account page.

    Nota

    Le opzioni seguenti non sono disponibili se si seleziona Serverless come modalità di capacità:

    • Applica sconto livello gratuito
    • Limitare la velocità effettiva totale dell'account
  5. Nella scheda Distribuzione globale configurare i dettagli seguenti. È possibile lasciare i valori predefiniti per questa guida introduttiva:

    Impostazione valore Descrizione
    Ridondanza geografica Disabilita Abilitare o disabilitare la distribuzione globale nell'account associando la propria area a un'altra area. È possibile aggiungere altre aree al proprio account in un secondo momento.
    Scritture in più aree Disabilita La funzionalità Scritture in più aree consente di sfruttare la velocità effettiva di cui è stato effettuato il provisioning per i database e i contenitori in tutto il mondo.
    Zone di disponibilità Disabilita Le zone di disponibilità consentono di migliorare ulteriormente la disponibilità e la resilienza dell'applicazione.

    Nota

    Le opzioni seguenti non sono disponibili se si seleziona Serverless come modalità capacità nella pagina Nozioni di base precedenti:

    • Ridondanza geografica
    • Scritture in più aree
  6. Facoltativamente, è possibile configurare altri dettagli nelle schede seguenti:

    • Reti. Configurare l'accesso da una rete virtuale.
    • Criteri di backup. Configurare criteri di backup periodici o continui .
    • Crittografia. Usare una chiave gestita dal servizio o una chiave gestita dal cliente.
    • Tag. I tag sono coppie nome-valore che consentono di classificare le risorse e visualizzare dati di fatturazione consolidati tramite l'applicazione dello stesso tag a più risorse e gruppi di risorse.
  7. Selezionare Rivedi e crea.

  8. Esaminare le impostazioni dell'account e quindi selezionare Crea. La creazione dell'account richiede alcuni minuti. Attendere che la pagina del portale visualizzi La distribuzione è stata completata.

    Screenshot shows that your deployment is complete.

  9. Selezionare Vai alla risorsa per passare alla pagina dell'account Azure Cosmos DB.

    Screenshot shows the Azure Cosmos DB account page.

Creare un'app per le funzioni in Azure

  1. Nel menu del portale di Azure o dalla pagina Home selezionare Crea una risorsa.

  2. Nella pagina Nuovo, selezionare Calcolo>App per le funzioni.

  3. Nella pagina Informazioni di base usare le impostazioni dell'app per le funzioni specificate nella tabella seguente:

    Impostazione Valore suggerito Descrizione
    Abbonamento Sottoscrizione in uso Sottoscrizione in cui si crea la nuova app per le funzioni.
    Gruppo di risorse myResourceGroup Nome del nuovo gruppo di risorse in cui si crea l'app per le funzioni. È consigliabile creare un nuovo gruppo di risorse perché esistono limitazioni note durante la creazione di nuove app per le funzioni in un gruppo di risorse esistente.
    Nome dell'app per le funzioni Nome globalmente univoco Nome che identifica la nuova app per le funzioni. I caratteri validi sono a-z (senza distinzione tra maiuscole e minuscole), 0-9 e -.
    Distribuire codice o immagine del contenitore? Codice Opzione per pubblicare file di codice o un contenitore Docker.
    Stack di runtime Lingua preferita Scegliere un runtime che supporti il linguaggio di programmazione della funzione preferito. La modifica nel portale è disponibile solo per script JavaScript, PowerShell, Python, TypeScript e C#. La libreria di classi C# e le funzioni Java devono essere sviluppate localmente.
    Versione Numero versione Scegliere la versione del runtime installato.
    Area Area preferita Selezionare un'area vicina o vicina ad altri servizi a cui le funzioni possono accedere.
    Sistema operativo Windows Un sistema operativo è preselezionato in base alla selezione dello stack di runtime, ma è possibile modificare l'impostazione, se necessario. La modifica all'interno del portale è supportata solo in Windows. La pubblicazione dei contenitori è supportata solo in Linux.
    Opzioni e piani di hosting Consumo (serverless) Piano di hosting che definisce come vengono allocate le risorse all'app per le funzioni. Nel piano Consumo predefinito le risorse vengono aggiunte dinamicamente in base alle esigenze delle funzioni. In questo hosting serverless si paga solo per il periodo in cui le funzioni sono in esecuzione. Il piano Premium offre anche il ridimensionamento dinamico. In caso di esecuzione in un piano di servizio app, è necessario gestire il ridimensionamento dell'app per le funzioni.
  4. Accettare le opzioni predefinite per la creazione di un nuovo account di archiviazione nella scheda Archiviazione e una nuova istanza di Application Insight nella scheda Monitoraggio. È anche possibile scegliere di usare un account di archiviazione esistente o un'istanza di Application Insights.

  5. Selezionare Rivedi e crea per esaminare la configurazione dell'app scelta e quindi selezionare Crea per effettuare il provisioning e distribuire l'app per le funzioni.

  6. Selezionare l'icona Notifiche nell'angolo superiore destro del portale e attendere che venga visualizzato il messaggio La distribuzione è riuscita.

  7. Selezionare Vai alla risorsa per visualizzare la nuova app per le funzioni. È anche possibile selezionare Aggiungi al dashboard. In questo modo è più facile tornare in questa risorsa di app per le funzioni dal dashboard.

    Screenshot of deployment notification.

Si creerà ora una funzione nella nuova app per le funzioni.

Creare i trigger di Azure Cosmos DB

  1. Nell'app per le funzioni selezionare Panoramica e quindi + Crea in Funzioni.

  2. In Selezionare un modello scorrere verso il basso e scegliere il modello di trigger di Azure Cosmos DB.

  3. In Dettagli modello configurare il nuovo trigger con le impostazioni specificate in questa tabella e quindi selezionare Crea:

    Impostazione Valore suggerito Descrizione
    Nuova funzione Accettare il nome predefinito Nome della funzione.
    Connessione all'account Azure Cosmos DB Accettare il nuovo nome predefinito Selezionare Nuovo, quindi l'account di database creato in precedenza e infine OK. Verrà creata un'impostazione applicazione per la connessione all'account. Questa impostazione viene usata dal binding per la connessione al database.
    Nome database Attività Nome del database che include la raccolta da monitorare.
    Nome raccolta Articoli Nome della raccolta da monitorare.
    Nome della raccolta per i lease leases Nome della raccolta per l'archiviazione dei lease.
    Crea raccolta di lease se non esiste Verifica l'esistenza della raccolta di lease e la crea automaticamente.

    Azure crea la funzione attivata da Azure Cosmos DB in base ai valori specificati.

  4. Per visualizzare il codice della funzione basato sul modello, selezionare Codice e test.

    Azure Cosmos DB function template in C#

    Questo modello di funzione scrive il numero di documenti e l'ID del primo documento nei log.

Successivamente, connettersi al proprio account Azure Cosmos DB e creare il contenitore Items nel database Tasks.

Creare il contenitore Items

  1. Aprire una seconda istanza del portale di Azure in una nuova scheda del browser.

  2. Sul lato sinistro del portale espandere la barra delle icone, digitare cosmos nel campo di ricerca e selezionare Azure Cosmos DB.

    Search for the Azure Cosmos DB service

  3. Scegliere l'account di Azure Cosmos DB, quindi selezionare Esplora dati.

  4. In API SQL scegliere il database Tasks e selezionare Nuovo contenitore.

    Create a container

  5. In Aggiungi contenitore usare le impostazioni visualizzate nella tabella riportata sotto l'immagine.

    Define the Tasks container

    Impostazione Valore suggerito Descrizione
    ID database Attività Nome del nuovo database. Deve corrispondere al nome definito nell'associazione della funzione.
    ID contenitore Articoli Il nome del nuovo contenitore. Deve corrispondere al nome definito nell'associazione della funzione.
    Chiave di partizione /category Chiave di partizione che distribuisce i dati in modo uniforme a ogni partizione. Quando si crea un contenitore a elevate prestazioni, è importante selezionare la chiave di partizione corretta.
    Velocità effettiva 400 UR Usa il valore predefinito. Se si vuole ridurre la latenza, è possibile aumentare la velocità effettiva in un secondo momento.
  6. Fare clic su OK per creare il contenitore Items. La creazione del contenitore potrebbe richiedere del tempo.

Dopo aver creato il contenitore specificato nel binding della funzione, è possibile testare la funzione aggiungendo elementi a questo nuovo contenitore.

Testare la funzione

  1. In Esplora dati espandere il nuovo contenitore Items, scegliere Items, quindi selezionare Nuovo elemento.

    Create an item in Items container

  2. Sostituire il contenuto del nuovo elemento con il contenuto seguente, quindi scegliere Salva.

    {
        "id": "task1",
        "category": "general",
        "description": "some task"
    }
    
  3. Passare alla prima scheda del browser che contiene la funzione nel portale. Espandere i log della funzione e verificare che il nuovo documento abbia attivato la funzione. Verificare che il valore dell'ID del documento task1 sia scritto nel log.

    View message in the logs.

  4. (Facoltativo) Tornare al documento, apportare una modifica e fare clic su Aggiorna. Quindi, tornare ai log della funzione e verificare che l'aggiornamento abbia attivato anche la funzione.

Pulire le risorse

Altre guide di avvio rapido di questa raccolta si basano sulla presente guida di avvio rapido. Se si prevede di usare guide introduttive, esercitazioni o con uno dei servizi creati in questa guida introduttiva, non pulire le risorse.

Il termine risorse in Azure si riferisce ad app per le funzioni, funzioni, account di archiviazione e così via. Le risorse sono raggruppate in gruppi di risorse, ed è possibile eliminare tutti gli elementi in un gruppo eliminando il gruppo.

Sono state create risorse per completare queste guide introduttive. È possibile che vengano fatturate queste risorse, a seconda dello stato dell'account e dei prezzi del servizio. Se le risorse non sono più necessarie, ecco come eliminarle:

  1. Nel portale di Azure passare alla pagina Gruppo di risorse.

    Per accedere a tale pagina dalla pagina dell'app per le funzioni, selezionare la scheda Panoramica e quindi selezionare il collegamento in Gruppo di risorse.

    Screenshot that shows select the resource group to delete from the function app page.

    Per accedere a tale pagina dal dashboard, selezionare Gruppi di risorse e quindi selezionare il gruppo di risorse usato per questo articolo.

  2. Nella pagina Gruppo di risorse esaminare l'elenco delle risorse incluse e verificare che siano quelle da eliminare.

  3. Selezionare Elimina gruppo di risorse e seguire le istruzioni.

    L'eliminazione potrebbe richiedere alcuni minuti. Al termine, viene visualizzata una notifica per pochi secondi. È anche possibile selezionare l'icona a forma di campana nella parte superiore della pagina per visualizzare la notifica.

Passaggi successivi

È stata creata una funzione che viene eseguita quando un documento viene aggiunto o modificato nel database di Azure Cosmos DB. Per altre informazioni sui trigger di Azure Cosmos DB, vedere Binding di Azure Cosmos DB per Funzioni di Azure.

Dopo avere creato la prima funzione, è possibile aggiungere un'associazione di output alla funzione che scrive un messaggio in una coda di archiviazione.