다음을 통해 공유


Azure Functions에 대한 Mobile Apps 바인딩

참고 항목

Azure Mobile Apps 바인딩은 Azure Functions 1.x에서만 사용할 수 있습니다. Azure Functions 2.x 이상에서는 지원되지 않습니다.

이 문서에서는 Azure Functions에서 Azure Mobile Apps 바인딩을 사용하여 작업하는 방법을 설명합니다. Azure Functions는 Mobile Apps에 대한 입력 및 출력 바인딩을 지원합니다.

Mobile Apps 바인딩을 사용하면 모바일 앱에서 데이터 테이블을 읽고 업데이트할 수 있습니다.

패키지 - Functions 1.x

Mobile Apps 바인딩은 Microsoft.Azure.WebJobs.Extensions.MobileApps NuGet 패키지 버전 1.x에서 제공됩니다. 패키지의 소스 코드는 azure-webjobs-sdk-extensions GitHub 리포지토리에 있습니다.

다음 표에서는 각 개발 환경에서 출력 바인딩에 대한 지원을 추가하는 방법을 나열합니다.

개발 환경 Functions 1.x에서 지원을 추가하려면
로컬 개발: C# 클래스 라이브러리 패키지 설치
로컬 개발: C# 스크립트, JavaScript, F# 자동
포털 개발 자동

입력

Mobile Apps 입력 바인딩은 모바일 테이블 엔드포인트에서 레코드를 로드하여 함수에 전달합니다. C# 및 F# 함수에서 함수가 성공적으로 종료되면 레코드에 변경한 내용을 자동으로 다시 테이블에 전송합니다.

입력 - 예제

언어별 예제를 참조하세요.

다음 예제에서는 function.json 파일의 Mobile Apps 입력 바인딩 및 바인딩을 사용하는 C# 스크립트 함수 보여줍니다. 함수는 레코드 식별자가 있는 큐 메시지에 의해 트리거됩니다. 함수는 지정된 레코드를 읽고 해당 Text 속성을 수정합니다.

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"
    }
]
}

구성 섹션에서는 이러한 속성을 설명합니다.

C# 스크립트 코드는 다음과 같습니다.

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

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

입력 - 특성

C# 클래스 라이브러리에서 MobileTable 특성을 사용합니다.

구성할 수 있는 특성 속성에 대한 자세한 내용은 다음 구성 섹션을 참조하세요.

입력 - 구성

다음 표에서는 function.json 파일 및 MobileTable 특성에 설정된 바인딩 구성 속성을 설명합니다.

function.json 속성 특성 속성 설명
type 해당 없음 "mobileTable"로 설정해야 합니다.
direction 해당 없음 "in"으로 설정해야 합니다.
이름 해당 없음 함수 서명의 입력 매개 변수 이름입니다.
tableName TableName 모바일 앱의 데이터 테이블 이름
id ID 검색할 레코드의 식별자입니다. 정적이거나 함수를 호출하는 트리거를 기반으로 할 수 있습니다. 예를 들어 함수 "id": "{queueTrigger}" 에 큐 트리거를 사용하는 경우 검색할 레코드 ID로 큐 메시지의 문자열 값을 사용합니다.
connection Connection 모바일 앱의 URL이 있는 앱 설정의 이름입니다. 함수는 이 URL을 사용하여 모바일 앱에 대해 필요한 REST 작업을 생성합니다. 모바일 앱의 URL이 포함된 앱 설정을 함수 앱에 만든 다음 입력 바인딩의 속성에서 connection 앱 설정의 이름을 지정합니다. URL은 다음과 같습니다 https://<appname>.azurewebsites.net.
apiKey ApiKey 모바일 앱의 API 키가 있는 앱 설정의 이름입니다. Node.js 모바일 앱에서 API 키를 구현하거나 .NET 모바일 앱에서 API 키를 구현하는 경우 API 키를 제공합니다. 키를 제공하려면 API 키가 포함된 함수 앱의 앱 설정을 만단 다음 apiKey 속성을 앱 설정의 이름과 함께 입력 바인딩에 추가합니다.

로컬에서 개발하는 경우 Values 컬렉션의 local.settings.json 파일에 애플리케이션 설정을 추가합니다.

Important

