Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

カスタムアベイラビリティプロバイダー Lambda 関数の構築

フォーカスモード
カスタムアベイラビリティプロバイダー Lambda 関数の構築 - Amazon WorkMail

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

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

カスタムアベイラビリティプロバイダー (CAP) は、明確に定義された JSON スキーマで記述された JSON ベースのリクエスト/レスポンスプロトコルで設定されます。Lambda 関数はリクエストを解析し、有効なレスポンスを返します。

リクエストとレスポンスの要素

リクエストの要素

Amazon WorkMail ユーザーの CAP 設定に使用されるリクエストの例を以下に示します。

{ "requester": { "email": "user1@internal.example.com", "userName": "user1", "organization": "m-0123456789abcdef0123456789abcdef", "userId": "S-1-5-18", "origin": "127.0.0.1" }, "mailboxes": [ "user2@external.example.com", "unknown@internal.example.com" ], "window": { "startDate": "2021-05-04T00:00:00.000Z", "endDate": "2021-05-06T00:00:00.000Z" } }

リクエストは、リクエスタメールボックスウィンドウの 3 つのセクションで構成されています。これらについては、本ガイドの次のリクエスタメールボックスWindowの各セクションで説明しています。

リクエスタ

リクエスタセクション、Amazon WorkMail に最初のリクエストを行ったユーザーに関する情報が表示されます。CAP はこの情報を使用してプロバイダーの行動を変更します。たとえば、このデータを使用してバックエンドのアベイラビリティプロバイダーの同じユーザーになりすましたり、特定の詳細を応答から省略したりできます。

フィールド 説明 必須

Email

リクエスタのメインメールアドレス。

はい

Username

リクエスタのユーザー名。

はい

Organization

リクエスタの組織 ID。

はい

UserID

リクエスタ ID。

はい

Origin

リクエスタの リモートアドレス。

いいえ

Bearer

将来の利用のために予約されています。

いいえ

メールボックス

メールボックスセクションには、空き状況情報を要求するユーザーの電子メールアドレスのコンマ区切りリストが含まれます。

Window

ウィンドウセクションには、可用性情報を要求する時間枠が含まれます。startDateendDateとも UTC で指定され、RFC 3339 に従ってフォーマットされています。イベントが切り捨てられることは想定されていません。つまり、定義したイベントより前に開始されたイベントはStartDate、元の開始位置が使用されます。

レスポンス要素

Amazon WorkMail は CAP Lambda 関数から応答を受け取るまで 25 秒間待機します。25 秒後、Amazon WorkMail は関数が失敗したとみなし、EWS の GetUserAvailability レスポンスで関連するメールボックスの障害を生成します。これによって GetUserAvailability オペレーション全体が失敗するわけではありません。

以下は、このセクションの冒頭で定義した構成からの応答例です。

