Latihan - Mengirim permintaan melalui koneksi hibrid Azure Relay

Selesai

Kode di aplikasi klien harus terhubung dan diautentikasi dengan Azure Relay sebelum aplikasi dapat mengirim dan menerima pesan.

Anda sudah membuat relai untuk layanan pemeriksaan kredit Anda. Sekarang Anda ingin mengaktifkan komponen pendengar lokal untuk terhubung ke relai agar dapat menerima permintaan dan mengirim respons. Anda juga ingin menyelesaikan kode di aplikasi klien, yang mengirim permintaan pemeriksaan kredit ke relai dan menunggu respons. Dengan menghubungkan ke layanan relai melalui cara ini, Anda mengekspos layanan ke komponen di cloud, tanpa harus membuka port di firewall lokal. Pendekatan ini membantu melindungi layanan pemeriksaan kredit.

Di unit ini, Anda menulis kode Azure Relay di aplikasi pengirim dan pendengar.

Mengkloning aplikasi sampel

Anda memiliki dua aplikasi baris perintah yang mengirim pesan dan mendengarkan pesan dari relai yang Anda buat sebelumnya. Sebagian besar kode sudah selesai, tetapi Anda harus menambahkan kode Azure Relay ke aplikasi. Mari kita mulai dengan mendapatkan kode:

  • Di Azure Cloud Shell di sebelah kanan, gunakan git untuk mengkloning aplikasi sampel:

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

Mengonfigurasi pendengar

Pertama, mari kita pastikan aplikasi pendengar dapat terhubung ke relai. Aplikasi ini memerlukan alamat namespace, nama koneksi hibrid, nama kunci, dan kunci koneksi utama, yang Anda simpan sebelumnya dalam file teks.

  1. Ubah direktori menjadi kode pemula untuk aplikasi pendengar, lalu mulai editor kode:

    cd ~/mslearn-expose-hybrid-services-with-azure-relay/starter/listener
    code Program.cs
    
  2. Dalam kode, cari komentar "// Detail Azure Relay". Segera setelah komentar, tambahkan kode ini:

    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. Dalam kode, ganti <namespace> dengan nama relai yang Anda buat sebelumnya, lalu salin kunci dari file AccessKeys.txt yang disimpan dan tempelkan untuk mengganti <your key here>.

Aplikasi pendengar sekarang memiliki semua informasi yang diperlukan untuk terhubung dan diautentikasi dengan relai di Azure.

Merespons permintaan di aplikasi pendengar

Anda harus menambahkan layanan pemeriksaan kredit ke relai sebagai pendengar, sehingga menerima permintaan yang dikirim ke relai. Kode harus mengonfigurasi pendengar untuk berlangganan kejadian, memproses permintaan apa pun, dan merumuskan respons. Layanan pemeriksaan kredit, misalnya, harus mendapatkan nama dari permintaan, lalu merespons dengan riwayat kredit untuk orang tersebut. Setelah menyiapkan pendengar, hubungi metode OpenAsync() untuk mulai mendengarkan permintaan.

  1. Dalam kode file Program.cs untuk aplikasi pendengar, cari komentar "// Berlangganan kejadian status". Segera setelah komentar, tambahkan kode ini:

    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. Cari komentar "// Dapatkan nama dari permintaan". Segera setelah komentar, tambahkan kode ini:

    TextReader tr = new StreamReader(context.Request.InputStream);
    String requestedName = tr.ReadToEnd();
    Console.WriteLine("A request was received to check credit for: " + requestedName);
    
  3. Cari komentar "// Rumuskan dan kirim respons". Segera setelah komentar, tambahkan kode ini:

    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. Cari komentar "// Buka pendengar". Segera setelah komentar, tambahkan kode ini:

    await listener.OpenAsync();
    Console.WriteLine("Server listening");
    
  5. Untuk menyimpan perubahan, pilih Ctrl+S, lalu pilih Ctrl+Q untuk menutup editor.

Mengonfigurasi aplikasi pengirim