API 키를 모바일 앱 클라이언트와 공유하지 마십시오. Azure Functions와 같은 서비스 쪽 클라이언트에만 안전하게 배포해야 합니다. Azure Functions는 연결 정보 및 API 키를 앱 설정으로 저장하므로 소스 제어 리포지토리에 체크 인되지 않습니다. 이는 사용자의 중요한 정보를 보호합니다.

입력 - 사용

C# 함수에서 지정된 ID가 있는 레코드를 찾으면 명명된 JObject 매개 변수로 전달됩니다. 레코드를 찾을 수 없으면 매개 변수 값은 .입니다 null.

JavaScript 함수에서 레코드는 개체에 context.bindings.<name> 전달됩니다. 레코드를 찾을 수 없으면 매개 변수 값은 .입니다 null.

C# 및 F# 함수에서 입력 레코드(입력 매개 변수)에 대한 변경 내용은 함수가 성공적으로 종료되면 자동으로 테이블로 다시 전송됩니다. JavaScript 함수에서는 레코드를 수정할 수 없습니다.

출력

Mobile Apps 출력 바인딩을 사용하여 Mobile Apps 테이블에 새 레코드를 작성합니다.

출력 - 예제

다음 예제에서는 큐 메시지에 의해 트리거되고 모바일 앱 테이블에 레코드를 만드는 C# 함수를 보여줍니다.

[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}" };
}

출력 - 특성

C# 클래스 라이브러리에서 MobileTable 특성을 사용합니다.

구성할 수 있는 특성 속성에 대한 자세한 내용은 출력 - 구성을 참조하세요. MobileTable 다음은 메서드 서명의 특성 예제입니다.

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

출력 - 구성

다음 표에서는 function.json 파일 및 MobileTable 특성에 설정된 바인딩 구성 속성을 설명합니다.

function.json 속성 특성 속성 설명
type 해당 없음 "mobileTable"로 설정해야 합니다.
direction 해당 없음 "out"으로 설정해야 합니다.
이름 해당 없음 함수 서명의 출력 매개 변수 이름입니다.
tableName TableName 모바일 앱의 데이터 테이블 이름
connection MobileAppUriSetting 모바일 앱의 URL이 있는 앱 설정의 이름입니다. 함수는 이 URL을 사용하여 모바일 앱에 대해 필요한 REST 작업을 생성합니다. 모바일 앱의 URL이 포함된 앱 설정을 함수 앱에 만든 다음 입력 바인딩의 속성에서 connection 앱 설정의 이름을 지정합니다. URL은 다음과 같습니다 https://<appname>.azurewebsites.net.
apiKey ApiKeySetting 모바일 앱의 API 키가 있는 앱 설정의 이름입니다. Node.js 모바일 앱 백 엔드에서 API 키를 구현하거나 .NET 모바일 앱 백 엔드에서 API 키를 구현하는 경우 API 키를 제공합니다. 키를 제공하려면 API 키가 포함된 함수 앱의 앱 설정을 만단 다음 apiKey 속성을 앱 설정의 이름과 함께 입력 바인딩에 추가합니다.

로컬에서 개발하는 경우 Values 컬렉션의 local.settings.json 파일에 애플리케이션 설정을 추가합니다.

Important

API 키를 모바일 앱 클라이언트와 공유하지 마십시오. Azure Functions와 같은 서비스 쪽 클라이언트에만 안전하게 배포해야 합니다. Azure Functions는 연결 정보 및 API 키를 앱 설정으로 저장하므로 소스 제어 리포지토리에 체크 인되지 않습니다. 이는 사용자의 중요한 정보를 보호합니다.

출력 - 사용

C# 스크립트 함수에서 형식 out object 의 명명된 출력 매개 변수를 사용하여 출력 레코드에 액세스합니다. C# 클래스 라이브러리에서 특성은 MobileTable 다음 형식과 함께 사용할 수 있습니다.

  • TJObject 또는 public string Id 속성이 있는 type인 경우, ICollector<T> 또는 IAsyncCollector<T>.
  • out JObject
  • out T 또는 out T[]속성이 있는 모든 Type이 있는 위치 T 입니다 public string Id .

Node.js 함수에서 context.bindings.<name>을 사용하여 출력 레코드에 액세스합니다.

다음 단계