2017-04-08 14 views
3

Ich muss Sql-Datenbanken in einem Azure Sql-Server mithilfe von Möglichkeiten bereitstellen: die ARM-Vorlage und einen benutzerdefinierten Weg mit C# -Code. Es gibt eine ARM-Template-Funktion namens uniqueString(string), die einen Pseudozufalls-Hash einer gegebenen Zeichenfolge generiert. Es ist eine deterministische reine Funktion.Azure ARM uniqueString Funktionsnachahmung

Ich muss einen Weg finden, um das Verhalten dieser Funktion von meinem C# -Code genau nachzuahmen. Dh ich muss diese Funktion in meinen C# -Code kopieren.

Wo finde ich den Algorithmus der ARM API?

MSDN reference for uniqueString()

Antwort

1

fand ich einige Powershell-Code dies hier zu tun: https://blogs.technet.microsoft.com/389thoughts/2017/12/23/get-uniquestring-generate-unique-id-for-azure-deployments/

ich diesen Code in C# konvertiert:

public string GetUniqueString(string id, int length = 13) 
{ 
    string result = ""; 
    var buffer = System.Text.Encoding.UTF8.GetBytes(id); 
    var hashArray = new System.Security.Cryptography.SHA512Managed().ComputeHash(buffer); 
    for(int i = 1; i <= length; i++) 
    { 
     var b = hashArray[i]; 
     var c = Convert.ToChar((b % 26) + (byte)'a'); 
     result = result + c; 
    } 

    return result; 
} 
0

fand ich endlich eine Abhilfe. Ich habe eine sehr einfache ARM-Vorlage verwendet, deren Ziel es ist, nur das Ergebnis des Befehls uniqueString auszugeben. Dann hole ich diese Ausgabe in meinem C# -Code. Diese Lösung ist nicht wirklich die schnellste ;-), aber es funktioniert wie gewünscht.

Verwandte Themen