Amazon AWS Lambda 用 の設定 WorkMail - Amazon WorkMail

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon AWS Lambda 用 の設定 WorkMail

インバウンドおよびアウトバウンドの E メールフロールールで Lambda の実行アクションを使用して、ルールに一致する E メールメッセージを処理用の AWS Lambda 関数に渡します。

Amazon で Lambda アクションを実行するには、次の設定から選択します WorkMail。

同期 [Lambda を実行] の設定

フロールールに一致する E メールメッセージは、送信または配信される前に処理のために Lambda 関数に渡されます。この設定を使用してメールの内容を変更します。さまざまなユースケースに合わせて、受信または送信のメールフローを制御することもできます。たとえば、Lambda 関数に渡されるルールは、機密性の高いメールメッセージの配信をブロックしたり、添付ファイルを削除したり、免責事項を追加したりできます。

非同期 [Lambda を実行] の設定

フロールールに一致する E メールメッセージは、送信または配信中の処理のために Lambda 関数に渡されます。この設定は、E メールの配信には影響せず、受信または送信の E メールメッセージのメトリクスの収集などのタスクに使用されます。

同期設定と非同期設定のどちらを選択した場合でも、Lambda 関数に渡されるイベントオブジェクトには、受信または送信の E メールイベントのメタデータが含まれます。メタデータ内のメッセージ ID を使用して、E メールメッセージの完全なコンテンツにアクセスすることもできます。詳細については、 を使用したメッセージコンテンツの取得 AWS Lambda を参照してください。E メールイベントの詳細については、Lambda イベントデータ を参照してください。

受信および送信 E メールフロールールの詳細については、E メールフローの管理 を参照してください。Lambda の詳細については、AWS Lambda デベロッパーガイド を参照してください。

注記

現在、Lambda E メールフロールールは、設定されている Amazon WorkMail 組織と同じ AWS リージョンおよび 内の Lambda AWS アカウント 関数のみを参照します。

AWS Lambda for Amazon の開始方法 WorkMail

Amazon AWS Lambda で の使用を開始するには WorkMail、 WorkMail Hello World Lambda 関数 AWS Serverless Application Repository を からアカウントにデプロイすることをお勧めします。この関数には、お客様に必要なすべてのリソースと権限が設定されています。その他の例については、「」の「 amazon-workmail-lambda-templatesリポジトリ」を参照してください GitHub。

独自の Lambda 関数を作成する場合は、 AWS Command Line Interface () を使用してアクセス許可を設定する必要がありますAWS CLI。次のコマンドの例を使用するには、次の操作を行います。

  • MY_FUNCTION_NAME の部分はお客様の Lambda 関数の名前に置き換えます。

  • を Amazon WorkMail AWS リージョンREGIONに置き換えます。利用可能な Amazon WorkMail リージョンには、 us-east-1 (米国東部 (バージニア北部))、 us-west-2 (米国西部 (オレゴン))、 eu-west-1 (欧州 (アイルランド)) などがあります。

  • AWS_ACCOUNT_ID を、ご自身の 12 桁の AWS アカウント ID に置き換えます。

  • を Amazon WorkMail 組織 ID WORKMAIL_ORGANIZATION_IDに置き換えます。これは、[組織] ページの組織のカードに記載されています。

aws --region REGION lambda add-permission --function-name MY_FUNCTION_NAME --statement-id AllowWorkMail --action "lambda:InvokeFunction" --principal workmail.REGION.amazonaws.com --source-arn arn:aws:workmail:REGION:AWS_ACCOUNT_ID:organization/WORKMAIL_ORGANIZATION_ID

の使用の詳細については AWS CLI、「 AWS Command Line Interface ユーザーガイド」を参照してください。

同期 [Lambda を実行] ルールの設定

同期 [Lambda を実行] ルールを設定するには、[Lambda の実行] アクションを持つ E メールフロールールを作成し、[同期して実行] チェックボックスをオンにます。メールフロールールの作成の詳細については、E メールフロールールの作成 を参照してください。

同期ルールの作成を完了するには、Lambda Amazon リソースネーム (ARN) を追加し、次のオプションを設定します。

フォールバックアクション

