Cvičení – odesílání žádostí přes hybridní připojení Azure Relay

Dokončeno

Než budou aplikace moci odesílat a přijímat zprávy, musí se kód v klientských aplikacích připojit k Azure Relay a pomocí této služby se ověřit.

Pro službu kontroly úvěru jste vytvořili přenosovou službu. Nyní chcete umožnit připojení komponenty místního naslouchacího procesu k této službě, aby mohl naslouchací proces přijímat žádosti a odesílat odpovědi. Chcete také dokončit kód v klientské aplikaci, který odesílá žádosti o ověření kredibility do přenosové služby a čeká na odpovědi. Tímto připojením k přenosové službě zveřejníte službu komponentám v cloudu, aniž byste museli otevírat port na místní bráně firewall. Tento přístup pomáhá chránit službu kontroly úvěru.

V této lekci napíšete kód Azure Relay v aplikacích odesílatele i naslouchacího procesu.

Klonování ukázkových aplikací

Máte dvě aplikace příkazového řádku, které odesílají zprávy a poslouchají zprávy z přenosu, který jste vytvořili dříve. Většina kódu je dokončena, ale do aplikací musíte přidat kód Azure Relay. Začneme získáním kódu:

  • V Azure Cloud Shellu napravo naklonujte git ukázkové aplikace:

    git clone https://github.com/MicrosoftDocs/mslearn-expose-hybrid-services-with-azure-relay.git
    

Konfigurace aplikace naslouchacího procesu

Nejprve zkontrolujeme, že se aplikace naslouchacího procesu může připojit k přenosové službě. Aplikace potřebuje adresu oboru názvů, název hybridního připojení, název klíče a primární připojovací klíč, který jste dříve uložili do textového souboru.

  1. Změňte adresář na počáteční kód pro aplikaci naslouchacího procesu a spusťte editor kódu:

    cd ~/mslearn-expose-hybrid-services-with-azure-relay/starter/listener
    code Program.cs
    
  2. V kódu vyhledejte komentář // Details of the Azure Relay (// Podrobnosti o Azure Relay). Přímo za komentář přidejte tento kód:

    private const string RelayNamespace = "<namespace>.servicebus.windows.net";
    private const string ConnectionName = "creditcheckconnection";
    private const string KeyName = "RootManageSharedAccessKey";
    private const string Key = "<your key here>";
    
  3. V kódu nahraďte <namespace> názvem přenosu, který jste vytvořili dříve, a pak zkopírujte klíč z uloženého souboru AccessKeys.txt a vložte ho k nahrazení <your key here>.

Aplikace naslouchacího procesu má teď všechny informace, které potřebuje k připojení a ověření pomocí přenosové služby v Azure.

Odpovědi na žádosti v aplikaci naslouchacího procesu

Službu kontroly úvěru musíte do své přenosové služby přidat jako naslouchací proces, aby mohla přijímat žádosti odesílané do přenosové služby. Váš kód musí nakonfigurovat naslouchací proces tak, aby se přihlásil k odběru událostí, zpracovával všechny žádosti a formuloval odpovědi. Služba kontroly úvěru musí například získat ze žádosti název a potom v odpovědi odeslat úvěrovou historii dané osoby. Po nastavení naslouchacího procesu zavolejte metodu OpenAsync() a spusťte naslouchání žádostem.

  1. V souboru kódu Program.cs aplikace naslouchacího procesu vyhledejte komentář // Subscribe to the status events (// Přihlášení odběru událostí stavu). Přímo za komentář přidejte tento kód:

    listener.Connecting += (o, e) => { Console.WriteLine("Connecting"); };
    listener.Offline += (o, e) => { Console.WriteLine("Credit check service is offline"); };
    listener.Online += (o, e) => { Console.WriteLine("Credit check service is online"); };
    
  2. Vyhledejte komentář // Obtain the name from the request (// Získání názvu ze žádosti). Přímo za komentář přidejte tento kód:

    TextReader tr = new StreamReader(context.Request.InputStream);
    String requestedName = tr.ReadToEnd();
    Console.WriteLine("A request was received to check credit for: " + requestedName);
    
  3. Vyhledejte komentář // Formulate and send the response (// Formulace a odeslání odpovědi). Přímo za komentář přidejte tento kód:

    context.Response.StatusCode = HttpStatusCode.OK;
    context.Response.StatusDescription = "Credit check successful";
    using (var sw = new StreamWriter(context.Response.OutputStream))
    {
        sw.WriteLine("Credit check for {0}: {1}", requestedName, creditStatuses[index]);
    }
    
  4. Vyhledejte komentář // Open the listener (Otevření naslouchacího procesu). Přímo za komentář přidejte tento kód:

    await listener.OpenAsync();
    Console.WriteLine("Server listening");
    
  5. Stisknutím Ctrl+S uložte změny a stisknutím Ctrl+Q zavřete editor.

