[IOS] AWS Lambda 함수 사용 방법

AWSLambdaInvoker는 AWS Mobile SDK의 일부로서, iOS 애플리케이션에서 AWS Lambda 함수를 호출하기 위해 사용되는 클래스입니다. 이를 사용하여 Lambda 함수를 호출하고 결과를 처리할 수 있습니다. 아래는 AWSLambdaInvoker를 사용하는 간단한 예제 코드입니다.

  1. AWS Mobile SDK 설치

먼저, AWS Mobile SDK를 프로젝트에 추가해야 합니다. 이를 위해 Podfile에 다음과 같이 추가합니다:

pod 'AWSLambda'
pod 'AWSMobileClient'` 

그리고 터미널에서 pod install을 실행하여 팟을 설치합니다.

  1. AWS 초기화

앱을 시작할 때 AWS 서비스를 초기화해야 합니다. AppDelegate.swift 파일에서 다음과 같이 AWS 초기화 코드를 추가합니다:

import AWSMobileClient
import AWSCore

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // AWS 초기화
    let credentialsProvider = AWSMobileClient.default().getCredentialsProvider()
    let configuration = AWSServiceConfiguration(
        region: .USEast1, // Lambda 함수가 있는 리전으로 변경하세요.
        credentialsProvider: credentialsProvider
    )
    AWSServiceManager.default().defaultServiceConfiguration = configuration
    
    return true
}
  1. AWS Lambda 함수 호출

Lambda 함수를 호출하는 코드를 추가합니다. 이 예제에서는 호출된 Lambda 함수의 결과를 출력하는 것으로 가정합니다.

import AWSLambda

func invokeLambdaFunction() {
    let lambdaInvoker = AWSLambdaInvoker.default()

    let functionName = "YourLambdaFunctionName" // 호출할 Lambda 함수 이름
    let requestPayload = ["key": "value"] // Lambda 함수로 전달할 데이터

    lambdaInvoker.invokeFunction(functionName, jsonObject: requestPayload)
        .continueWith { (task) -> Any? in
            if let error = task.error {
                print("Error: \(error.localizedDescription)")
            }
            if let result = task.result as? [String: Any] {
                print("Lambda Result: \(result)")
            }
            return nil
        }
}

위 코드에서 YourLambdaFunctionName에 호출할 Lambda 함수의 이름을 입력하고, requestPayload에 함수에 전달할 데이터를 입력합니다.

  1. Lambda 함수의 결과 처리

Lambda 함수의 결과를 위의 코드에서 print("Lambda Result: \(result)") 부분을 수정하여 원하는대로 처리할 수 있습니다.

이렇게하면 AWS Lambda 함수를 iOS 애플리케이션에서 호출하는 데 사용할 수 있는 간단한 예제가 완성됩니다. 필요에 따라 코드를 수정하여 더 복잡한 시나리오를 다룰 수 있습니다. AWS 문서 및 AWS Mobile SDK의 예제 코드도 참조할 것을 권장합니다.