本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定通道處理器
若要開始使用通道流程,請先建立處理器 Lambda 函數來處理您的使用案例的預處理。例如,您可以更新訊息內容或中繼資料、拒絕訊息並防止傳送訊息,或讓原始郵件通過。
必要條件
Lambda 函數必 AWS 須與 AppInstance. AWS
授予調用權限
您必須授與 Amazon Chime 開發套件簡訊服務權限,才能叫用 Lambda 資源。如需有關權限的詳細資訊,請參閱〈使用以資源為基礎的策略〉。 AWS Lambda例如:
-
校長:「發送消息. 亞馬遜」
動作:拉姆達:InvokeFunction
Effect (效果):允許
AWS:SourceAccount:
您的 AWS AccountId
.AWS: SourceArn:
"arn:aws:chime:
region
:AWS AccountId
:appInstance
/"
注意
您可以提供特定的應用程式執行個體 ID 來叫用處理器,或使用萬用字元允許帳戶中的所有 Amazon Chime SDK 應用程式執行個體叫用您的處理器。
授與回呼權限
您也必須允許處理器 Lambda 函數呼叫 ChannelFlowCallback
API。有關這樣做的詳細信息,請參閱AWS Lambda 開發人員指南中的AWS Lambda 運行角色。
您可以將內嵌政策新增至 Lambda 函數的執行角色。此範例可讓處理器呼叫ChannelFlowCallback API
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "chime:ChannelFlowCallback" ], "Resource": [ "arn:aws:chime:Region:AwsAccountId:appInstance/*" ] } ] }
注意
請遵循 Lambda 函數的最佳做法。如需詳細資訊,請參閱下列主題:
叫用處理器 Lambda 函數
當使用者傳送訊息時,下列輸入要求會叫用處理器 Lambda 函數。
{ "EventType": "
string
" "CallbackId": "string
" "ChannelMessage": { "MessageId": "string
", "ChannelArn": "string
", "Content": "string
", "Metadata": "string
", "Sender":{ "Arn": "string
", "Name": "string
" }, "Persistence": "string", "LastEditedTimestamp": "string
", "Type": "string", "CreatedTimestamp": "string
", } }
- EventType
-
事件被發送到處理器。該值是一個
CHANNEL_MESSAGE_EVENT
常數。 - CallbackId
從處理器調用
ChannelFlowCallback
API 時使用的令牌。- ChannelMessage
-
ChannelArn該頻道的 ARN
內容待處理的訊息內容
CreatedTimestamp建立郵件的時間
LastEditedTimestamp編輯訊息的時間
MessageId訊息識別碼
中繼資料訊息中繼資料要處理
持續性布爾值,用於控制消息是否在後端持續存在。有效值:
PERSISTENT | NON_PERSISTENT
寄件者郵件寄件者。類型:identity物件。
輸入訊息類型。 ChannelFlow僅支持消
STANDARD
息類型。有效值:STANDARD
處理器功能確定有關每個消息的以下內容。
是否要更新訊息內容、中繼資料或兩者
是否拒絕訊息
是否要留言不變
處理完成時,處理器 Lambda 函數會將結果傳送回 Amazon Chime SDK 簡訊服務,以便將訊息傳送給所有收件者。訊息狀態會標記,PENDING
直到處理器 Lambda 函數傳回結果為止。處理器 Lambda 函數有 48 小時可以傳回結果。在此之後,我們不保證訊息傳遞,且 ChannelFlowCallbackAPI 會擲回「禁止例外」錯誤訊息。若要傳回結果,請呼叫 ChannelFlowCallback
API。