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 (consumo + 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:
Riferimento tecnico Connessione or
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 di Connessione or |
---|---|---|
Consumo | App per la logica di Azure multi-tenant | Connettore gestito, visualizzato nella finestra di progettazione sotto l'etichetta Standard . 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 |
Consumo | Ambiente del servizio di integrazione | Connettore gestito, visualizzato nella finestra di progettazione con l'etichetta Standard e la versione I edizione Standard, che presenta limiti di messaggio diversi rispetto alla classe Standard. Per altre informazioni, vedere la documentazione seguente: - Informazioni di riferimento sul connettore gestito di SQL Server - I edizione Standard limiti dei messaggi - 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 connettori in Runtime>Condiviso e connettore predefinito, visualizzato nella raccolta 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 un 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 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 nel stringa di connessione.
Importante
Se si usa un stringa di connessione di SQL Server copiato direttamente dalla portale di Azure, è necessario aggiungere manualmente la password al stringa di connessione.
Per un database SQL in Azure, il 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 nella portale di Azure, aprire il database.
Nel menu del database, in Proprietà, selezionare Connessione stringhe di Connessione.
Per un server SQL locale, il 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 vuole 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 vuole 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.
In un edizione Standard non è necessario il gateway dati locale per l'autenticazione di SQL Server e le connessioni di autenticazione non Windows ed è possibile usare il connettore SQL Server con controllo delle versioni I edizione Standard. Per l'autenticazione di Windows, è necessario il gateway dati locale in un computer locale e una risorsa gateway dati già creata in Azure. Il connettore I edizione Standard-version non supporta l'autenticazione di Windows, quindi è necessario usare il normale connettore gestito di SQL Server.
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 un stringa di connessione. È possibile modificare il pool di connessioni specificando i parametri nel stringa di connessione. Per altre informazioni, vedere pool di Connessione ion.
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 la 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 dell'app per la logica:
Flussi di lavoro a consumo: Visual Studio o Visual Studio Code
Flussi di lavoro standard: Visual Studio Code
Nella 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 Standard nella 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 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, dall'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 tali 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 consumo o Visual Studio Code per modificare i flussi di lavoro delle app per la logica:
Flussi di lavoro a consumo: Visual Studio o Visual Studio Code
Flussi di lavoro standard: Visual Studio Code
In questo esempio il flusso di lavoro dell'app per la logica inizia con il trigger Ricorrenza e chiama un'azione che ottiene una riga da un database SQL.
Nella portale di Azure aprire l'app per la logica a consumo e il flusso di lavoro 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 get row, 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 chiede di fornire le informazioni di connessione, che variano in base al tipo di connessione, ad esempio:
- Credenziali dell'account
- Nome da usare per la connessione
- Nome del server o del sistema
- Tipo di autenticazione da usare
- Un stringa di connessione
Dopo aver specificato queste informazioni, continuare con i passaggi seguenti in base al database di destinazione:
- Connessione a database SQL di Azure o Istanza gestita di SQL basate sul cloud
- Connessione a SQL Server locale
Connessione a database SQL di Azure o Istanza gestita di SQL
Per accedere a un Istanza gestita di SQL senza usare il gateway dati locale o l'ambiente del servizio di integrazione, è necessario configurare l'endpoint pubblico nella 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 informazioni di connessione completare i passaggi seguenti:
Per Connessione nome, specificare un nome da usare per la connessione.
Per Tipo di autenticazione selezionare l'autenticazione necessaria e abilitata nel database in database SQL di Azure o Istanza gestita di SQL:
Authentication Descrizione Stringa di connessione - Supportato solo nei flussi di lavoro Standard con il connettore predefinito di SQL Server.
- Richiede l'stringa di connessione al database e al server SQL.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 Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth)
- Microsoft Entra ID Open AuthenticationIdentità gestita di App per la logica - Supportato con il connettore gestito di SQL Server e il connettore con controllo delle versioni di I edizione Standard. 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 e 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.
- Richiede 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 usando il portale di Azure.Microsoft Entra integrato - Supportato con il connettore gestito di SQL Server e il connettore con controllo delle versioni di I edizione Standard.
- Richiede un'identità gestita valida in Microsoft Entra abilitata nella risorsa dell'app per la logica e 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 e il connettore con controllo delle versioni di I edizione Standard.
- 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 trova in App per la logica di Azure multi-tenant o in un edizione Standard.
--- 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 integrata di Microsoft Entra:
Flussi di lavoro a consumo
Flussi di lavoro standard
Dopo aver selezionato Microsoft Entra integrated (Integrazione di Microsoft Entra), selezionare Accedi. In base al fatto che si usi 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 nel stringa di connessione del database. Ad esempio, nella portale di Azure trovare e aprire il database. Nel menu del database selezionare Connessione 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 dall'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.
Connessione a SQL Server locale
Nella casella 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 ion quando si crea la connessione.
Per Tipo di autenticazione selezionare l'autenticazione necessaria e abilitata in SQL Server:
Authentication Descrizione Autenticazione di SQL Server - Supportato con il connettore gestito di SQL Server, il connettore predefinito di SQL Server e il connettore con controllo delle versioni di I edizione Standard.
- 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 trova in App per la logica di Azure multi-tenant o in un edizione Standard.
--- 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 trova in App per la logica di Azure multi-tenant o in un edizione Standard.
--- 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 autenticazione di Windows Sottoscrizione di Azure per la risorsa gateway dati creata in precedenza in Azure gateway Connessione ion Sì, per autenticazione di Windows Nome della risorsa gateway dati creata in precedenza in Azure
Suggerimento: se il gateway non viene visualizzato nell'elenco, verificare di aver configurato correttamente il gateway.Suggerimento
È possibile trovare queste informazioni nel 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 Paginazione SQL per il trasferimento bulk dei dati con App per la logica.
Creare una stored procedure che organizza 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 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ò scorrere 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 eseguita nell'istanza di SQL e usare l'istruzione edizione Standard LECT - 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 edizione Standard LECT - 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
504 Timeout
errore. È 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 elastico di Azure per 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:
Nella 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 Parse 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 Fine.
Nota
Se viene visualizzato un errore che indica che App per la logica di Azure non è in grado di generare uno schema, verificare che la sintassi dell'output di esempio sia formattata correttamente. Se non è ancora possibile generare lo schema, nella casella Schema immettere manualmente lo 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 desiderate.