

이제 AWS Mobile SDK for Unity가에 포함됩니다 AWS SDK for .NET. 이 가이드에서는 Mobile SDK for Unity의 아카이브 버전을 참조합니다. 자세한 내용은 [ AWS Mobile SDK for Unity란 무엇입니까?](what-is-unity-plugin.md) 섹션을 참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS Lambda
<a name="lambda"></a>

AWS Lambda는 요청 또는 이벤트에 대응하여 코드를 실행하고 컴퓨팅 리소스를 자동으로 관리하는 컴퓨팅 서비스로, 새로운 정보에 신속하게 대응하는 애플리케이션을 손쉽게 개발할 수 있게 해줍니다. AWS Lambda 함수는 모바일, IoT 및 웹 앱에서 직접 호출할 수 있고 동기식으로 응답을 전송하므로 인프라를 프로비저닝하거나 관리할 필요 없이 모바일 앱에 사용할 확장성, 보안성 및 가용성이 뛰어난 백엔드를 손쉽게 생성할 수 있습니다.

AWS Lambda는 다음 중 하나에 대한 응답으로 Lambda 함수를 실행할 수 있습니다.
+ 개별 업데이트(예: Amazon S3의 객체 생성 이벤트 또는 CloudWatch 알림) 또는 스트리밍 업데이트(예: 웹 사이트 클릭스트림 또는 연결된 디바이스의 출력)와 같은 이벤트.
+ 사용자 지정 애플리케이션의 JSON 입력 또는 HTTPS 명령.

AWS Lambda는 필요 시에만 코드를 실행하며, 하루에 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 규모를 조정합니다. 이러한 기능을 제공하므로 Lambda를 사용하여 Amazon S3 및 Amazon DynamoDB와 같은 AWS 서비스에 대한 트리거를 손쉽게 빌드하거나, Amazon Kinesis에 저장된 스트리밍 데이터를 처리하거나 AWS 규모, 성능, 보안에 따라 작동하는 자체 백엔드를 생성할 수 있습니다.

AWS Lambda의 작동 방식에 대해 자세히 알아보려면 [AWS Lambda: 작동 방식](https://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html)을 참조하십시오.

## 권한
<a name="permissions"></a>

Lambda 함수와 관련된 권한의 유형은 두 가지가 있습니다.
+  **실행 권한** — Lambda 함수가 계정의 다른 AWS 리소스에 액세스하는 데 필요한 권한. 실행 역할로 알려진 IAM 역할을 생성하여 이러한 권한을 부여할 수 있습니다.
+  **간접 호출 권한** - 이벤트 소스가 Lambda 함수와 통신하는 데 필요한 권한입니다. 간접 호출 모델(푸시 또는 풀 모델)에 따라 실행 역할 또는 리소스 정책 (Lambda 함수와 연결된 액세스 정책)을 사용하여 이러한 권한을 부여할 수 있습니다.

## 프로젝트 설정
<a name="project-setup"></a>

### AWS Lambda에 대한 권한을 설정하려면
<a name="set-permissions-for-aws-lambda"></a>

1. [AWS IAM 콘솔](https://console.aws.amazon.com/iam/home)을 엽니다.

1. 이 사용자 지정 정책을 역할에 연결하면 애플리케이션이 AWS Lambda를 직접적으로 호출할 수 있습니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "lambda:*"
      ],
      "Resource": "*"
    }
  ]
}
```

------

### 새 실행 역할 생성
<a name="create-a-new-execution-role"></a>

이 역할은 다음 단계에서 생성할 Lambda 함수에 적용되며 해당 함수가 액세스할 수 있는 AWS 리소스를 결정합니다.

1. [AWS IAM 콘솔](https://console.aws.amazon.com/iam/home)을 엽니다.

1. **역할**을 클릭합니다.

1. **새 역할 생성**을 클릭합니다.

1. 화면의 지침에 따라 Lambda 함수가 액세스해야 하는 서비스와 해당 정책을 선택합니다. 예를 들어 Lambda 함수가 S3 버킷을 생성할 경우 정책은 S3에 대한 쓰기 액세스 권한이 필요합니다.

1. **역할 생성**을 클릭합니다.

### AWS Lambda에서 함수 생성
<a name="creating-a-function-in-aws-lambda"></a>

1. [AWS Lambda 콘솔](https://console.aws.amazon.com/lambda/home)을 엽니다.

1. **Lambda 함수 생성**을 클릭합니다.

1. 청사진 생성을 건너뛰려면 **건너뛰기**를 클릭하십시오.

1. 다음 화면에서 함수를 직접 구성하세요. 함수 이름과 설명을 입력하고 런타임을 선택합니다. 선택한 런타임에 따라 화면에 표시되는 지시 사항을 따릅니다. 새로 만든 실행 역할을 함수에 할당하여 실행 권한을 지정합니다.

1. 완료하면 **다음**을 클릭합니다.

1. **함수 생성**을 클릭합니다.

## Lambda 고객 생성
<a name="create-a-lambda-client"></a>

```
var credentials = new CognitoAWSCredentials(IDENTITY_POOL_ID, RegionEndpoint.USEast1);
var Client = new AmazonLambdaClient(credentials, RegionEndpoint.USEast1);
```

## 요청 객체 생성
<a name="create-a-request-object"></a>

요청 객체를 생성하여 호출 유형과 함수 이름을 지정합니다.

```
var request = new InvokeRequest()
{
    FunctionName = "hello-world",
    Payload = "{\"key1\" : \"Hello World!\"}",
    InvocationType = InvocationType.RequestResponse
};
```

## Lambda 함수를 호출
<a name="invoke-your-lambda-function"></a>

요청 객체를 전달하여 invoke를 직접적으로 호출합니다.

```
Client.InvokeAsync(request, (result) =>
{
    if (result.Exception == null)
    {
        Debug.Log(Encoding.ASCII.GetString(result.Response.Payload.ToArray()));
    }
    else
    {
        Debug.LogError(result.Exception);
    }
});
```