Connettersi a un database SQL dai flussi di lavoro in App per la logica di Azure
Si applica a: App per la logica di Azure (a consumo e standard)
Questa guida pratica illustra come accedere al database SQL da un flusso di lavoro in App per la logica di Azure con il connettore SQL Server. È quindi possibile creare flussi di lavoro automatizzati eseguiti quando vengono attivati da eventi nel database SQL o in altri sistemi ed eseguire azioni per gestire i dati e le risorse SQL.
Ad esempio, il flusso di lavoro può eseguire azioni che ottengono, inseriscono ed eliminano dati o che possono eseguire query SQL e stored procedure. Il flusso di lavoro può verificare la presenza di nuovi record in un database non SQL, eseguire alcune operazioni di elaborazione, usare i risultati per creare nuovi record nel database SQL e inviare avvisi di posta elettronica sui nuovi record.
Se non si ha familiarità con App per la logica di Azure, vedere la documentazione introduttiva seguente:
Edizioni SQL supportate
Il connettore SQL Server supporta le edizioni di SQL seguenti:
Informazioni tecniche sul connettore
Il connettore SQL Server ha versioni diverse, in base al tipo di app per la logica e all'ambiente host.
App per la logica | Ambiente | Versione del connettore |
---|---|---|
Consumo | App per la logica di Azure multi-tenant | Connettore gestito, visualizzato nella raccolta di connettori in Runtime>Condiviso. Per altre informazioni, vedere la documentazione seguente: - Informazioni di riferimento sul connettore gestito di SQL Server - Connettori gestiti in App per la logica di Azure |
Standard | App per la logica di Azure a tenant singolo e ambiente del servizio app v3 (solo piani di Windows) | Connettore gestito, visualizzato nella raccolta dei connettori in Runtime>Condiviso e connettore predefinito, visualizzato nella raccolta dei connettori in Runtime>in-App ed è basato sul provider di servizi. Il connettore predefinito è diverso nei modi seguenti: - Il connettore predefinito può connettersi direttamente a un database SQL e accedere alle reti virtuali di Azure usando una stringa di connessione senza un gateway dati locale. Per altre informazioni, vedere la documentazione seguente: - Informazioni di riferimento sul connettore gestito di SQL Server - Informazioni di riferimento sul connettore predefinito di SQL Server - Connettori predefiniti in App per la logica di Azure |
Limiti
Per altre informazioni, vedere le informazioni di riferimento sul connettore gestito di SQL Server o le informazioni di riferimento sul connettore predefinito di SQL Server.
Prerequisiti
Account e sottoscrizione di Azure. Se non si ha una sottoscrizione, è possibile iscriversi per creare un account Azure gratuito.
Database di SQL Server, Database SQL di Azure o Istanza gestita di SQL.
Il connettore SQL Server richiede che le tabelle contengano dati in modo che le operazioni del connettore possano restituire risultati quando viene chiamato. Ad esempio, se si usa il database SQL di Azure, è possibile usare i database di esempio inclusi per provare le operazioni del connettore SQL Server.
Informazioni necessarie per creare una connessione al database SQL, ad esempio il server SQL e il nome del database. Se si usa l'autenticazione di Windows o l'autenticazione di SQL Server per autenticare l'accesso, sono necessari anche il nome utente e la password. In genere è possibile trovare queste informazioni nella stringa di connessione.
Importante
Se si usa una stringa di connessione di SQL Server copiata direttamente dal portale di Azure, è necessario aggiungere manualmente la password alla stringa di connessione. Per informazioni riservate, ad esempio questa stringa, assicurarsi di usare il flusso di autenticazione più sicuro disponibile. Microsoft consiglia di autenticare l'accesso alle risorse di Azure con un'identità gestita, quando possibile, e assegnare un ruolo con i privilegi minimi necessari.
Se questa funzionalità non è disponibile, assicurarsi di proteggere le stringhe di connessione tramite altre misure, ad esempio Azure Key Vault, che è possibile usare con le impostazioni dell'app nei flussi di lavoro Standard. È quindi possibile fare riferimento direttamente a stringhe sicure, ad esempio stringhe di connessione e chiavi. Analogamente ai modelli ARM, in cui è possibile definire le variabili di ambiente in fase di distribuzione, è possibile definire le impostazioni dell'app all'interno della definizione del flusso di lavoro dell'app per la logica Standard. È quindi possibile acquisire valori di infrastruttura generati dinamicamente, ad esempio endpoint di connessione, stringhe di archiviazione e altri. Per altre informazioni, vedere Tipi di applicazione per Microsoft Identity Platform.
Per un database SQL in Azure, la stringa di connessione ha il formato seguente:
Server=tcp:{your-server-name}.database.windows.net,1433;Initial Catalog={your-database-name};Persist Security Info=False;User ID={your-user-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
Per trovare questa stringa nel portale di Azure, aprire il database.
Nel menu del database, in Proprietà, selezionare Stringhe di connessione.
Per un server SQL locale, la stringa di connessione ha il formato seguente:
Server={your-server-address};Database={your-database-name};User Id={your-user-name};Password={your-password};
Nei flussi di lavoro Standard, per usare i trigger predefiniti di SQL, è necessario abilitare il rilevamento delle modifiche nella tabella in cui si desidera usare il trigger. Per altre informazioni, vedere Abilitare e disabilitare il rilevamento delle modifiche.
Flusso di lavoro dell'app per la logica in cui si desidera accedere al database SQL. Per avviare il flusso di lavoro con un trigger di SQL Server, è necessario iniziare con un flusso di lavoro vuoto. Per usare un'azione di SQL Server, avviare il flusso di lavoro con qualsiasi trigger.
Per connettersi a un server SQL locale, si applicano i requisiti aggiuntivi seguenti, in base al fatto che si disponga di un flusso di lavoro di app per la logica A consumo o Standard.
Flusso di lavoro A consumo
In App per la logica di Azure multi-tenant è necessario che il gateway dati locale sia installato in un computer locale e in una risorsa gateway dati già creata in Azure.
Flusso di lavoro Standard
È possibile usare il connettore predefinito di SQL Server o il connettore gestito.
Per usare l'autenticazione di Microsoft Entra o l'autenticazione dell'identità gestita con l'app per la logica, è necessario configurare SQL Server per usare questi tipi di autenticazione. Per altre informazioni, vedere Autenticazione - Informazioni di riferimento sul connettore gestito di SQL Server.
Per usare il connettore predefinito, è possibile autenticare la connessione con un'identità gestita, un ID Microsoft Entra o una stringa di connessione. È possibile modificare il pooling di connessioni specificando i parametri nella stringa di connessione. Per altre informazioni, vedere Pooling di connessioni.
Per usare il connettore gestito di SQL Server, seguire gli stessi requisiti di un flusso di lavoro dell'app per la logica A consumo in App per la logica di Azure multi-tenant. Per altri requisiti del connettore, vedere le informazioni di riferimento sul connettore gestito di SQL Server.
Aggiungere un trigger di SQL Server
I passaggi seguenti usano il portale di Azure, ma con l'estensione app per la logica di Azure appropriata, è anche possibile usare gli strumenti seguenti per creare flussi di lavoro delle app per la logica:
Flussi di lavoro A consumo: Visual Studio o Visual Studio Code
Creare flussi di lavoro Standard: Visual Studio Code
Nel portale di Azure, aprire l'App per la logica a consumo e il flusso di lavoro vuoto nella finestra di progettazione.
Nella finestra di progettazione selezionare Standardnella casella di ricerca. Seguire quindi questa procedura generale per aggiungere il trigger gestito di SQL Server desiderato.
Questo esempio continua con il trigger denominato Quando viene creato un elemento.
Se richiesto, specificare le informazioni per la connessione. Al termine, seleziona Crea.
Dopo aver visualizzato la casella delle informazioni sul trigger, specificare le informazioni necessarie per il trigger selezionato.
Per questo esempio, nel trigger denominato Quando viene creato un elemento, specificare i valori per il nome del server SQL e il nome del database, se non sono stati specificati in precedenza. In caso contrario, nell'elenco Nome tabella selezionare la tabella da usare. Selezionare Frequenza e Intervallo per impostare la pianificazione per il trigger per verificare la presenza di nuovi elementi.
Se per questo trigger sono disponibili altre proprietà, aprire l'elenco Aggiungi nuovo parametro e selezionare le proprietà rilevanti per lo scenario.
Questo trigger restituisce soltanto una riga della tabella selezionata. Per eseguire altre attività, continuare aggiungendo un'azione del connettore SQL Server o un'altra azione che esegue l'attività successiva desiderata nel flusso di lavoro dell'app per la logica.
Ad esempio, per visualizzare i dati in questa riga, è possibile aggiungere altre azioni per la creazione di un file che include i campi dalla riga restituita e quindi inviare avvisi di posta elettronica. Per altre informazioni sulle altre azioni disponibili per questo connettore, vedere le informazioni di riferimento sul connettore gestito di SQL Server.
Al termine, salvare il flusso di lavoro. Sulla barra degli strumenti della finestra di progettazione seleziona Salva.
Quando si salva il flusso di lavoro, questo passaggio pubblica automaticamente gli aggiornamenti nell'app per la logica distribuita, disponibile in Azure. Con solo un trigger, il flusso di lavoro controlla solo il database SQL in base alla pianificazione specificata. È necessario aggiungere un'azione che risponde al trigger.
Aggiungere un'azione di SQL Server
I passaggi seguenti usano il portale di Azure, ma con l'estensione App per la logica di Azure appropriata, è anche possibile usare Visual Studio per modificare i flussi di lavoro delle app per la logica di A consumo o Visual Studio Code con gli strumenti seguenti per modificare i flussi di lavoro delle app per la logica:
Flussi di lavoro A consumo: Visual Studio o Visual Studio Code
Creare flussi di lavoro Standard: Visual Studio Code
In questo esempio, il flusso di lavoro dell'app per la logica inizia con il trigger di ricorrenzae chiama un'azione che ottiene una riga da un database SQL.
Nel portale di Azure, aprire l'app per la logica e il flusso di lavoro A consumo nella finestra di progettazione.
Nella finestra di progettazione seguire questa procedura generale per aggiungere l'azione gestita di SQL Server desiderata.
Questo esempio continua con l'azione Ottieni riga, che ottiene un singolo record.
Se richiesto, specificare le informazioni per la connessione. Al termine, seleziona Crea.
Dopo aver visualizzato la casella delle informazioni sull'azione, nell'elenco Nome tabella selezionare la tabella da usare. Nella proprietà ID riga immettere l'ID del record desiderato.
Per questo esempio, il nome della tabella è SalesLT.Customer.
Questa azione restituisce soltanto una riga della tabella selezionata. Per visualizzare i dati in questa riga, aggiungere altre azioni. Ad esempio, tali azioni potrebbero creare un file, includere i campi della riga restituita e archiviare il file in un account di archiviazione cloud. Per informazioni sulle altre azioni disponibili per questo connettore, vedere la pagina di riferimento del connettore.
Al termine, salvare il flusso di lavoro. Sulla barra degli strumenti della finestra di progettazione seleziona Salva.
Connettersi al database
Quando si aggiunge un trigger o un'azione che si connette a un servizio o a un sistema e non si dispone di una connessione esistente o attiva, App per la logica di Azure richiede di fornire le informazioni di connessione, che variano in base al tipo di connessione, ad esempio:
- Credenziali dell'account
- Un nome da usare per la connessione
- Il nome del server o del sistema
- Tipo di autenticazione da usare
- Una stringa di connessione
Dopo aver specificato queste informazioni, continuare con i passaggi seguenti in base al database di destinazione:
- Connettersi al database SQL di Azure basato sul cloud o a Istanza gestita di SQL
- Connettersi a SQL Server locale
Connettersi al Database SQL di Azure o all'Istanza gestita di SQL
Per accedere a un'istanza gestita di SQL senza usare il gateway dati locale, è necessario configurare l'endpoint pubblico nell'istanza gestita di SQL. L'endpoint pubblico usa la porta 3342, quindi assicurarsi di specificare questo numero di porta quando si crea la connessione dall'app per la logica.
Nella casella delle informazioni di connessione completare i passaggi seguenti:
Alla voce Nome connessione, specificare un nome da usare per la connessione.
Per Tipo di autenticazione selezionare l'autenticazione necessaria e abilitata nel database SQL di Azure o in Istanza gestita di SQL:
Autenticazione Descrizione Stringa di connessione - Supportato solo nei flussi di lavoro Standard con il connettore predefinito di SQL Server.
- Richiede la stringa di connessione al server SQL e al database.Active Directory OAuth - Supportato solo nei flussi di lavoro Standard con il connettore predefinito di SQL Server. Per altre informazioni, vedere la documentazione seguente:
- Autenticazione per il connettore SQL Server
- Abilitare Open Authorization con Microsoft Entra ID (OAuth con Microsoft Entra ID)
- OAuth con Microsoft Entra IDIdentità gestita di App per la logica - Supportato con il connettore gestito di SQL Server. Nei flussi di lavoro Standard questo tipo di autenticazione è disponibile per il connettore predefinito di SQL Server, ma l'opzione è denominata Identità gestita.
- Richiede gli elementi seguenti:
--- Un'identità gestita valida abilitata nella risorsa dell'app per la logica che ha accesso al database.
--- Ruolo Collaboratore database SQL per l'accesso alla risorsa di SQL Server
Accesso --- Collaboratore al gruppo di risorse che include la risorsa di SQL Server.
Per altre informazioni, vedere la documentazione seguente:
- Autenticazione dell'identità gestita per il connettore SQL Server
- SQL - Ruoli a livello di serverEntità servizio (applicazione Microsoft Entra) - Supportato con il connettore gestito di SQL Server.
- Necessita di un'applicazione Microsoft Entra e un'entità servizio. Per altre informazioni, vedere Creare un'applicazione Microsoft Entra e un'entità servizio in grado di accedere alle risorse tramite il portale di Azure.Integrato in Microsoft Entra - Supportato con il connettore gestito di SQL Server.
- Richiede un'identità gestita valida in Microsoft Entra abilitata nella risorsa dell'app per la logica che ha accesso al database. Per altre informazioni, vedere gli argomenti seguenti:
- Panoramica della sicurezza SQL di Azure - Autenticazione
- Autorizzare l'accesso al database a SQL di Azure - Autenticazione e autorizzazione
- Azure SQL - Autenticazione integrata di Microsoft EntraAutenticazione di SQL Server - Supportato con il connettore gestito di SQL Server.
- Richiede gli elementi seguenti:
--- Una risorsa gateway dati creata in precedenza in Azure per la connessione, indipendentemente dal fatto che l'app per la logica si trovi in App per la logica di Azure multi-tenant.
--- Un nome utente valido e una password complessa creati e archiviati nel database di SQL Server. Per altre informazioni, vedere gli argomenti seguenti:
- Panoramica della sicurezza SQL di Azure - Autenticazione
- Autorizzare l'accesso al database a SQL di Azure - Autenticazione e autorizzazioneNegli esempi seguenti viene illustrato come visualizzare la casella delle informazioni di connessione se si usa il connettore gestito di SQL Server e si seleziona Autenticazione Microsoft Entra integrata:
Flussi di lavoro A consumo
Flussi di lavoro Standard
Dopo aver selezionato Microsoft Entra integrata, selezionare Accedi. In base al fatto che si usi il database SQL di Azure o Istanza gestita di SQL, selezionare le credenziali utente per l'autenticazione.
Selezionare questi valori per il database:
Proprietà Richiesto Descrizione Nome server Sì L'indirizzo del server SQL, ad esempio, Fabrikam-Azure-SQL.database.windows.net Nome database Sì Nome del database SQL, ad esempio Fabrikam-Azure-SQL-DB Nome tabella Sì Tabella da usare, ad esempio SalesLT.Customer Suggerimento
Per fornire informazioni sul database e sulla tabella, sono disponibili queste opzioni:
Trovare queste informazioni nella stringa di connessione del database. Ad esempio, nel portale di Azure trovare e aprire il database. Nel menu del database selezionare Stringhe di connessione o Proprietà, in cui è possibile trovare la stringa seguente:
Server=tcp:{your-server-address}.database.windows.net,1433;Initial Catalog={your-database-name};Persist Security Info=False;User ID={your-user-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
Per impostazione predefinita, le tabelle nei database di sistema vengono filtrate, quindi potrebbero non essere visualizzate automaticamente quando si seleziona un database di sistema. In alternativa, è possibile immettere manualmente il nome della tabella dopo aver selezionato Immettere un valore personalizzato nell'elenco di database.
Questa casella di informazioni sul database è simile all'esempio seguente:
Flussi di lavoro A consumo
Flussi di lavoro Standard
Continuare ora con i passaggi non ancora completati in Aggiungere un trigger SQL o Aggiungere un'azione SQL.
Connettersi a SQL Server locale
Nella casella delle informazioni di connessione completare i passaggi seguenti:
Per le connessioni al server SQL locale che richiedono il gateway dati locale, assicurarsi di aver completato questi prerequisiti.
In caso contrario, la risorsa gateway dati non viene visualizzata nell'elenco Gateway di connessione quando si crea la connessione.
Per Tipo di autenticazione selezionare l'autenticazione necessaria e abilitata in SQL Server:
Autenticazione Descrizione Autenticazione di SQL Server - Supportato con il connettore gestito di SQL Server e il connettore predefinito di SQL Server.
- Richiede gli elementi seguenti:
--- Una risorsa gateway dati creata in precedenza in Azure per la connessione, indipendentemente dal fatto che l'app per la logica si trovi in App per la logica di Azure multi-tenant.
--- Un nome utente valido e una password complessa creati e archiviati in SQL Server.
Per altre informazioni, vedere Autenticazione di SQL Server.Autenticazione di Windows - Supportato con il connettore gestito di SQL Server.
- Richiede gli elementi seguenti:
--- Una risorsa gateway dati creata in precedenza in Azure per la connessione, indipendentemente dal fatto che l'app per la logica si trovi in App per la logica di Azure multi-tenant.
--- Un nome utente e una password di Windows validi per confermare l'identità tramite l'account di Windows.
Per altre informazioni, vedere Autenticazione di Windows.Selezionare o specificare i valori seguenti per il database SQL:
Proprietà Richiesto Descrizione Nome del server SQL Sì Indirizzo del server SQL, ad esempio Fabrikam-Azure-SQL.database.windows.net
Nome database SQL Sì Nome del database DI SQL Server, ad esempio Fabrikam-Azure-SQL-DB
Nome utente Sì Nome utente per SQL server e database Password Sì Password per SQL server e database Abbonamento Sì. per l'autenticazione di Windows Sottoscrizione di Azure per la risorsa gateway dati creata in precedenza in Azure Gateway connessione Sì. per l'autenticazione di Windows Nome della risorsa gateway dati creata in precedenza in Azure
Suggerimento: se il gateway non compare nell'elenco, verificare di avere configurato il gateway correttamente.Suggerimento
È possibile trovare queste informazioni nella stringa di connessione del database:
Server={your-server-address}
Database={your-database-name}
User ID={your-user-name}
Password={your-password}
Negli esempi seguenti viene illustrato come visualizzare la casella delle informazioni di connessione se si seleziona l'autenticazione di Windows.
Flussi di lavoro A consumo
Flussi di lavoro Standard
Al termine, selezionare Crea.
Continuare ora con i passaggi non ancora completati in Aggiungere un trigger SQL o Aggiungere un'azione SQL.
Gestire i dati in blocco
In alcuni casi, si lavora con set di risultati così grandi che il connettore non restituisce tutti i risultati contemporaneamente. In alternativa, è necessario controllare meglio le dimensioni e la struttura per i set di risultati. L'elenco seguente include alcuni modi in cui è possibile gestire set di risultati di grandi dimensioni:
Per gestire i risultati come set più piccoli, attivare la paginazione. Per altre informazioni, vedere Ottenere dati in blocco, record ed elementi usando la paginazione. Per altre informazioni, vedere Impaginazione SQL per il trasferimento bulk dei dati con App per la logica.
Creare una stored procedure per organizzare i risultati nel modo desiderato. Il connettore SQL Server offre molte funzionalità back-end a cui è possibile accedere usando App per la logica di Azure, in modo da poter automatizzare più facilmente le attività aziendali che funzionano con le tabelle di database SQL.
Quando un'azione SQL ottiene o inserisce più righe, il flusso di lavoro dell'app per la logica può eseguire l'iterazione in queste righe usando un ciclo until entro questi limiti. In alcuni casi, tuttavia, l'app per la logica deve interagire con set di record talmente grandi, ad esempio migliaia o milioni di righe, che si vuole ridurre al minimo i costi risultanti dalle chiamate al database.
Per organizzare i risultati nel modo desiderato, è possibile creare una stored procedure che viene eseguita nell'istanza di SQL e usa l'istruzione SELECT - ORDER BY. Questa soluzione consente di controllare meglio le dimensioni e la struttura dei risultati. L'app per logica chiama la stored procedure usando l'azione Esegui stored procedure del connettore SQL Server. Per altre informazioni, vedere Clausola SELECT - ORDER BY.
Nota
Il connettore SQL Server ha un limite di timeout della stored procedure inferiore a 2 minuti. Il completamento di alcune stored procedure potrebbe richiedere più tempo rispetto a questo limite, causando un errore
504 Timeout
. È possibile risolvere questo problema usando un trigger di completamento SQL, una query pass-through SQL nativa, una tabella di stato e processi sul lato server.Per questa attività, è possibile usare l'Agente processi Elastic di Azure per il database SQL di Azure. Per SQL Server locale e Istanza gestita di SQL, è possibile usare SQL Server Agent. Per altre informazioni, vedere Gestire i timeout delle stored procedure a esecuzione prolungata nel connettore SQL Server per App per la logica di Azure.
Gestire i dati in blocco dinamici
Quando si chiama una stored procedure usando il connettore SQL Server, l'output restituito è talvolta dinamico. In questo scenario, seguire questi passaggi:
Nel portale di Azure aprire l'app per la logica e il flusso di lavoro nella finestra di progettazione.
Visualizzare il formato di output eseguendo un'esecuzione di test. Copiare e salvare l'output di esempio.
Nella finestra di progettazione, sotto l'azione in cui si chiama la stored procedure, aggiungere l'azione predefinita denominata Analizza JSON.
Nell'azione Analizza JSON selezionare Usare il payload di esempio per generare lo schema.
Nella casella Immettere o incollare un payload JSON di esempio incollare l'output di esempio e selezionare Fatto.
Nota
Se viene restituito un errore che indica che App per la logica di Azure non può generare uno schema, verificare che la sintassi dell'output di esempio sia formattata correttamente. Se non si riesce ancora a generare lo schema, immetterne manualmente uno nella casella Schema.
Al termine, salvare il flusso di lavoro.
Per fare riferimento alle proprietà del contenuto JSON, selezionare all'interno delle caselle di modifica in cui si desidera fare riferimento a tali proprietà in modo che venga visualizzato l'elenco di contenuto dinamico. Nell'elenco, sotto l'intestazione Analizza JSON, selezionare i token di dati per le proprietà del contenuto JSON desiderata.