Aplikasi yang ingin memeriksa catatan kredit pelanggan mengirim permintaan ke relai, yang meneruskannya ke pendengar. Sedangkan untuk pendengar, Anda mengonfigurasi aplikasi pengirim dengan detail koneksi untuk relai.

  1. Di Cloud Shell, ubah direktori menjadi kode starter untuk aplikasi pengirim, lalu mulai editor kode:

    cd ~/mslearn-expose-hybrid-services-with-azure-relay/starter/sender
    code Program.cs
    
  2. Di jendela FILE, pilih Program.cs.

  3. Cari komentar "// Detail Azure Relay". Segera setelah komentar, tambahkan kode ini:

    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. Dalam kode, ganti <namespace> dengan nama relai yang Anda buat sebelumnya, lalu salin kunci dari file AccessKeys.txt yang Anda simpan sebelumnya dan tempelkan untuk mengganti <your key here>.

Tip

Jangan lupa untuk menghapus AccessKeys.txt. Dalam kode produksi, simpan nilai-nilai ini di lokasi yang aman, seperti Azure Key Vault.

Aplikasi pendengar sekarang memiliki semua informasi yang diperlukan untuk terhubung dan diautentikasi dengan relai di Azure.

Mengirim permintaan dari aplikasi pengirim

Untuk meminta pemeriksaan kredit, aplikasi pengirim mengirimkan nama dalam permintaan HTTP GET ke relai. Mari kita tulis kode yang merumuskan permintaan tersebut.

  1. Dalam file Program.cs untuk aplikasi pengirim, cari komentar "// Buat HttpClient dan rumuskan permintaan". Segera setelah komentar, tambahkan kode ini:

    var client = new HttpClient();
    var request = new HttpRequestMessage()
    {
        RequestUri = uri,
        Method = HttpMethod.Get,
        Content = new StringContent(name)
    };
    request.Headers.Add("ServiceBusAuthorization", token);
    
  2. Cari komentar "// Kirim permintaan". Segera setelah komentar, tambahkan kode ini:

    var response = await client.SendAsync(request);
    
  3. Cari komentar "// Tampilkan hasil". Segera setelah komentar, tambahkan kode ini:

    Console.WriteLine(await response.Content.ReadAsStringAsync());
    
  4. Untuk menyimpan perubahan, pilih Ctrl+S, lalu pilih Ctrl+Q untuk menutup editor.

Memulai aplikasi

Aplikasi pendengar dan pengirim selesai. Kini Anda dapat menjalankan kedua aplikasi, menggunakan pengirim untuk meminta pemeriksaan kredit, lalu mengamati hasilnya di kedua aplikasi. Untuk menjalankan kedua aplikasi sekaligus, gunakan instans kedua Cloud Shell untuk menghosting pengirim.

  1. Di Cloud Shell, untuk membuat dan menjalankan aplikasi pendengar, jalankan perintah berikut:

    cd ~/mslearn-expose-hybrid-services-with-azure-relay/starter/listener
    dotnet run
    
  2. Ketika Anda menerima pesan "Server mendengarkan", Anda dapat memulai pengirim. Buka instans baru browser, dan buka halaman Selamat Datang di Azure Cloud Shell.

  3. Jika Anda diminta memilih direktori, pilih Microsoft Learn Sandbox.

  4. Untuk membuat dan menjalankan aplikasi pengirim, jalankan perintah berikut:

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

Menguji aplikasi

Setelah aplikasi berjalan di instans terpisah dari Cloud Shell, mari kita uji dengan memeriksa catatan kredit.

  1. Atur jendela browser agar Anda dapat melihat keduanya.

  2. Di aplikasi pengirim, ketikkan nama, lalu tekan Enter.

    Di aplikasi pendengar, nama yang Anda masukkan akan muncul.

    Di aplikasi pengirim, balasan dari pendengar muncul dengan hasil pemeriksaan kredit.

  3. Untuk keluar dari aplikasi pengirim, tekan Enter. Anda dapat menjalankan kembali aplikasi untuk memeriksa nama lain. Setelah selesai, tutup jendela browser.

  4. Untuk keluar dari aplikasi pendengar, pilih Ctrl+C.