

適用於 Unity 的 AWS Mobile SDK 現在已包含在 中 適用於 .NET 的 AWS SDK。本指南參考適用於 Unity 的 Mobile SDK 封存版本。如需詳細資訊，請參閱[什麼是適用於 Unity 的 AWS Mobile SDK？](what-is-unity-plugin.md)

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

AWS Lambda 是一種運算服務，可執行程式碼以回應請求或事件，並自動為您管理運算資源，讓您輕鬆建置可快速回應新資訊的應用程式。AWS Lambda 函數可以直接從行動、IoT 和 Web 應用程式呼叫，並同步傳送回應，讓您輕鬆為行動應用程式建立可擴展、安全且高可用性的後端，而無需佈建或管理基礎設施。

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>

呼叫呼叫，傳遞請求物件：

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