Σημείωση
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να συνδεθείτε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Ισχύει για:✅Βάση δεδομένων SQL στο Microsoft Fabric
Μπορείτε να χρησιμοποιήσετε το REST API Fabric για την ανάπτυξη και τη διαχείριση πόρων. Συμπεριλάβετε βάσεις δεδομένων SQL στο Fabric.
Αυτό το άρθρο και δείγμα δέσμης ενεργειών δείχνουν πώς μπορείτε να χρησιμοποιήσετε το PowerShell για να καλέσετε το REST API Fabric για την ανάπτυξη μιας βάσης δεδομένων SQL Fabric.
Προαπαιτούμενα στοιχεία
- Χρειάζεστε ένα υπάρχον σύνολο εκχωρημένων πόρων Fabric. Εάν δεν το κάνετε, ξεκινήστε μια δοκιμαστική έκδοση Fabric.
- Μπορείτε να χρησιμοποιήσετε έναν υπάρχοντα χώρο εργασίας ή να δημιουργήσετε έναν νέο χώρο εργασίας Fabric.
- Πρέπει να είστε μέλος των ρόλων Διαχειριστής ή Μέλος για τον χώρο εργασίας, προκειμένου να δημιουργήσετε μια βάση δεδομένων SQL.
- Εγκαταστήστε την έκδοση golang του SQLCMD. Εκτελέστε σε
winget install sqlcmdWindows για εγκατάσταση. Για άλλα λειτουργικά συστήματα, ανατρέξτε στο θέμα aka.ms/go-sqlcmd. - PowerShell 5.1 ή PowerShell 7.4 και νεότερες εκδόσεις
- Η λειτουργική μονάδα Az PowerShell. Εκτελέστε το
Install-Module azστο PowerShell για εγκατάσταση.
Δημιουργία νέας βάσης δεδομένων SQL μέσω API REST
Αυτό το παράδειγμα δέσμης Connect-AzAccountενεργειών χρησιμοποιεί το , ένα ψευδώνυμο για az login την προτροπή για διαπιστευτήρια. Χρησιμοποιεί αυτά τα διαπιστευτήρια για να αποκτήσει ένα διακριτικό πρόσβασης για χρήση στις κλήσεις REST API. Η SQLCMD χρησιμοποιεί το περιβάλλον του λογαριασμού που δόθηκε στο Connect-AzAccount.
Η δέσμη ενεργειών δημιουργεί μια βάση δεδομένων με το όνομα του συνδεδεμένου χρήστη και την ημερομηνία. Προς το παρόν, το REST API δεν επιστρέφει μια κατάσταση, επομένως πρέπει να κάνουμε βρόχο και να ελέγξουμε για τη δημιουργία της βάσης δεδομένων. Μετά τη δημιουργία της βάσης δεδομένων, χρησιμοποιείται η SQLCMD για τη δημιουργία ορισμένων αντικειμένων και, στη συνέχεια, το ερώτημα για την ύπαρξή τους. Τέλος, διαγράφουμε τη βάση δεδομένων.
Στην ακόλουθη δέσμη ενεργειών, αντικαταστήστε <your workspace id> το με το αναγνωριστικό χώρου εργασίας Fabric σας. Μπορείτε να βρείτε εύκολα το αναγνωριστικό ενός χώρου εργασίας στη διεύθυνση URL, είναι η μοναδική συμβολοσειρά μέσα σε δύο / χαρακτήρες μετά /groups/ από το παράθυρο του προγράμματος περιήγησης. Για παράδειγμα, 11aa111-a11a-1111-1abc-aa1111aaaa στο https://fabric.microsoft.com/groups/11aa111-a11a-1111-1abc-aa1111aaaa/.
Αυτή η δέσμη ενεργειών παρουσιάζει τα εξής:
- Ανακτήστε ένα διακριτικό πρόσβασης χρησιμοποιώντας Get-AzAccessToken και μετατρέψτε το από μια ασφαλή συμβολοσειρά. Εάν χρησιμοποιείτε το PowerShell 7, το ConvertFrom-SecureString είναι επίσης μια επιλογή.
- Δημιουργήστε μια νέα βάση δεδομένων SQL χρησιμοποιώντας το Items - Δημιουργία API στοιχείου.
- Παράθεση όλων των βάσεων δεδομένων SQL σε έναν χώρο εργασίας Fabric.
- Συνδεθείτε στη βάση δεδομένων με SQLCMD για να εκτελέσετε μια δέσμη ενεργειών για να δημιουργήσετε ένα αντικείμενο.
- Διαγράψτε τη βάση δεδομένων χρησιμοποιώντας το Items - Διαγραφή API στοιχείου.
Import-Module Az.Accounts
az login
$workspaceid = '<your workspace id>'
$databaseid = $null
$headers = $null
$responseHeaders = $null
# 1. Get the access token and add it to the headers
$access_token = (Get-AzAccessToken -AsSecureString -ResourceUrl https://api.fabric.microsoft.com)
$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($access_token.Token)
try {
$headers = @{
Authorization = $access_token.Type + ' ' + ([System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr))
}
$access_token.UserId -match('^[^@]+') | Out-Null
# 2. Create the database and wait for it to be created.
$body = @{
displayName = $matches[0] + (Get-Date -Format "MMddyyyy")
type = "SQLDatabase"
description = "Created using public api"
}
$parameters = @{
Method="Post"
Headers=$headers
ContentType="application/json"
Body=($body | ConvertTo-Json)
Uri = 'https://api.fabric.microsoft.com/v1/workspaces/' + $workspaceid + '/items'
}
Invoke-RestMethod @parameters -ErrorAction Stop
$databases = (Invoke-RestMethod -Headers $headers -Uri https://api.fabric.microsoft.com/v1/workspaces/$($workspaceid)/SqlDatabases).value
$databaseid = $databases.Where({$_.displayName -eq $body.displayName}).id
While($databaseid -eq $null)
{
Write-Host 'Waiting on database create.'
Start-Sleep 30
$databases = (Invoke-RestMethod -Headers $headers -Uri https://api.fabric.microsoft.com/v1/workspaces/$($workspaceid)/SqlDatabases).value
$databaseid = $databases.Where({$_.displayName -eq $body.displayName}).id
}
# 3. List all SQL databases in a Fabric workspace
Write-Host 'Listing databases in workspace.'
Invoke-RestMethod -Headers $headers -Uri https://api.fabric.microsoft.com/v1/workspaces/$($workspaceid)/items?type=SQlDatabase | select -ExpandProperty Value | ft
$databaseProperties = (Invoke-RestMethod -Headers $headers -Uri https://api.fabric.microsoft.com/v1/workspaces/$($workspaceid)/SqlDatabases/$($databaseid) | select -ExpandProperty Properties)
#4. Connnect to the database and create a table
Write-Host 'Attempting to connect to the database.'
sqlcmd.exe -S $databaseProperties.ServerFqdn -d $databaseProperties.DatabaseName -G -Q 'create table test2
(
id int
);
insert into test2 values (1);
insert into test2 values (2);
insert into test2 values (3);
select * from test2;'
#5. Delete the database
$parameters = @{
Method="Delete"
Headers=$headers
ContentType="application/json"
Body=($body | ConvertTo-Json)
Uri = 'https://api.fabric.microsoft.com/v1/workspaces/' + $workspaceid + '/items/' + $databaseid
}
Invoke-RestMethod @parameters
Write-Output 'Cleaned up:' $body.displayName
} finally {
# The following lines ensure that sensitive data is not left in memory.
$headers = [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
$parameters = [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
}