{ "mailboxes": [{ "mailbox": "user2@external.example.com", "events": [{ "startTime": "2021-05-03T23:00:00.000Z", "endTime": "2021-05-04T03:00:00.000Z", "busyType": "BUSY"|"FREE"|"TENTATIVE", "details": { // optional "subject": "Late meeting", "location": "Chime", "instanceType": "SINGLE_INSTANCE"|"RECURRING_INSTANCE"|"EXCEPTION", "isMeeting": true, "isReminderSet": true, "isPrivate": false } }], "workingHours": { "timezone": { "name": "W. Europe Standard Time" "bias": 60, "standardTime": { // optional (not needed for fixed offsets) "offset": 60, "time": "02:00:00", "month": "JAN"|"FEB"|"MAR"|"APR"|"JUN"|"JUL"|"AUG"|"SEP"|"OCT"|"NOV"|"DEC", "week": "FIRST"|"SECOND"|"THIRD"|"FOURTH"|"LAST", "dayOfWeek": "SUN"|"MON"|"TUE"|"WED"|"THU"|"FRI"|"SAT" }, "daylightTime": { // optional (not needed for fixed offsets) "offset": 0, "time": "03:00:00", "month": "JAN"|"FEB"|"MAR"|"APR"|"JUN"|"JUL"|"AUG"|"SEP"|"OCT"|"NOV"|"DEC", "week": "FIRST"|"SECOND"|"THIRD"|"FOURTH"|"LAST", "dayOfWeek": "SUN"|"MON"|"TUE"|"WED"|"THU"|"FRI"|"SAT" }, }, "workingPeriods":[{ "startMinutes": 480, "endMinutes": 1040, "days": ["SUN"|"MON"|"TUE"|"WED"|"THU"|"FRI"|"SAT"] }] } },{ "mailbox": "unknown@internal.example.com", "error": "MailboxNotFound" }] }

レスポンスは、メールボックスのリストで構成される 1 つのメールボックスセクションで構成されます。可用性が正常に取得された各メールボックスは、「メールボックス」、「イベント」、「稼働時間」の 3 つのセクションで構成されています。アベイラビリティプロバイダーがメールボックスの空き時間情報を取得できなかった場合、セクションはメールボックスエラーの 2 つのセクションで構成されます。これらについては、本ガイドの次のメールボックスイベント稼働時間タイムゾーン作業期間エラーの各セクションで説明しています。

メールボックス

メールボックスセクションは、リクエストのメールボックスセクションにあるユーザーのメールアドレスです。

イベント

イベントセクションは、リクエストされたウィンドウで発生するイベントのリストです。各イベントは、次のパラメータで定義されます。

フィールド 説明 必須

startTime

イベントの開始時刻は UTC で、RFC 3339 に従ってフォーマットされています。

はい

endTime

イベントの終了時刻は UTC で、RFC 3339 に従ってフォーマットされています。

はい

busyType

イベントのビジータイプ。BusyFree、または Tentative のいずれかを設定できます。

はい

details

イベントの詳細

いいえ

details.subject

イベントの件名

はい

details.location

イベントの場所。

はい

details.instanceType

イベントのインスタンスタイプ。Single_InstanceRecurring_Instance、または Exception のいずれかを設定できます。

はい

details.isMeeting

イベントに出席者がいるかどうかを示すブール値。

はい

details.isReminderSet

イベントにリマインダーが設定されているかどうかを示すブール値。

はい

details.isPrivate

イベントが非公開に設定されているかどうかを示すブール値。

はい

稼働時間

WorkingHours セクションには、メールボックス所有者の勤務時間に関する情報が含まれていますこれには、タイムゾーンと稼働期間の 2 つのセクションがあります。

タイムゾーン

タイムゾーン サブセクションには、メールボックス所有者のタイムゾーンが記述されています。リクエスタが別のタイムゾーンで働いている場合は、ユーザーの勤務時間を正しく表示することが重要です。アベイラビリティプロバイダーは、名前を使用するのではなく、タイムゾーンを明示的に記述する必要があります。標準化されたタイムゾーンの説明を使用すると、タイムゾーンの不一致を防ぐことができます。

フィールド 説明 必須

name

タイムゾーンの名前。

はい

bias

GMT からのデフォルトオフセット (単位:分)。

はい

standardTime

指定されたタイムゾーンの標準時間の開始。

いいえ

daylightTime

指定したタイムゾーンの夏時間の開始。

いいえ

との両方を定義するかdaylightTimestandardTime両方を省略する必要があります。standardTimeand daylightTime オブジェクトのフィールドは以下のとおりです。

フィールド 説明 許可された値

offset

デフォルトオフセットを基準にしたオフセット (単位:分)。

NA

time

標準時間と夏時間の切り替えが行われる時刻。hh:mm:ssとして指定します。

NA

month

標準時間と夏時間の切り替えが行われる月。

JAN,FEB, MAR, APR, JUN, JUL, AUG, SEP, OCT, NOV, DEC

week

指定した月のうち、標準時間と夏時間の切り替えが行われる週。

FIRST, SECOND, THIRD, FOURTH, LAST

dayOfWeek

指定した週のうち、標準時間と夏時間の切り替えが行われる日。

SUN, MON, TUE, WED, THU, FRI, SAT

作業期間

WorkingPeriodsセクションには、1つ以上の作業期間オブジェクトが含まれています。各期間は、1 日以上の稼働日の開始と終了を定義します。

フィールド 説明 許可された値

startMinutes

1 日の開始時刻を午前 0 時から分単位で表したものです。

NA

endMinutes

1 日の終了時間を午前 0 時からの分単位で表したものです。

NA

days

この期間が適用される日。

SUN, MON, TUE, WED, THU, FRI, SAT

エラー

エラー フィールドには任意のエラーメッセージを格納できます。次の表は、既知のコードと EWS エラーコードのマッピングを示しています。その他のメッセージはすべてにマップされます。ERROR_FREE_BUSY_GENERATION_FAILED

EWS エラーコード

MailboxNotFound

ERROR_MAIL_RECIPIENT_NOT_FOUND

ErrorAvailabilityConfigNotFound

ERROR_AVAILABILITY_CONFIG_NOT_FOUND

ErrorServerBusy

ERROR_SERVER_BUSY

ErrorTimeoutExpired

ERROR_TIMEOUT_EXPIRED

ErrorFreeBusyGenerationFailed

ERROR_FREE_BUSY_GENERATION_FAILED

ErrorResponseSchemaValidation

ERROR_RESPONSE_SCHEMA_VALIDATION

アクセス権の付与

AWS Command Line Interface () から次の Lambda コマンドを実行しますAWS CLI。このコマンドは、CAP を解析する Lambda 関数にリソースポリシーを追加します。この関数により、Amazon WorkMail アベイラビリティサービスが Lambda 関数を呼び出すことができます。

aws lambda add-permission \ --region LAMBDA_REGION \ --function-name CAP_FUNCTION_NAME \ --statement-id AllowWorkMail \ --action "lambda:InvokeFunction" \ --principal availability.workmail.WM_REGION.amazonaws.com \ --source-account WM_ACCOUNT_ID \ --source-arn arn:aws:workmail:WM_REGION:WM_ACCOUNT_ID:organization/ORGANIZATION_ID

コマンドでは、以下のパラメータを指定された場所に追加します。

  • LAMBDA_REGION — CAP Lambda がデプロイされているリージョンの名前。例えば、us-east-1 と指定します。

  • CAP_FUNCTION_NAME — CAP Lambda 関数の名前。

    注記

    これには、CAP Lambda 関数の名前、エイリアス、ARN の一部または全部を使用できます。

  • WM_REGION — Amazon WorkMail 組織が Lambda 関数を呼び出すリージョンの名前。

    注記

    CAP で使用できるのは次のリージョンのみです。

    • 米国東部 (バージニア北部)

    • 米国西部 (オレゴン)

    • 欧州 (アイルランド)

  • WM_ACCOUNT_ID — 組織アカウントの ID。

  • ORGANIZATION_ID — CAP Lambda を呼び出す組織の ID。Org ID: m-934ebb9eb57145d0a6cab566ca81a21fなど

注記

LAMBDA_REGIONWM_REGION は、クロスリージョン呼び出しが必要な場合にのみ異なります。クロスリージョン呼び出しが不要な場合も同様です。

CAP Lambda 関数を使用する Amazon WorkMail の例

Amazon WorkMail が CAP Lambda 関数を使用して EWS エンドポイントをクエリする例については、Amazon WorkMail GitHub リポジトリ用の サーバーレスアプリケーション にあるこのAWS サンプルアプリケーションを参照してください。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.