Ist es überhaupt möglich, einen Funktionsschlüssel für eine gerade erstellte azure-Funktion aus dem Powershell-Skript zu erstellen? Ich habe eine Release-Pipeline, um die gesamte Umgebung für die azurblaue Funktion zu erstellen, und es funktioniert gut, aber ein Teil fehlt mir ist eine benutzerdefinierte Funktionstaste für die Funktion. Ich möchte den Standardschlüssel nicht verwenden. Ich könnte den neuen Schlüssel im Portal erstellen, aber ich muss es aus dem Skript machen.Funktionstaste für Azure-Funktion aus Powershell erstellen
Antwort
Momentan gibt es kein solches Power Shell-Cmdlet, aber Sie könnten Function Api verwenden.
Erzeugt oder aktualisiert der Schlüssel in der angegebenen Ressource mit einem Autoschlüssel erzeugt:
POST /admin/functions/{functionname}/keys/{keyname}
Verwenden der folgenden Power Shell API zu verwenden.
$tenant = ""
$clientId = ""
$clientSecret = ""
$subscriptionId = ""
$body = @{
"grant_type"="client_credentials";
"client_id"=$clientId;
"client_secret"=$clientSecret;
"resource"="https://management.azure.com/"
}
$resourceGroup="shuiapp"
$name="shuifunction"
$authInfo = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenant/oauth2/token" -Body $body -Method Post -Headers @{"Content-Type"="application/x-www-form-urlencoded"}
$publishData = Invoke-RestMethod -Uri "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.Web/sites/$name/publishxml?api-version=2016-08-01" -Method Post -Headers @{"Authorization"="Bearer $($authInfo.access_token)"}
$userName = $publishData.publishData.publishProfile[0].userName
$password = $publishData.publishData.publishProfile[0].userPWD
$apiBaseUrl = "https://$name.scm.azurewebsites.net/api"
$siteBaseUrl = "https://$name.azurewebsites.net"
# For authenticating to Kudu
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))
# Call Kudu /api/functions/admin/token to get a JWT that can be used with the Functions Key API
$jwt = Invoke-RestMethod -Uri "$apiBaseUrl/functions/admin/token" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method GET
# Call Functions Key API to get the master key
$x = Invoke-RestMethod -Uri "$siteBaseUrl/admin/host/systemkeys/_master" -Headers @{Authorization=("Bearer {0}" -f $jwt)} -Method GET
$masterKey = $x.value
# create a custom function key
$functionname="HttpTriggerPowerShell1"
$v=Invoke-RestMethod -Uri "$siteBaseUrl/admin/functions/$functionname/keys/shui" -Headers @{Authorization=("Bearer {0}" -f $jwt)} -Method POST
$v.value
# get function key value
$x = Invoke-RestMethod -Uri "$siteBaseUrl/admin/functions/HttpTriggerPowerShell1/keys" -Headers @{Authorization=("Bearer {0}" -f $jwt)} -Method GET
Hinweis: Sie müssen ein neues Service-Haupt erstellen und contributor
Rolle geben. Bitte beachten Sie die official document.
@Y verschoben. A. Funktioniert es jetzt? Bitte lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen. –
Entschuldigung, dass Sie noch nicht geantwortet haben. Ich habe versucht, eines der registrierten Apps clientId und clientsecretId zu verwenden. Es funktioniert nicht so weit: Der Remote-Server hat einen Fehler zurückgegeben: (403) Verboten. –
Also meine Frage ist, ob ich registrierte App Principal überhaupt verwenden kann? Oder muss ich einen Benutzer in AD erstellen? –
- 1. Javascript Funktionstaste
- 2. Lisp Art Funktionstaste
- 3. onclick Funktionstaste ändern Leinwand
- 4. Handling Funktionstaste drücken
- 5. Erstellen Sie eine neue Tabelle mit onclick Funktionstaste
- 6. Powershell erstellen Objekt aus mehreren Dateien
- 7. Erstellen Sie Powershell-Alias für. $ Profil
- 8. Swing: Einstellen einer Funktionstaste (F2) als Beschleuniger
- 9. PowerShell-Variable für ein Verzeichnis erstellen
- 10. Virtueller Tastendruck auf Funktionstaste einer Gaming-Tastatur
- 11. Powershell Session-Objekt erstellen
- 12. Erstellen eines Powershell-Wörterbuchs
- 13. Powershell Erstellen eines Protokolls
- 14. Was bewirkt eine Kombination von "Funktionstaste + Einfügetaste"?
- 15. PowerShell zum Erstellen eines benutzerdefinierten Objekts aus einem vorhandenen Objekt
- 16. Konto erstellen und sich bei MSOL rein aus Powershell anmelden
- 17. Mit Powershell benutzerdefinierte Installationszeichenfolgen aus der CSV-Eingabe erstellen
- 18. Erstellen von Byte [] in PowerShell
- 19. Erstellen einer C# -Projektvorlage aus einer bestehenden in Powershell/MSBuild
- 20. Erstellen von Powershell-Modulen aus mehreren Dateien, Referenzieren mit Modul
- 21. Benutzerdefinierte PSObject PowerShell 2.0 erstellen
- 22. Erstellen von benutzerdefinierten PowerShell-Objekten
- 23. Erstellen PowerShell if-Anweisung für True im Laufe der Zeit
- 24. onclick Build Event zum Drücken Funktionstaste auf Editierbares Feld
- 25. Erstellen einer Webfarm in PowerShell
- 26. Powershell - aus String entfernen
- 27. Powershell WPF Navigationsleiste ContextMenuStrip erstellen?
- 28. Hash-Array in PowerShell erstellen
- 29. erstellen Vagrant Datei über Powershell
- 30. Erstellen mehrerer Ordner mit Powershell
Es wäre besser, wenn Sie weitere Details hinzufügen und was Sie bis jetzt getan haben. –
Zur Frage –