

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

# 建立將 Amazon Quick Sight 事件傳送至 的規則 AWS Lambda
<a name="events-send-lambda"></a>

在本教學課程中，您會建立 AWS Lambda 函數，記錄 Amazon Quick Sight 帳戶中的資產事件。然後，您可以建立每當資產變更時執行該函數的規則。本教學假設您已註冊 Amazon Quick Sight。

**步驟 1：建立 Lambda 函數**

建立 Lambda 函數以記錄狀態變更事件。當您在建立規則時指定此函數。

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/) 開啟 AWS Lambda 主控台。

1. 如果您是第一次使用 Lambda，將會看到歡迎頁面。選擇 **Get Started Now (立即開始)**。否則，請選擇 **Create function (建立函數)**。

1. 選擇 **Author from scratch (從頭開始撰寫)**。

1. 在「建立函數」頁面上，輸入 Lambda 函式的名稱與描述。例如，將函數命名為 `QuickSightAssetChangeFn`。

1. 在**執行時期**中，選取 **Node.js 18.x**。

1. 對於 **Architecture** (架構)，選擇 **x86\$164**。

1. 對於**執行角色**，選擇**建立具有基本 Lambda 許可的新角色**或**使用現有角色**，然後選擇您想要的角色。

1. 選擇**建立函數**。

1. 在 **QuickSightAssetChange** 頁面上，選擇 **index.js**。

1. 在 **index.js** 窗格中，刪除現有的程式碼。

1. 輸入下列程式碼片段。

   ```
   console.log('Loading function');
   exports.handler = async (event, context) => {
     console.log('Received QuickSight event:', JSON.stringify(event));
   };
   ```

1. 選擇**部署**。

**步驟 2：建立規則**

建立規則以在每次create/update/delete Amazon Quick Sight 資產時執行 Lambda 函數。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**規則**。

1. 選擇**建立規則**。

1. 輸入規則的名稱和描述。例如，​輸入 `QuickSightAssetChangeRule`。

1. 選取**預設**事件匯流排。

1. 選擇**具有事件模式的規則**，然後選擇**下一步**。

1. 在**事件來源**欄位中，選擇 **AWS 事件或 EventBridge 合作夥伴事件**。

1. 在**建立方法**區段中，選擇**自訂模式 (JSON 編輯器)**。

1. 在**事件模式**文字方塊中，輸入下列程式碼片段，然後選擇**下一步**。

   ```
   {
     "source": ["aws.quicksight"]
   }
   ```

   或者，您可以建立僅訂閱 Amazon Quick Sight 中事件類型子集的規則。例如，只有在將資產新增至 ID 為 `77e307e8-b41b-472a-90e8-fe3f471537be` 的資料夾或從中移除資產時，才會觸發下列規則。

   ```
   {
     "source": ["aws.quicksight"],
     "detail-type": ["QuickSight Folder Membership Updated"],
     "detail": {
       "folderId": "77e307e8-b41b-472a-90e8-fe3f471537be"
     }
   }
   ```

1. 對於**目標類型**，選擇 **AWS 服務**和 **Lambda 函式**。

1. 針對 **Function** (函數)，選擇您建立的 Lambda 函數。然後選擇**下一步**。

1. 在 **Configure tags** (設定標籤) 中，選擇 **Next** (下一步)。

1. 檢閱規則中的步驟。然後，選擇 **Create role** (建立角色)。

**步驟 3：測試規則**

若要測試您的規則，請建立分析。等待一分鐘後，驗證您的 Lambda 函式是否被調用。

1. 在 https：//[https://quicksight.aws.amazon.com/](https://quicksight.aws.amazon.com/) 開啟 Amazon Quick Sight 主控台。

1. 建立新的分析。

1. 在導覽窗格中，選擇 **Rules** (規則)，然後選擇您建立的規則名稱。

1. 在**規則詳細資料**中，選擇**監控**。

1. 系統會將您重新導向至 Amazon CloudWatch 主控台。如果未將您重新導向，請選擇**在 CloudWatch 中檢視指標**。

1. 在 **All metrics** (所有指標) 中，選擇您建立的規則名稱。該圖表指示該規則已被調用。

1. 在導覽窗格中，選擇 **Log groups** (日誌群組)。

1. 為您的 Lambda 函式選擇日誌群組名稱。例如 `/aws/lambda/function-name`。

1. 選擇日誌串流名稱以檢視函數為您啟動的執行個體所提供的資料。您應該會看到類似以下接收的事件：

   ```
   {
     "version": "0",
     "id": "3acb26c8-397c-4c89-a80a-ce672a864c55",
     "detail-type": "QuickSight Analysis Creation Successful",
     "source": "aws.quicksight",
     "account": "123456789012",
     "time": "2023-10-30T22:06:31Z",
     "region": "us-east-1",
     "resources": ["arn:aws:quicksight:us-east-1:123456789012:analysis/e5f37119-e24c-4874-901a-af9032b729b5"],
     "detail": {
       "analysisId": "e5f37119-e24c-4874-901a-af9032b729b5"
     }
   }
   ```

如需 JSON 格式的 Amazon Quick Sight 事件範例，請參閱 [Amazon Quick Sight 的事件概觀](https://docs.aws.amazon.com/quicksight/latest/developerguide/events.html)。