Pengikatan Mobile Apps untuk Azure Functions

Catatan

Pengikatan Azure Mobile Apps hanya tersedia untuk Azure Functions 1.x. Mereka tidak didukung di Azure Functions 2.x dan yang lebih tinggi.

Artikel ini menjelaskan cara bekerja dengan pengikatanAzure Mobile Apps di Azure Functions. Azure Functions mendukung pengikatan input dan output untuk Mobile Apps.

Pengikatan Mobile Apps memungkinkan Anda membaca dan memperbarui tabel data di aplikasi ponsel.

Paket - Functions 1.x

Pengikatan Mobile Apps diberikan dalam paket NuGet Microsoft.Azure.WebJobs.Extensions.MobileApps, versi 1.x. Kode sumber untuk paket berada di repositori GitHub azure-webjobs-sdk-extensions.

Tabel berikut memberi tahu cara menambahkan dukungan untuk pengikatan ini di setiap lingkungan pengembangan.

Lingkungan pengembangan Untuk menambahkan dukungan di
Functions 1.x
Pengembangan lokal - pustaka kelas C# Instal paket
Pengembangan lokal - skrip C#, JavaScript, F# Otomatis
Pengembangan portal Otomatis

Input

Pengikatan input Mobile Apps memuat catatan dari titik akhir tabel seluler dan meneruskannya ke fungsi Anda. Dalam fungsi C# dan F#, setiap perubahan yang dibuat pada catatan secara otomatis dikirim kembali ke tabel saat fungsi berhasil keluar.

Input - contoh

Lihat contoh khusus bahasa:

Contoh berikut menunjukkan pengikatan input Mobile Apps di file function.json dan fungsi skrip C# yang menggunakan pengikatan. Fungsi ini dipicu oleh pesan antrean yang memiliki pengidentifikasi catatan. Fungsi ini membaca catatan yang ditentukan dan memodifikasi properti Text.

Berikut data pengikatan dalam file function.json:

{
"bindings": [
    {
        "name": "myQueueItem",
        "queueName": "myqueue-items",
        "connection": "",
        "type": "queueTrigger",
        "direction": "in"
    },
    {
        "name": "record",
        "type": "mobileTable",
        "tableName": "MyTable",
        "id": "{queueTrigger}",
        "connection": "My_MobileApp_Url",
        "apiKey": "My_MobileApp_Key",
        "direction": "in"
    }
]
}

Bagian konfigurasi menjelaskan properti ini.

Berikut kode skrip C#:

#r "Newtonsoft.Json"    
using Newtonsoft.Json.Linq;

public static void Run(string myQueueItem, JObject record)
{
    if (record != null)
    {
        record["Text"] = "This has changed.";
    }    
}

Input - atribut

Di pustaka kelas C#, gunakan atribut MobileTable.

Untuk informasi tentang properti atribut yang dapat Anda konfigurasikan, lihat bagian konfigurasi berikut.

Input - konfigurasi

Tabel berikut menjelaskan properti konfigurasi pengikatan yang Anda tetapkan di file function.json dan MobileTable atributnya.

Properti function.json Properti atribut Deskripsi
jenis n/a Harus diatur ke "mobileTable"
arah n/a Harus diatur ke "masuk"
nama n/a Nama parameter input dalam tanda tangan fungsi.
tableName TableName Nama tabel data aplikasi ponsel
id Id Pengidentifikasi catatan yang akan diambil. Bisa statis atau berdasarkan pemicu yang memanggil fungsi. Misalnya, jika menggunakan pemicu antrean untuk fungsi Anda, maka "id": "{queueTrigger}" menggunakan nilai string pesan antrean sebagai ID catatan yang akan diambil.
koneksi Koneksi Nama pengaturan aplikasi yang memiliki URL aplikasi ponsel. Fungsi ini menggunakan URL ini untuk menyusun operasi REST yang diperlukan terhadap aplikasi ponsel Anda. Buat pengaturan aplikasi di aplikasi fungsi yang berisi URL aplikasi ponsel, kemudian tentukan nama pengaturan aplikasi di properti connection dalam pengikatan input Anda. URL terlihat seperti https://<appname>.azurewebsites.net.
apiKey ApiKey Nama pengaturan aplikasi yang memiliki kunci API aplikasi ponsel Anda. Berikan kunci API jika Anda mengimplementasikan kunci API di aplikasi ponsel Node.js atau mengimplementasikan kunci API di aplikasi ponsel.NET Anda. Untuk memberikan kunci, buat pengaturan aplikasi di aplikasi fungsi Anda yang berisi kunci API, kemudian tambahkan properti apiKey di pengikatan input Anda dengan nama pengaturan aplikasi.

Ketika Anda mengembangkan secara lokal, tambahkan pengaturan aplikasi di file local.settings.json dalam koleksi Values.

Penting

