Ansluta till en SQL-databas från arbetsflöden i Azure Logic Apps
Gäller för: Azure Logic Apps (Förbrukning + Standard)
Den här instruktionsguiden visar hur du kommer åt din SQL-databas från ett arbetsflöde i Azure Logic Apps med SQL Server-anslutningsappen. Du kan sedan skapa automatiserade arbetsflöden som körs när de utlöses av händelser i SQL-databasen eller i andra system och köra åtgärder för att hantera dina SQL-data och resurser.
Arbetsflödet kan till exempel köra åtgärder som hämtar, infogar och tar bort data eller som kan köra SQL-frågor och lagrade procedurer. Arbetsflödet kan söka efter nya poster i en icke-SQL-databas, utföra bearbetningsarbete, använda resultaten för att skapa nya poster i SQL-databasen och skicka e-postaviseringar om de nya posterna.
Om du inte har använt Azure Logic Apps tidigare läser du följande kom igång-dokumentation:
SQL-utgåvor som stöds
SQL Server-anslutningsappen stöder följande SQL-utgåvor:
Teknisk referens för anslutningsprogram
SQL Server-anslutningsappen har olika versioner, baserat på logikapptyp och värdmiljö.
Logikapp | Environment | Anslutningsversion |
---|---|---|
Förbrukning | Azure Logic Apps med flera klientorganisationer | Hanterad anslutningsapp, som visas i anslutningsgalleriet under Runtime>Shared. Mer information finns i följande dokumentation: - Referens för SQL Server-hanterad anslutningsapp - Hanterade anslutningsappar i Azure Logic Apps |
Standard | Azure Logic Apps för en klientorganisation och App Service Environment v3 (endast Windows-planer) | Hanterad anslutningsapp, som visas i anslutningsgalleriet under Runtime>Shared och inbyggd anslutningsapp, som visas i anslutningsgalleriet under Runtime>In-App och är tjänstleverantörsbaserad. Den inbyggda anslutningsappen skiljer sig åt på följande sätt: – Den inbyggda anslutningsappen kan ansluta direkt till en SQL-databas och få åtkomst till virtuella Azure-nätverk med hjälp av en niska veze utan en lokal datagateway. Mer information finns i följande dokumentation: - Referens för SQL Server-hanterad anslutningsapp - Referens för inbyggd SQL Server-anslutningsapp - Inbyggda anslutningsappar i Azure Logic Apps |
Begränsningar
Mer information finns i referensen för sql server-hanterad anslutningsapp eller referensen för den inbyggda SQL Server-anslutningsappen.
Förutsättningar
Ett Azure-konto och prenumeration. Om du inte har någon prenumeration kan du registrera ett kostnadsfritt Azure-konto.
SQL Server-databas, Azure SQL Database eller SQL Managed Instance.
SQL Server-anslutningsappen kräver att dina tabeller innehåller data så att anslutningsåtgärderna kan returnera resultat när de anropas. Om du till exempel använder Azure SQL Database kan du använda de inkluderade exempeldatabaserna för att prova SQL Server-anslutningsåtgärderna.
Den information som krävs för att skapa en SQL-databasanslutning, till exempel sql-servern och databasnamnet. Om du använder Windows-autentisering eller SQL Server-autentisering för att autentisera åtkomst behöver du även ditt användarnamn och lösenord. Du kan vanligtvis hitta den här informationen i niska veze.
Viktigt!
Om du använder en SQL Server-niska veze som du kopierade direkt från Azure-portalen måste du lägga till lösenordet manuellt i niska veze. För känslig information, till exempel den här strängen, bör du använda det säkraste tillgängliga autentiseringsflödet. Microsoft rekommenderar att du autentiserar åtkomst till Azure-resurser med en hanterad identitet när det är möjligt och tilldelar en roll som har minsta möjliga behörighet.
Om den här funktionen inte är tillgänglig måste du skydda niska veze genom andra mått, till exempel Azure Key Vault, som du kan använda med appinställningar i Standard-arbetsflöden. Du kan sedan direkt referera till säkra strängar, till exempel niska veze och nycklar. På samma sätt som ARM-mallar, där du kan definiera miljövariabler vid distributionstillfället, kan du definiera appinställningar i arbetsflödesdefinitionen för standardlogikappen. Du kan sedan samla in dynamiskt genererade infrastrukturvärden, till exempel anslutningsslutpunkter, lagringssträngar med mera. Mer information finns i Programtyper för Microsoft platforma za identitete.
För en SQL-databas i Azure har niska veze följande format:
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;
Om du vill hitta den här strängen i Azure-portalen öppnar du databasen.
På databasmenyn går du till Egenskaper och väljer Anslutningssträngar.
För en lokal SQL-server har niska veze följande format:
Server={your-server-address};Database={your-database-name};User Id={your-user-name};Password={your-password};
Om du vill använda inbyggda SQL-utlösare i Standard-arbetsflöden måste du aktivera ändringsspårning i tabellen där du vill använda utlösaren. Mer information finns i Aktivera och inaktivera ändringsspårning.
Arbetsflödet för logikappen där du vill komma åt din SQL-databas. Om du vill starta arbetsflödet med en SQL Server-utlösare måste du börja med ett tomt arbetsflöde. Om du vill använda en SQL Server-åtgärd startar du arbetsflödet med valfri utlösare.
För att ansluta till en lokal SQL-server gäller följande extra krav, baserat på om du har ett arbetsflöde för förbrukning eller standardlogikapp.
Arbetsflöde för förbrukning
I Azure Logic Apps med flera klientorganisationer behöver du den lokala datagatewayen installerad på en lokal dator och en datagatewayresurs som redan har skapats i Azure.
Standardarbetsflöde
Du kan använda den inbyggda SQL Server-anslutningsappen eller den hanterade anslutningsappen.
Om du vill använda Microsoft Entra-autentisering eller hanterad identitetsautentisering med logikappen måste du konfigurera DIN SQL Server så att den fungerar med dessa autentiseringstyper. Mer information finns i Referens för autentisering – SQL Server-hanterad anslutningsapp.
Om du vill använda den inbyggda anslutningsappen kan du autentisera anslutningen med antingen en hanterad identitet, Microsoft Entra-ID eller en niska veze. Du kan justera anslutningspoolen genom att ange parametrar i niska veze. Mer information finns i Anslutningspooler.
Om du vill använda den hanterade SQL Server-anslutningsappen följer du samma krav som ett arbetsflöde för förbrukningslogikappen i Azure Logic Apps med flera klientorganisationer. Om du vill ha andra anslutningskrav kan du läsa referensen för sql server-hanterad anslutningsapp.
Lägga till en SQL Server-utlösare
Följande steg använder Azure-portalen, men med lämpligt Azure Logic Apps-tillägg kan du också använda följande verktyg för att skapa arbetsflöden för logikappar:
Förbrukningsarbetsflöden: Visual Studio eller Visual Studio Code
Standardarbetsflöden: Visual Studio Code
I Azure-portalen öppnar du logikappen Förbrukning och ett tomt arbetsflöde i designern.
I designern går du till sökrutan och väljer Standard. Följ sedan de här allmänna stegen för att lägga till den SQL Server-hanterade utlösare som du vill använda.
Det här exemplet fortsätter med utlösaren med namnet När ett objekt skapas.
Ange informationen för anslutningen om du uppmanas att göra det. Välj Skapa när du är klar.
När informationsrutan för utlösaren visas anger du nödvändig information som krävs av den valda utlösaren.
I det här exemplet i utlösaren med namnet När ett objekt skapas anger du värdena för SQL-servernamnet och databasnamnet, om du inte tidigare angav dem. Annars väljer du den tabell som du vill använda i listan Tabellnamn . Välj Frekvens och Intervall för att ange schemat för utlösaren för att söka efter nya objekt.
Om det finns andra egenskaper för den här utlösaren öppnar du listan Lägg till ny parameter och väljer de egenskaper som är relevanta för ditt scenario.
Den här utlösaren returnerar bara en rad från den valda tabellen och inget annat. Om du vill utföra andra uppgifter fortsätter du genom att lägga till antingen en SQL Server-anslutningsåtgärd eller en annan åtgärd som utför nästa uppgift som du vill utföra i logikappens arbetsflöde.
Om du till exempel vill visa data på den här raden kan du lägga till andra åtgärder som skapar en fil som innehåller fälten från den returnerade raden och sedan skicka e-postaviseringar. Mer information om andra tillgängliga åtgärder för den här anslutningsappen finns i referensen för SQL Server-hanterad anslutningsapp.
Spara arbetsflödet när du är klar. I verktygsfältet för designern väljer du Spara.
När du sparar arbetsflödet publicerar det här steget automatiskt dina uppdateringar till din distribuerade logikapp, som finns i Azure. Med bara en utlösare kontrollerar arbetsflödet bara SQL-databasen baserat på ditt angivna schema. Du måste lägga till en åtgärd som svarar på utlösaren.
Lägga till en SQL Server-åtgärd
Följande steg använder Azure-portalen, men med lämpligt Azure Logic Apps-tillägg kan du också använda Visual Studio för att redigera arbetsflöden för förbrukningslogikappar eller Visual Studio Code till följande verktyg för att redigera arbetsflöden för logikappar:
Förbrukningsarbetsflöden: Visual Studio eller Visual Studio Code
Standardarbetsflöden: Visual Studio Code
I det här exemplet börjar logikappens arbetsflöde med utlösaren Återkommande och anropar en åtgärd som hämtar en rad från en SQL-databas.
Öppna logikappen och arbetsflödet för förbrukning i designern i Azure-portalen.
I designern följer du de här allmänna stegen för att lägga till den HANTERADE SQL Server-åtgärd som du vill använda.
Det här exemplet fortsätter med åtgärden Get row (Hämta rad), som hämtar en enda post.
Ange informationen för anslutningen om du uppmanas att göra det. Välj Skapa när du är klar.
När åtgärdsinformationsrutan visas väljer du den tabell som du vill använda i listan Tabellnamn . I egenskapen Rad-ID anger du ID för den post som du vill använda.
I det här exemplet är tabellnamnet SalesLT.Customer.
Den här åtgärden returnerar bara en rad från den valda tabellen och inget annat. Om du vill visa data på den här raden lägger du till andra åtgärder. Sådana åtgärder kan till exempel skapa en fil, inkludera fälten från den returnerade raden och lagra filen i ett molnlagringskonto. Mer information om andra tillgängliga åtgärder för den här anslutningsappen finns på anslutningsappens referenssida.
Spara arbetsflödet när du är klar. I verktygsfältet för designern väljer du Spara.
Ansluta till databasen
När du lägger till en utlösare eller åtgärd som ansluter till en tjänst eller ett system, och du inte har någon befintlig eller aktiv anslutning, uppmanar Azure Logic Apps dig att ange anslutningsinformationen, som varierar beroende på anslutningstyp, till exempel:
- Autentiseringsuppgifter för ditt konto
- Ett namn som ska användas för anslutningen
- Namnet på servern eller systemet
- Den autentiseringstyp som ska användas
- En niska veze
När du har angett den här informationen fortsätter du med följande steg baserat på måldatabasen:
- Ansluta till molnbaserad Azure SQL Database eller SQL Managed Instance
- Ansluta till lokal SQL Server
Ansluta till Azure SQL Database eller SQL Managed Instance
För att få åtkomst till en SQL Managed Instance utan att använda den lokala datagatewayen måste du konfigurera den offentliga slutpunkten på SQL Managed Instance. Den offentliga slutpunkten använder port 3342, så se till att du anger det här portnumret när du skapar anslutningen från logikappen.
Slutför följande steg i rutan anslutningsinformation:
För Anslutningsnamn anger du ett namn som ska användas för anslutningen.
Som Autentiseringstyp väljer du den autentisering som krävs och är aktiverad för din databas i Azure SQL Database eller SQL Managed Instance:
Autentisering beskrivning Anslutningssträng – Stöds endast i Standard-arbetsflöden med den inbyggda SQL Server-anslutningsappen.
– Kräver niska veze till SQL-servern och databasen.Active Directory OAuth – Stöds endast i Standard-arbetsflöden med den inbyggda SQL Server-anslutningsappen. Mer information finns i följande dokumentation:
- Autentisering för SQL Server-anslutningsprogram
- Aktivera öppen auktorisering med Microsoft Entra-ID (Microsoft Entra ID OAuth)
- OAuth med Microsoft Entra-IDHanterad identitet för Logic Apps – Stöds med den hanterade SQL Server-anslutningsappen. I Standard-arbetsflöden är den här autentiseringstypen tillgänglig för den inbyggda SQL Server-anslutningsappen, men alternativet heter Hanterad identitet i stället.
– Kräver följande:
--- En giltig hanterad identitet som är aktiverad på logikappens resurs och som har åtkomst till databasen.
--- SQL DB-deltagarrollåtkomst till SQL Server-resursen
--- Deltagaråtkomst till resursgruppen som innehåller SQL Server-resursen.
Mer information finns i följande dokumentation:
- Hanterad identitetsautentisering för SQL Server-anslutningsprogram
- SQL – Roller på servernivåTjänstens huvudnamn (Microsoft Entra-program) – Stöds med den hanterade SQL Server-anslutningsappen.
– Kräver ett Microsoft Entra-program och tjänstens huvudnamn. Mer information finns i Skapa ett Microsoft Entra-program och tjänstens huvudnamn som kan komma åt resurser med hjälp av Azure-portalen.Microsoft Entra-integrerat – Stöds med den hanterade SQL Server-anslutningsappen.
– Kräver en giltig hanterad identitet i Microsoft Entra som är aktiverad på logikappresursen och har åtkomst till databasen. Mer information finns i följande avsnitt:
- Översikt över Azure SQL-säkerhet – autentisering
- Auktorisera databasåtkomst till Azure SQL – Autentisering och auktorisering
- Azure SQL – Microsoft Entra-integrerad autentiseringSQL Server-autentisering – Stöds med den hanterade SQL Server-anslutningsappen.
– Kräver följande:
--- En datagatewayresurs som tidigare har skapats i Azure för din anslutning, oavsett om logikappen finns i Azure Logic Apps med flera klientorganisationer.
--- Ett giltigt användarnamn och starkt lösenord som skapas och lagras i SQL Server-databasen. Mer information finns i följande avsnitt:
- Översikt över Azure SQL-säkerhet – autentisering
- Auktorisera databasåtkomst till Azure SQL – Autentisering och auktoriseringI följande exempel visas hur rutan anslutningsinformation kan visas om du använder den hanterade SQL Server-anslutningsappen och väljer Microsoft Entra-integrerad autentisering:
Förbrukningsarbetsflöden
Standardarbetsflöden
När du har valt Microsoft Entra integrerat väljer du Logga in. Baserat på om du använder Azure SQL Database eller SQL Managed Instance väljer du dina användarautentiseringsuppgifter för autentisering.
Välj dessa värden för databasen:
Property Obligatoriskt Beskrivning Servernamn Ja Adressen för DIN SQL-server, till exempel Fabrikam-Azure-SQL.database.windows.net Databasnamn Ja Namnet på sql-databasen, till exempel Fabrikam-Azure-SQL-DB Tabellnamn Ja Den tabell som du vill använda, till exempel SalesLT.Customer Dricks
Om du vill ange databas- och tabellinformation har du följande alternativ:
Hitta den här informationen i databasens niska veze. I Azure-portalen letar du till exempel upp och öppnar databasen. På databasmenyn väljer du antingen Anslutningssträngar eller Egenskaper, där du hittar följande sträng:
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;
Som standard filtreras tabeller i systemdatabaser bort, så de kanske inte visas automatiskt när du väljer en systemdatabas. Alternativt kan du ange tabellnamnet manuellt när du har valt Ange anpassat värde i databaslistan.
Den här databasinformationsrutan ser ut ungefär som i följande exempel:
Förbrukningsarbetsflöden
Standardarbetsflöden
Fortsätt nu med de steg som du inte har slutfört ännu i antingen Lägg till en SQL-utlösare eller Lägg till en SQL-åtgärd.
Ansluta till lokal SQL Server
Slutför följande steg i rutan anslutningsinformation:
För anslutningar till din lokala SQL-server som kräver den lokala datagatewayen kontrollerar du att du har slutfört dessa krav.
Annars visas inte din datagatewayresurs i listan Anslutningsgateway när du skapar anslutningen.
Som Autentiseringstyp väljer du den autentisering som krävs och är aktiverad på din SQL Server:
Autentisering beskrivning SQL Server-autentisering – Stöds med sql Server-hanterad anslutningsapp och inbyggd SQL Server-anslutningsapp.
– Kräver följande:
--- En datagatewayresurs som tidigare har skapats i Azure för din anslutning, oavsett om logikappen finns i Azure Logic Apps med flera klientorganisationer.
--- Ett giltigt användarnamn och starkt lösenord som skapas och lagras i SQL Server.
Mer information finns i SQL Server-autentisering.Windows-autentisering – Stöds med den hanterade SQL Server-anslutningsappen.
– Kräver följande:
--- En datagatewayresurs som tidigare har skapats i Azure för din anslutning, oavsett om logikappen finns i Azure Logic Apps med flera klientorganisationer.
--- Ett giltigt Windows-användarnamn och lösenord för att bekräfta din identitet via ditt Windows-konto.
Mer information finns i Windows-autentisering.Välj eller ange följande värden för din SQL-databas:
Property Obligatoriskt Beskrivning SQL Server-namn Ja Adressen till din SQL-server, till exempel Fabrikam-Azure-SQL.database.windows.net
SQL-databasens namn Ja Namnet på din SQL Server-databas, till exempel Fabrikam-Azure-SQL-DB
Användarnamn Ja Ditt användarnamn för SQL-servern och databasen Lösenord Ja Ditt lösenord för SQL-servern och databasen Abonnemang Ja, för Windows-autentisering Azure-prenumerationen för datagatewayresursen som du skapade tidigare i Azure Anslutningsgateway Ja, för Windows-autentisering Namnet på datagatewayresursen som du skapade tidigare i Azure
Tips: Om din gateway inte visas i listan kontrollerar du att du har konfigurerat gatewayen korrekt.Dricks
Du hittar den här informationen i databasens niska veze:
Server={your-server-address}
Database={your-database-name}
User ID={your-user-name}
Password={your-password}
I följande exempel visas hur rutan anslutningsinformation kan visas om du väljer Windows-autentisering .
Förbrukningsarbetsflöden
Standardarbetsflöden
När du är klar väljer du Skapa.
Fortsätt nu med de steg som du inte har slutfört ännu i antingen Lägg till en SQL-utlösare eller Lägg till en SQL-åtgärd.
Hantera massdata
Ibland arbetar du med resultatuppsättningar som är så stora att anslutningsappen inte returnerar alla resultat samtidigt. Eller så vill du ha bättre kontroll över storlek och struktur för dina resultatuppsättningar. Följande lista innehåller några sätt att hantera så stora resultatuppsättningar:
Aktivera sidnumrering för att hjälpa dig att hantera resultat som mindre uppsättningar. Mer information finns i Hämta massdata, poster och objekt med hjälp av sidnumrering. Mer information finns i SQL-sidnumrering för massöverföring av data med Logic Apps.
Skapa en lagrad procedur som organiserar resultatet som du vill. SQL Server-anslutningsappen innehåller många serverdelsfunktioner som du kan komma åt med hjälp av Azure Logic Apps så att du enklare kan automatisera affärsuppgifter som fungerar med SQL-databastabeller.
När en SQL-åtgärd hämtar eller infogar flera rader kan logikappens arbetsflöde iterera genom dessa rader med hjälp av en until-loop inom dessa gränser. Men när logikappen måste fungera med postuppsättningar som är så stora, till exempel tusentals eller miljontals rader, vill du minimera kostnaderna till följd av anrop till databasen.
Om du vill ordna resultaten på det sätt du vill kan du skapa en lagrad procedur som körs i SQL-instansen och använda instruktionen SELECT – ORDER BY . Den här lösningen ger dig mer kontroll över resultatets storlek och struktur. Logikappen anropar den lagrade proceduren med hjälp av åtgärden Kör lagrad procedur i SQL Server-anslutningsappen. Mer information finns i SELECT – ORDER BY-sats.
Kommentar
SQL Server-anslutningsappen har en tidsgräns för lagrad procedur som är mindre än 2 minuter. Vissa lagrade procedurer kan ta längre tid än den här gränsen att slutföras, vilket orsakar ett
504 Timeout
fel. Du kan kringgå det här problemet med hjälp av en SQL-slutförandeutlösare, intern SQL-direktfråga, en tillståndstabell och jobb på serversidan.För den här uppgiften kan du använda Azure Elastic Job Agent för Azure SQL Database. För SQL Server lokalt och SQL Managed Instance kan du använda SQL Server-agenten. Mer information finns i Hantera tidskrävande tidsgränser för lagrade procedurer i SQL Server-anslutningsappen för Azure Logic Apps.
Hantera dynamiska massdata
När du anropar en lagrad procedur med hjälp av SQL Server-anslutningsappen är de returnerade utdata ibland dynamiska. I det här scenariot följer du dessa steg:
Öppna logikappen och arbetsflödet i designern i Azure-portalen.
Visa utdataformatet genom att utföra en testkörning. Kopiera och spara exempelutdata.
Lägg till den inbyggda åtgärden Parse JSON under den åtgärd där du anropar den lagrade proceduren i designern.
I åtgärden Parsa JSON väljer du Använd exempelnyttolast för att generera schema.
I rutan Ange eller klistra in en JSON-exempelnyttolast klistrar du in dina exempelutdata och väljer Klar.
Kommentar
Om du får ett felmeddelande om att Azure Logic Apps inte kan generera ett schema kontrollerar du att exempelutdatasyntaxen är korrekt formaterad. Om du fortfarande inte kan generera schemat anger du schemat manuellt i rutan Schema .
Spara arbetsflödet när du är klar.
Om du vill referera till JSON-innehållsegenskaperna markerar du i redigeringsrutorna där du vill referera till dessa egenskaper så att listan med dynamiskt innehåll visas. I listan går du till rubriken Parsa JSON och väljer datatoken för de JSON-innehållsegenskaper som du vill använda.