隨著組織在數位領域中面臨越來越多的挑戰,生成式人工智慧(Generative AI)已經成為一股變革力量,幫助企業提升生產力、簡化工作流程並推動創新。為了最大化生成式人工智慧所產生的洞察價值,提供簡單的方式讓使用者保存和分享這些洞察,使用常用的工具如電子郵件是非常重要的。
亞馬遜 Q 商業(Amazon Q Business)是一個由生成式人工智慧驅動的助手,可以回答問題、提供摘要、生成內容,並根據您企業系統中的數據和信息安全地完成任務。它正在重新定義企業如何進行數據驅動的決策、內容生成和安全的任務管理。通過使用亞馬遜 Q 商業的自訂插件功能,您可以擴展其功能,直接從亞馬遜 Q 應用程序發送電子郵件,讓您能夠存儲和分享從這個強大的人工智慧助手的對話中獲得的寶貴洞察。
亞馬遜簡單電子郵件服務(Amazon Simple Email Service,簡稱 Amazon SES)是一個電子郵件服務提供商,提供簡單且具成本效益的方式,讓您使用自己的電子郵件地址和域名發送和接收電子郵件。亞馬遜 SES 提供許多電子郵件工具,包括電子郵件發送者配置選項、電子郵件送達工具、靈活的電子郵件部署選項、發送者和身份管理、電子郵件安全、電子郵件發送統計、電子郵件聲譽儀表板以及入站電子郵件服務。
這篇文章探討了如何將亞馬遜 Q 商業與亞馬遜 SES 整合,以便將對話發送到指定的電子郵件地址。
解決方案概述
以下圖示說明了解決方案架構。
工作流程包括以下步驟:
- 創建一個帶有亞馬遜簡單儲存服務(Amazon Simple Storage Service,簡稱 Amazon S3)數據來源的亞馬遜 Q 商業應用程序。亞馬遜 Q 使用檢索增強生成(Retrieval Augmented Generation,簡稱 RAG)來回答用戶問題。
- 為您的亞馬遜 Q 商業應用程序環境配置 AWS IAM 身份中心實例,並添加用戶和群組。亞馬遜 Q 商業支持組織和帳戶級別的 IAM 身份中心實例。
- 創建一個自訂插件,調用亞馬遜 API 網關的 OpenAPI 架構,該 API 將電子郵件發送給用戶。
- 在 AWS Secrets Manager 中存儲 OAuth 信息,並將秘密信息提供給插件。
- 提供 AWS 身份管理和訪問管理(IAM)角色以訪問 Secrets Manager 中的秘密。
- 自訂插件將用戶引導至亞馬遜 Cognito 登入頁面。用戶提供憑證以登錄。身份驗證後,用戶會話將存儲在亞馬遜 Q 商業應用程序中,以便進行後續的 API 調用。
- 身份驗證後,自訂插件將令牌傳遞給 API 網關以調用 API。
- 您可以使用 AWS WAF 來幫助保護您的 API 網關 REST API 免受常見的網絡攻擊,例如 SQL 注入和跨站腳本(XSS)攻擊。
- 在亞馬遜虛擬私有雲(Amazon Virtual Private Cloud,簡稱 Amazon VPC)中託管的 AWS Lambda 內部調用亞馬遜 SES SDK。
- Lambda 使用 AWS 身份和訪問管理(IAM)權限來調用亞馬遜 SES 的 SDK。
- 亞馬遜 SES 使用 SMTP 向用戶提供的已驗證電子郵件發送電子郵件。
在接下來的部分中,我們將逐步介紹如何部署和測試該解決方案。此解決方案僅在 us-east-1 AWS 區域中受支持。
前提條件
完成以下前提條件:
- 擁有有效的 AWS 帳戶。
- 啟用 IAM 身份中心實例,並從設置頁面捕獲 IAM 身份中心實例的亞馬遜資源名稱(ARN)。
- 向 IAM 身份中心添加用戶和群組。
- 在帳戶中擁有具有足夠權限以創建必要資源的 IAM 角色。如果您擁有帳戶的管理員訪問權限,則無需採取任何行動。
- 為 API 網關啟用亞馬遜 CloudWatch 日誌。更多信息,請參見如何啟用 CloudWatch 日誌以排除 API 網關 REST API 或 WebSocket API 的故障?
- 擁有兩個電子郵件地址以發送和接收電子郵件,並且您可以使用發送給您的鏈接進行驗證。請勿使用亞馬遜 SES 中已驗證的現有身份來進行這些電子郵件地址。否則,AWS CloudFormation 模板將失敗。
- 擁有亞馬遜 Q 商業專業版訂閱以創建亞馬遜 Q 應用程序。
- 擁有服務鏈接的 IAM 角色 AWSServiceRoleForQBusiness。如果沒有,請使用 amazonaws.com 服務名稱創建它。
- 為操作和風險審計啟用 AWS CloudTrail 日誌。詳細說明,請參見為您的 AWS 帳戶創建跟蹤。
- 啟用預算政策通知以幫助防止不必要的計費。
部署解決方案資源
在這一步中,我們使用 CloudFormation 模板來部署 Lambda 函數、配置 REST API 和創建身份。完成以下步驟:
- 在 us-east-1 中打開 AWS CloudFormation 控制台。
- 選擇創建堆疊。
- 下載 CloudFormation 模板並在指定模板中上傳。
- 選擇下一步。
- 對於堆疊名稱,輸入一個名稱(例如,QIntegrationWithSES)。
- 在參數部分,提供以下信息:
- 對於 IDCInstanceArn,輸入您的 IAM 身份中心實例 ARN。
- 對於 LambdaName,輸入您的 Lambda 函數名稱。
- 對於 Fromemailaddress,輸入發送電子郵件的地址。
- 對於 Toemailaddress,輸入接收電子郵件的地址。
- 選擇下一步。
- 保持其他值為默認,並選擇我確認 AWS CloudFormation 可能會創建 IAM 資源的能力。
- 選擇提交以創建 CloudFormation 堆疊。
- 在堆疊成功部署後,在輸出選項卡上,記下 apiGatewayInvokeURL 的值。您稍後需要這個來創建自訂插件。
驗證電子郵件將發送到提供給 CloudFormation 模板的 Toemailaddress 和 Fromemailaddress 值。
使用電子郵件中的鏈接驗證新創建的電子郵件身份。
這篇文章不涵蓋 Lambda 函數的自動擴展。要了解如何將 Lambda 與應用程序自動擴展集成,請參見 AWS Lambda 和應用程序自動擴展。
要在 API 網關上配置 AWS WAF,請參考使用 AWS WAF 保護 API 網關中的 REST API。
這是示範代碼,僅供非生產使用。在部署之前,您應該與您的安全和法律團隊合作,以滿足您的組織安全、法規和合規要求。
創建亞馬遜 Cognito 用戶
此解決方案使用亞馬遜 Cognito 來授權用戶調用 API 網關。CloudFormation 模板創建了一個新的亞馬遜 Cognito 用戶池。
完成以下步驟以在新創建的用戶池中創建用戶並捕獲有關用戶池的信息:
- 在 AWS CloudFormation 控制台中,導航到您創建的堆疊。
- 在資源選項卡中,選擇 CognitoUserPool 的物理 ID 旁邊的鏈接。
- 在亞馬遜 Cognito 控制台中,選擇用戶管理和用戶。
- 選擇創建用戶。
- 輸入您選擇的電子郵件地址和密碼,然後選擇創建用戶。
- 在導航窗格中,選擇應用程序和應用客戶端。
- 捕獲客戶端 ID 和客戶端密碼。您稍後需要這些信息以進行自訂插件開發。
- 在登錄頁面選項卡中,複製允許的回調 URL 值。您稍後需要這些信息以進行自訂插件開發。
- 在導航窗格中,選擇品牌化。
- 捕獲亞馬遜 Cognito 域。您需要這些信息來更新 OpenAPI 規範。
上傳文檔到亞馬遜 S3
此解決方案使用完全管理的亞馬遜 S3 數據來源,無縫支持 RAG 工作流程,消除了自訂集成和數據流管理的需求。
在這篇文章中,我們使用示範文章上傳到亞馬遜 S3。完成以下步驟:
- 在 AWS CloudFormation 控制台中,導航到您創建的堆疊。
- 在資源選項卡中,選擇亞馬遜 Q 數據源桶的物理 ID 旁邊的鏈接。
- 將示範文章文件上傳到 S3 桶中。詳細說明,請參見上傳對象。
將用戶添加到亞馬遜 Q 商業應用程序
完成以下步驟以將用戶添加到新創建的亞馬遜 Q 商業應用程序:
- 在亞馬遜 Q 商業控制台中,選擇導航窗格中的應用程序。
- 選擇您使用 CloudFormation 模板創建的應用程序。
- 在用戶訪問下,選擇管理用戶訪問。
- 在管理訪問和訂閱頁面中,選擇添加群組和用戶。
- 選擇分配現有用戶和群組,然後選擇下一步。
- 搜索您的 IAM 身份中心用戶組。
- 選擇該群組並選擇分配以添加該群組及其用戶。
- 確保當前訂閱為 Q 商業專業版。
- 選擇確認。
同步亞馬遜 Q 數據來源
要同步數據來源,完成以下步驟:
- 在亞馬遜 Q 商業控制台中,導航到您的應用程序。
- 在導航窗格中的增強功能下選擇數據來源。
- 從數據來源列表中選擇您通過 CloudFormation 模板創建的數據來源。
- 選擇立即同步以同步數據來源。
同步數據來源需要一些時間。請等待同步狀態顯示為已完成。
創建亞馬遜 Q 自訂插件
在這一部分中,您將創建亞馬遜 Q 自訂插件以發送電子郵件。完成以下步驟:
- 在亞馬遜 Q 商業控制台中,導航到您的應用程序。
- 在導航窗格中的增強功能下,選擇插件。
- 選擇添加插件。
- 選擇創建自訂插件。
- 對於插件名稱,輸入一個名稱(例如,email-plugin)。
- 對於描述,輸入描述。
- 選擇使用內聯 OpenAPI 架構編輯器定義。
您也可以通過選擇從 S3 選擇上傳 API 架構。這將是生產使用案例的最佳上傳方式。
您的 API 架構必須包含 API 描述、結構和自訂插件的參數。
- 選擇 JSON 作為架構格式。
- 輸入以下架構,提供您的 API 網關調用 URL 和亞馬遜 Cognito 域 URL:
{
"openapi": "3.0.0",
"info": {
"title": "發送電子郵件 API",
"description": "從 SES 發送電子郵件的 API",
"version": "1.0.0"
},
"servers": [
{
"url": ""
}
],
"paths": {
"/": {
"post": {
"summary": "發送電子郵件給用戶並返回成功消息",
"description": "發送電子郵件給用戶並返回成功消息",
"security": [
{
"OAuth2": [
"email/read"
]
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/sendEmailRequest"
}
}
}
},
"responses": {
"200": {
"description": "成功響應",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/sendEmailResponse"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"sendEmailRequest": {
"type": "object",
"required": [
"emailContent",
"toEmailAddress",
"fromEmailAddress"
],
"properties": {
"emailContent": {
"type": "string",
"description": "電子郵件的主體。"
},
"toEmailAddress": {
"type": "string",
"description": "收件電子郵件地址。"
},
"fromEmailAddress": {
"type": "string",
"description": "發件電子郵件地址。"
}
}
},
"sendEmailResponse": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "成功或失敗消息。"
}
}
}
},
"securitySchemes": {
"OAuth2": {
"type": "oauth2",
"description": "OAuth2 客戶端憑證流程。",
"flows": {
"authorizationCode": {
"authorizationUrl": "/oauth2/authorize",
"tokenUrl": "/oauth2/token",
"scopes": {
"email/read": "讀取電子郵件"
}
}
}
}
}
}
}
- 在身份驗證下,選擇需要身份驗證。
- 對於 AWS Secrets Manager 秘密,選擇創建並添加新秘密。
在創建 AWS Secrets Manager 秘密的彈出窗口中,輸入之前從亞馬遜 Cognito 捕獲的以下值:
- 客戶端 ID
- 客戶端密碼
- OAuth 回調 URL
- 對於授權亞馬遜 Q 商業的方式,保持默認選擇為創建並使用新服務角色。
- 選擇添加插件以添加您的插件。
等待插件創建並顯示構建狀態為已準備。
OpenAPI 架構的最大大小為 1 MB(JSON 或 YAML 格式)。
為了最大化亞馬遜 Q 商業自訂插件的準確性,請遵循配置自訂插件的 OpenAPI 架構定義的最佳實踐。
測試解決方案
要測試解決方案,完成以下步驟:
- 在亞馬遜 Q 商業控制台中,導航到您的應用程序。
- 在網頁體驗設置部分,找到已部署的 URL。
- 打開已部署的網頁體驗 URL。
- 使用在 IAM 身份中心中創建的用戶的憑證登錄網頁體驗。
- 選擇所需的多因素身份驗證(MFA)設備進行註冊。更多信息,請參見為用戶註冊 MFA 設備。
- 登錄網頁後,選擇適當的應用程序以打開聊天介面。
在亞馬遜 Q 入口網站中,輸入「總結公司的考勤和請假政策」。
亞馬遜 Q 商業將根據上傳的文檔提供您的問題答案。
您現在可以使用之前創建的自訂插件發送這次對話的電子郵件。
在選項菜單(三個垂直點)中,選擇使用插件以查看之前創建的 email-plugin。
選擇 email-plugin 並輸入「發送此對話的摘要電子郵件」。
亞馬遜 Q 將要求您提供要發送對話的電子郵件地址。提供作為 CloudFormation 模板的一部分配置的已驗證身份。
在您輸入電子郵件地址後,授權頁面將出現。輸入您的亞馬遜 Cognito 用戶電子郵件 ID 和密碼以進行身份驗證,然後選擇登錄。
這一步驟驗證您是授權用戶。
電子郵件將發送到指定的收件箱。
您可以通過使用電子郵件模板進一步個性化電子郵件。
保護解決方案
安全性是您和 AWS 之間的共同責任模型,描述了雲的安全性與雲中的安全性。請記住以下最佳實踐:
- 為了構建安全的電子郵件應用程序,我們建議您遵循安全、身份和合規性的最佳實踐,以幫助保護敏感信息並維護用戶信任。
- 對於訪問控制,我們建議您保護 AWS 帳戶憑證,並使用 IAM 身份中心或 IAM 設置個別用戶。
- 您可以安全地存儲客戶數據,並使用 AWS 管理的密鑰或客戶管理的密鑰加密敏感信息。
- 您可以實施日誌記錄和監控系統,以便及時檢測和響應可疑活動。
- 亞馬遜 Q 商業可以配置以幫助滿足您的安全和合規目標。
- 通過實施適當的數據處理和保留政策,您可以遵守相關的數據保護法規,例如 GDPR 或 CCPA。
- 您可以實施護欄,以定義應用程序環境的全局控制和主題級控制。
- 您可以在網絡上啟用 AWS Shield,以幫助防止 DDoS 攻擊。
- 您應遵循亞馬遜 Q 訪問控制列表(ACL)爬行的最佳實踐,以幫助保護您的業務數據。詳細信息,請參見在亞馬遜 Q 商業中安全地啟用或禁用 ACL 爬行。
- 我們建議在資源策略中使用 aws:SourceArn 和 aws:SourceAccount 全局條件上下文鍵,以限制亞馬遜 Q 商業授予其他服務的資源權限。更多信息,請參見跨服務混淆代理預防。
通過結合這些安全措施,您可以創建一個強大且值得信賴的應用程序,保護您的業務和客戶的信息。
清理
為了避免未來產生費用,請刪除您創建的資源並清理您的帳戶。完成以下步驟:
- 清空作為 CloudFormation 堆疊一部分創建的 S3 桶的內容。
- 刪除作為 CloudFormation 堆疊一部分創建的 Lambda 函數 UpdateKMSKeyPolicyFunction。
- 刪除 CloudFormation 堆疊。
- 刪除亞馬遜 SES 中的身份。
- 刪除亞馬遜 Q 商業應用程序。
結論
亞馬遜 Q 商業(Amazon Q Business)這個先進的生成式人工智慧助手與亞馬遜 SES(Amazon SES)這個強大的電子郵件服務提供商的整合,為企業開啟了利用生成式人工智慧的新可能性。通過無縫連接這些技術,組織不僅可以從商業數據中獲得生產性洞察,還可以將其發送到他們的收件箱。
準備好提升您團隊的生產力了嗎?今天就讓您的員工使用亞馬遜 Q 商業吧!釋放自訂插件和無縫電子郵件整合的潛力。不要讓寶貴的對話溜走——您可以輕鬆捕獲和分享洞察。此外,探索我們的內建插件庫。
隨時了解生成式人工智慧的最新進展,並開始在 AWS 上構建。如果您需要如何開始的幫助,請查看 AWS 生成式人工智慧創新中心。
關於作者
Sujatha Dantuluri 是 AWS 美國聯邦公民團隊的資深解決方案架構師,擁有超過二十年的經驗,支持商業和聯邦政府客戶。她專注於設計關鍵任務解決方案,並與客戶密切合作以確保他們的成功。Sujatha 是一位出色的公共演講者,經常在行業活動和會議上分享她的見解和知識。她曾對 IEEE 標準做出貢獻,並熱衷於通過她引人入勝的演講和發人深省的想法來賦能他人。
NagaBharathi Challa 是支持 AWS 國防部團隊的解決方案架構師。她與客戶密切合作,有效利用 AWS 服務以滿足其任務需求,提供架構最佳實踐和各種服務的指導。在工作之外,她喜歡與家人共度時光並傳播冥想的力量。
Pranit Raje 是 AWS 印度團隊的解決方案架構師。他與印度的獨立軟體供應商合作,幫助他們在 AWS 上創新。他專注於 DevOps、運營卓越、基礎設施即代碼和使用 DevSecOps 實踐的自動化。在工作之外,他喜歡與心愛的家人一起長途旅行,並與他們共度時光,觀看電影。
Dr Anil Giri 是亞馬遜網路服務的解決方案架構師。他與企業軟體和 SaaS 客戶合作,幫助他們構建生成式人工智慧應用程序並在 AWS 上實施無伺服器架構。他專注於指導客戶創建創新且可擴展的解決方案,使用尖端的雲技術。
本文由 AI 台灣 運用 AI 技術編撰,內容僅供參考,請自行核實相關資訊。
歡迎加入我們的 AI TAIWAN 台灣人工智慧中心 FB 社團,
隨時掌握最新 AI 動態與實用資訊!