Jangan bagikan kunci API dengan klien aplikasi ponsel Anda. Seharusnya hanya didistribusikan dengan aman ke klien sisi layanan, seperti Azure Functions. Azure Functions menyimpan informasi koneksi dan kunci API Anda sebagai pengaturan aplikasi sehingga mereka tidak memeriksa ke dalam repositori kontrol sumber Anda. Ini melindungi informasi sensitif Anda.

Input - penggunaan

Dalam fungsi C#, saat catatan dengan ID yang ditentukan ditemukan, catatan tersebut diteruskan ke parameter JObject bernama. Saat catatan tidak ditemukan, nilai parameternya adalah null.

Dalam fungsi JavaScript, catatan diteruskan ke objek context.bindings.<name>. Saat catatan tidak ditemukan, nilai parameternya adalah null.

Dalam fungsi C# dan F#, perubahan apa pun yang Anda buat pada catatan input (parameter input) secara otomatis dikirim kembali ke tabel saat fungsi berhasil keluar. Anda tidak dapat memodifikasi catatan dalam fungsi JavaScript.

Output

Gunakan pengikatan output Mobile Apps untuk menulis catatan baru ke tabel Mobile Apps.

Output- contoh

Contoh berikut menunjukkan fungsi C# yang dipicu oleh pesan antrean dan membuat catatan dalam tabel aplikasi ponsel.

[FunctionName("MobileAppsOutput")]        
[return: MobileTable(ApiKeySetting = "MyMobileAppKey", TableName = "MyTable", MobileAppUriSetting = "MyMobileAppUri")]
public static object Run(
    [QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string myQueueItem,
    TraceWriter log)
{
    return new { Text = $"I'm running in a C# function! {myQueueItem}" };
}

Output - atribut

Di pustaka kelas C#, gunakan atribut MobileTable.

Untuk informasi tentang properti atribut yang dapat Anda konfigurasikan, lihat Output - konfigurasi. Berikut contoh atribut MobileTable dalam tanda tangan metode:

[FunctionName("MobileAppsOutput")]        
[return: MobileTable(ApiKeySetting = "MyMobileAppKey", TableName = "MyTable", MobileAppUriSetting = "MyMobileAppUri")]
public static object Run(
    [QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string myQueueItem,
    TraceWriter log)
{
    ...
}

Output- konfigurasi

Tabel berikut menjelaskan properti konfigurasi pengikatan yang Anda tetapkan di file function.json dan MobileTable atributnya.

Properti function.json Properti atribut Deskripsi
jenis n/a Harus diatur ke "mobileTable"
arah n/a Harus diatur ke "keluar"
nama n/a Nama parameter output dalam tanda tangan fungsi.
tableName TableName Nama tabel data aplikasi ponsel
koneksi MobileAppUriSetting Nama pengaturan aplikasi yang memiliki URL aplikasi ponsel. Fungsi ini menggunakan URL ini untuk menyusun operasi REST yang diperlukan terhadap aplikasi ponsel Anda. Buat pengaturan aplikasi di aplikasi fungsi yang berisi URL aplikasi ponsel, kemudian tentukan nama pengaturan aplikasi di properti connection dalam pengikatan input Anda. URL terlihat seperti https://<appname>.azurewebsites.net.
apiKey ApiKeySetting Nama pengaturan aplikasi yang memiliki kunci API aplikasi ponsel Anda. Berikan kunci API jika Anda mengimplementasikan kunci API di backend aplikasi ponsel Node.js atau mengimplementasikan kunci API di backend aplikasi ponsel.NET Anda. Untuk memberikan kunci, buat pengaturan aplikasi di aplikasi fungsi Anda yang berisi kunci API, kemudian tambahkan properti apiKey di pengikatan input Anda dengan nama pengaturan aplikasi.

Ketika Anda mengembangkan secara lokal, tambahkan pengaturan aplikasi di file local.settings.json dalam koleksi Values.

Penting

Jangan bagikan kunci API dengan klien aplikasi ponsel Anda. Seharusnya hanya didistribusikan dengan aman ke klien sisi layanan, seperti Azure Functions. Azure Functions menyimpan informasi koneksi dan kunci API Anda sebagai pengaturan aplikasi sehingga mereka tidak memeriksa ke dalam repositori kontrol sumber Anda. Ini melindungi informasi sensitif Anda.

Output- penggunaan

Dalam fungsi skrip C#, gunakan parameter jenis output bernama out object untuk mengakses catatan output. Di pustaka kelas C#, atribut MobileTable dapat digunakan dengan salah satu jenis berikut:

  • ICollector<T> atau IAsyncCollector<T>, jika T adalah JObject atau jenis apa pun dengan properti public string Id.
  • out JObject
  • out T atau out T[], jika T adalah Jenis apa pun dengan properti public string Id.

Dalam fungsi Node.js, gunakan context.bindings.<name> untuk mengakses catatan output.

Langkah berikutnya