Lambda 関数の実行に失敗した場合、Amazon のアクション WorkMail が適用されます。このアクションは、 allRecipientsフラグが設定されていない場合に Lambda レスポンスから省略された受信者にも適用されます。[フォールバックアクション] を別の Lambda アクションにすることはできません。

[ルール] (分)

Amazon が呼び出しに WorkMail 失敗した場合に Lambda 関数が再試行される期間。[フォールバックアクション] は、この期間の終了時に適用されます。

注記

同期 [Lambda を実行] ルールは、* 宛先指定の条件のみをサポートしています。

Lambda イベントデータ

Lambda 関数は、以下のイベントデータを使用してトリガーされます。データの表示は、Lambda 関数に使用されているデータプログラミング言語に応じて異なります。

{ "summaryVersion": "2018-10-10", "envelope": { "mailFrom" : { "address" : "from@example.com" }, "recipients" : [ { "address" : "recipient1@example.com" }, { "address" : "recipient2@example.com" } ] }, "sender" : { "address" : "sender@example.com" }, "subject" : "Hello From Amazon WorkMail!", "messageId": "00000000-0000-0000-0000-000000000000", "invocationId": "00000000000000000000000000000000", "flowDirection": "INBOUND", "truncated": false }

イベントには、次のデータJSONが含まれます。

summaryVersion

LambdaEventData のバージョン番号。LambdaEventData で後方互換性のない変更を加えた場合にのみ更新されます。

envelope

E メールメッセージのエンベロープ。次のフィールドが含まれています。

mailFrom

[送信元] アドレス。通常、E メールメッセージを送信したユーザーの E メールアドレスです。ユーザーが別のユーザーとして、または別のユーザーに代わって E メールを送信した場合、 mailFromフィールドは、実際の送信者の E メールアドレスではなく、E メールメッセージが送信されたユーザーの E メールアドレスを返します。

受信者

受信者の E メールアドレスのリスト。Amazon WorkMail は To 、CC 、または を区別しませんBCC

注記

インバウンド E メールフロールールの場合、このリストには、ルールを作成する Amazon WorkMail 組織内のすべてのドメインの受信者が含まれます。Lambda 関数は送信者からのSMTP会話ごとに個別に呼び出され、受信者フィールドにはそのSMTP会話の受信者が一覧表示されます。外部ドメインの受信者は含まれません。

送信者

別のユーザーの代理で E メールメッセージを送信したユーザーの E メールアドレス。このフィールドは、E メールメッセージが別のユーザーの代理で送信された場合にのみ設定されます。

subject

E メールの件名。256 文字の制限を超えると切り捨てられます。

messageId

Amazon WorkMail Message Flow の使用時に E メールメッセージの内容全体にアクセスするために使用される一意の IDSDK。

invocationId

一意の Lambda 呼び出しの ID。この ID は、Lambda 関数が同じ に対して複数回呼び出された場合も変わりませんLambdaEventData。再試行を検出し、重複を避けるために使用します。

flowDirection

E メールフローの方向を INBOUNDまたは で示しますOUTBOUND

truncated

件名の長さではなく、ペイロードサイズに適用されます。true の場合、ペイロードサイズが 128 KB の制限を超えると、受信者のリストが制限を満たすように切り捨てられます。

同期 [Lambda を実行] 応答スキーマ

同期 Run Lambda アクションを持つ E メールフロールールがインバウンドまたはアウトバウンドの E メールメッセージと一致する場合、Amazon は設定された Lambda 関数を WorkMail 呼び出し、応答を待ってから E メールメッセージに対してアクションを実行します。この Lambda 関数は、アクション、アクションタイプ、適用可能なパラメータ、およびアクションが適用される受信者をリストする事前定義されたスキーマに従って応答を返します。

次の例は、同期 [Lambda を実行] 応答です。応答は、Lambda 関数に使用されるプログラミング言語によって異なります。

{ "actions": [ { "action" : { "type": "string", "parameters": { various } }, "recipients": [list of strings], "allRecipients": boolean } ] }

レスポンスには、次のデータJSONが含まれます。

アクション

受信者に対して実行するアクション。

type

アクションタイプ。非同期 [Lambda を実行] アクションの場合、アクションタイプは返されません。