Konfigurace aplikace odesílatele

Aplikace, které chtějí zkontrolovat úvěrové záznamy zákazníka, odešlou žádost do přenosové služby, která ji předá naslouchacímu procesu. Pokud jde o naslouchací proces, nakonfigurujete aplikaci odesílatele pomocí podrobností o připojení přenosové služby.

  1. V Cloud Shellu změňte adresář na počáteční kód aplikace odesílatele a spusťte editor kódu:

    cd ~/mslearn-expose-hybrid-services-with-azure-relay/starter/sender
    code Program.cs
    
  2. V okně SOUBORY vyberte Program.cs.

  3. Vyhledejte komentář // Details of the Azure Relay (// Podrobnosti o Azure Relay). Přímo za komentář přidejte tento kód:

    private const string RelayNamespace = "<namespace>.servicebus.windows.net";
    private const string ConnectionName = "creditcheckconnection";
    private const string KeyName = "RootManageSharedAccessKey";
    private const string Key = "<your key here>";
    
  4. V kódu nahraďte <namespace> názvem přenosu, který jste vytvořili dříve, a pak zkopírujte klíč ze souboru AccessKeys.txt , který jste si uložili dříve, a vložte ho k nahrazení <your key here>.

Tip

Nezapomeňte odstranit AccessKeys.txt. V produkčním kódu ponechte tyto hodnoty v zabezpečeném umístění, jako je Azure Key Vault.

Aplikace odesílatele má teď všechny informace, které potřebuje k připojení a ověření pomocí přenosové služby v Azure.

Odesílání žádostí z aplikace odesílatele

Pokud chce požádat o kontrolu úvěru, aplikace odesílatele odešle přenosové službě název v požadavku HTTP GET. My si napíšeme kód, který tuto žádost formuluje.

  1. V souboru kódu Program.cs aplikace odesílatele vyhledejte komentář // Create an HttpClient and formulate the request (//Vytvoření HttpClient a formulace žádosti). Přímo za komentář přidejte tento kód:

    var client = new HttpClient();
    var request = new HttpRequestMessage()
    {
        RequestUri = uri,
        Method = HttpMethod.Get,
        Content = new StringContent(name)
    };
    request.Headers.Add("ServiceBusAuthorization", token);
    
  2. Vyhledejte komentář // Send the request (//Odeslání žádosti). Přímo za komentář přidejte tento kód:

    var response = await client.SendAsync(request);
    
  3. Vyhledejte komentář // Display the result (// Zobrazení výsledku). Přímo za komentář přidejte tento kód:

    Console.WriteLine(await response.Content.ReadAsStringAsync());
    
  4. Stisknutím Ctrl+S uložte změny a stisknutím Ctrl+Q zavřete editor.

Spuštění aplikací

Aplikace naslouchacího procesu a odesílatele jsou hotové. Nyní můžete obě aplikace spustit. Z aplikace odesílatele odešlete žádost o kontrolu úvěru a podívejte se na výsledky v obou aplikacích. Pokud chcete spustit obě aplikace najednou, použijte druhou instanci Cloud Shellu k hostování odesílatele.

  1. Pokud chcete sestavit a spustit aplikaci odesílatele, spusťte v Cloud Shellu tyto příkazy:

    cd ~/mslearn-expose-hybrid-services-with-azure-relay/starter/listener
    dotnet run
    
  2. Když obdržíte zprávu, že server naslouchá, můžete spustit odesílatele. Otevřete novou instanci prohlížeče a přejděte na stránku Vítá vás Azure Cloud Shell.

  3. Pokud se zobrazí výzva k výběru adresáře, vyberte sandbox Microsoft Learn.

  4. Aplikaci sestavíte a spustíte pomocí těchto příkazů:

    cd ~/mslearn-expose-hybrid-services-with-azure-relay/starter/sender
    dotnet run
    

Testování aplikací

Nyní, když obě aplikace běží v samostatných instancích Cloud Shellu, otestujeme je tím, že pošleme žádost o kontrolu úvěrových záznamů.

  1. Srovnejte si okna prohlížeče tak, abyste viděli obě.

  2. V aplikaci odesílatele zadejte jméno a stiskněte Enter.

    V aplikaci naslouchacího procesu by se mělo zobrazit zadané jméno.

    V aplikaci odesílatele se zobrazí odpověď z naslouchacího procesu spolu s výsledkem kontroly úvěru.

  3. Aplikaci odesílatele ukončíte stisknutím klávesy Enter. Aplikaci můžete spustit znovu a zkontrolovat další jména. Až skončíte, zavřete okno prohlížeče.

  4. Aplikaci naslouchacího procesu ukončíte stisknutím Ctrl+C.