インバウンドルールアクションタイプにはBOUNCE、、DROPDEFAULTBYPASS_SPAM_CHECK、および MOVE_TO_JUNK が含まれます。詳細については、「受信 E メールルールアクション」を参照してください。

アウトバウンドルールのアクションタイプにはBOUNCE、、DROP、および が含まれますDEFAULT。詳細については、「送信 E メールルールアクション」を参照してください。

parameters

追加のアクションパラメータ。キーbounceMessageと値の文字列 を持つJSONオブジェクトとして BOUNCEアクションタイプでサポートされています。このバウンスメッセージは、バウンス E メールメッセージを作成するために使用されます。

受信者

アクションを実行する必要がある E メールアドレスのリスト。元の受信者リストに含まれていない場合でも、新しい受信者を応答に追加できます。がアクションに対して true の場合、このフィールドallRecipientsは必須ではありません。

注記

受信メールに対して Lambda アクションが呼び出されると、組織からの新しい受信者のみを追加できます。新しい受信者は、 としてレスポンスに追加されますBCC

allRecipients

true の場合、Lambda 応答内の別の特定のアクションの対象とならないすべての受信者にアクションを適用します。

同期 [Lambda を実行] アクション制限

Amazon WorkMail が同期 Run Lambda アクションの Lambda 関数を呼び出す場合、次の制限が適用されます。

  • Lambda 関数は 15 秒以内に応答します。応答しない場合、失敗した呼び出しとして扱われます。

    注記

    システムが、指定した [ルールタイムアウト] 間隔で呼び出しを再試行します。

  • 最大 256 KB の Lambda 関数応答が許可されます。

  • 応答では、最大 10 個の固有のアクションが許可されます。10 を超えるアクションは、設定されたフォールバックアクションの対象となります。

  • 送信 Lambda 関数には、最大 500 人の受信者が許可されます。

  • [ルールタイムアウト] の最大値は 240 分です。最小値 0 が設定されている場合、Amazon がフォールバックアクション WorkMail を適用する前に再試行はありません。

同期 [Lambda を実行] アクションのエラー

エラー WorkMail 、無効なレスポンス、または Lambda タイムアウトが原因で Amazon が Lambda 関数を呼び出せない場合、Amazon はエクスポネンシャルバックオフを使用して呼び出しを WorkMail 再試行し、ルールのタイムアウト期間が完了するまで処理速度を下げます。次に、フォールバックアクションが、E メールメッセージのすべての受信者に適用されます。詳細については、「同期 [Lambda を実行] ルールの設定」を参照してください。

同期 [Lambda を実行] 応答の例

次の例は、一般的な同期 [Lambda を実行] 応答の構造を示します。

例 : 指定した受信者を E メールメッセージから削除します。

次の例は、E メールメッセージから受信者を削除するための同期 [Lambda を実行] 応答の構造を示します。

{ "actions": [ { "action": { "type": "DEFAULT" }, "allRecipients": true }, { "action": { "type": "DROP" }, "recipients": [ "drop-recipient@example.com" ] } ] }
例 : カスタム E メールメッセージでバウンスする

次の例は、カスタム E メールメッセージでバウンスするため同期 [Lambda を実行] 応答の構造を示します。

{ "actions" : [ { "action" : { "type": 'BOUNCE', "parameters": { "bounceMessage" : "Email in breach of company policy." } }, "allRecipients": true } ] }
例 : E メールメッセージに受信者を追加する

次の例は、E メールメッセージに受信者を追加するための同期 [Lambda を実行] 応答の構造を示します。これにより、E メールメッセージの [To] または [CC] フィールドは更新されません。

{ "actions": [ { "action": { "type": "DEFAULT" }, "recipients": [ "new-recipient@example.com" ] }, { "action": { "type": "DEFAULT" }, "allRecipients": true } ] }

Lambda アクションの実行用の Lambda 関数を作成するときに使用するその他のコード例については、「Amazon WorkMail Lambda テンプレート」を参照してください。

Amazon での Lambda の使用に関する詳細情報 WorkMail

Lambda 関数をトリガーする E メールメッセージの完全なコンテンツにアクセスすることもできます。詳細については、「を使用したメッセージコンテンツの取得 AWS Lambda」を参照してください。