Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membangun fungsi Lambda Penyedia Ketersediaan Kustom
Penyedia Ketersediaan Kustom (CAPs) dikonfigurasi dengan protokol permintaan dan respons berbasis JSON yang ditulis dalam skema JSON yang terdefinisi dengan baik. Fungsi Lambda akan mengurai permintaan dan memberikan respons yang valid.
Elemen permintaan dan respons
Elemen permintaan
Berikut ini adalah contoh permintaan yang digunakan untuk mengonfigurasi CAP untuk WorkMail pengguna Amazon:
{ "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" } }
Permintaan terdiri dari tiga bagian: pemohon, kotak surat, dan jendela. Ini dijelaskan dalam berikutPeminta,Kotak surat, dan Jendela bagian dari panduan ini.
Peminta
Bagian pemohon memberikan informasi tentang pengguna yang membuat permintaan asli ke Amazon WorkMail. CAPs gunakan informasi ini untuk mengubah perilaku penyedia. Misalnya, data ini dapat digunakan untuk meniru pengguna yang sama di penyedia ketersediaan backend atau detail tertentu dapat dihilangkan dari respons.
Bidang | Deskripsi | Wajib |
---|---|---|
|
Alamat email utama pemohon. |
Ya |
|
Nama pengguna pemohon. |
Ya |
|
ID organisasi pemohon. |
Ya |
|
ID pemohon. |
Ya |
|
Alamat jarak jauh dari permintaan. |
Tidak |
|
Terpesan untuk digunakan di masa mendatang. |
Tidak |
Kotak surat
Bagian kotak pesan berisi daftar alamat email pengguna yang dipisahkan koma yang meminta informasi ketersediaannya.
Jendela
Bagian jendela berisi jendela waktu yang diminta informasi ketersediaan. Keduanya startDate
dan endDate
ditentukan dalam UTC dan diformat sesuai dengan RFCStartDate
, awal asli akan digunakan.
Elemen jawaban
Amazon WorkMail akan menunggu selama 25 detik untuk mendapatkan respons dari fungsi CAP Lambda. Setelah 25 detik, Amazon WorkMail akan menganggap fungsi tersebut gagal dan menghasilkan kegagalan untuk kotak pesan terkait dalam respons EWS GetUserAvailability. Ini tidak akan menyebabkan seluruh GetUserAvailability operasi gagal.
Berikut ini adalah contoh respons dari konfigurasi yang ditentukan di awal bagian ini:
{ "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" }] }
Respons terdiri dari satu bagian kotak pesan yang terdiri dari daftar kotak pesan. Setiap kotak pesan yang ketersediaannya berhasil diperoleh terdiri dari tiga bagian: kotak surat, acara, dan jam kerja. Jika penyedia ketersediaan gagal mendapatkan informasi ketersediaan untuk kotak pesan, bagian ini terdiri dari dua bagian: kotak pesan dan kesalahan. Ini dijelaskan dalam bagian berikutKotak surat,, PeristiwaJam Kerja,Zona waktu,Periode Kerja, dan Kesalahan bagian dari panduan ini.
Kotak surat
Bagian kotak pesan adalah alamat email pengguna yang ditemukan di bagian kotak pesan permintaan.
Peristiwa
Bagian peristiwa adalah daftar peristiwa yang terjadi di jendela yang diminta. Setiap peristiwa didefinisikan dengan parameter berikut:
Bidang | Deskripsi | Wajib |
---|---|---|
|
Waktu mulai acara di UTC dan diformat sesuai dengan RFC |
Ya |
|
Waktu akhir acara di UTC dan diformat sesuai dengan RFC |
Ya |
|
Jenis acara yang sibuk. Dapat berupa |
Ya |
|
Detail acara. |
Tidak |
|
Subjek acara. |
Ya |
|
Lokasi acara. |
Ya |
|
Jenis instance dari acara tersebut. Dapat berupa |
Ya |
|
Sebuah Boolean untuk menunjukkan apakah acara memiliki peserta. |
Ya |
|
Sebuah Boolean untuk menunjukkan jika acara memiliki set pengingat. |
Ya |
|
Sebuah Boolean untuk menunjukkan jika acara diatur ke pribadi. |
Ya |
Jam Kerja
Bagian WorkingHours berisi informasi tentang jam kerja pemilik kotak pesan. Ini berisi dua bagian: zona waktu dan WorkingPeriod.
Zona waktu
Subbagian zona waktu menjelaskan zona waktu pemilik kotak pesan. Penting untuk merender jam kerja pengguna dengan benar saat pemohon bekerja di zona waktu yang berbeda. Penyedia ketersediaan diharuskan untuk menjelaskan zona waktu secara eksplisit, daripada menggunakan nama. Menggunakan deskripsi zona waktu standar membantu menghindari ketidakcocokan zona waktu.
Bidang | Deskripsi | Wajib |
---|---|---|
|
Nama zona waktu. |
Ya |
|
Offset default dari GMT dalam hitungan menit. |
Ya |
|
Awal waktu standar untuk zona waktu yang ditentukan. |
Tidak |
|
Awal waktu penghematan siang hari untuk zona waktu yang ditentukan. |
Tidak |
Anda harus mendefinisikan keduanya standardTime
dandaylightTime
, atau menghilangkan keduanya. Bidang dalam standardTime
dan daylightTime
objek adalah:
Bidang | Deskripsi | Nilai yang Diizinkan |
---|---|---|
|
Offset relatif terhadap offset default dalam hitungan menit. |
TA |
|
Waktu di mana transisi antara waktu standar dan waktu musim panas terjadi, ditentukan sebagai |
TA |
|
Bulan di mana transisi antara waktu standar dan waktu musim panas terjadi. |
|
|
Minggu dalam bulan yang ditentukan bahwa transisi antara waktu standar dan waktu musim panas terjadi. |
|
|
Hari dalam minggu yang ditentukan bahwa transisi antara waktu standar dan waktu musim panas terjadi. |
|
Periode Kerja
Bagian WorkingPeriod berisi satu atau lebih objek periode kerja. Setiap periode menentukan awal dan akhir hari kerja selama satu hari atau lebih.
Bidang | Deskripsi | Nilai yang Diizinkan |
---|---|---|
|
Awal hari kerja dalam hitungan menit dari tengah malam. |
TA |
|
Akhir hari kerja dalam hitungan menit dari tengah malam. |
TA |
|
Hari-hari di mana periode ini berlaku. |
|
Kesalahan
Bidang kesalahan dapat berisi pesan kesalahan arbitrer. Tabel berikut mencantumkan pemetaan kode terkenal untuk kode kesalahan EWS. Semua pesan lainnya akan dipetakan keERROR_FREE_BUSY_GENERATION_FAILED
.
Nilai | Kode kesalahan EWS |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Memberi Akses
Jalankan perintah Lambda berikut dari AWS Command Line Interface ()AWS CLI. Perintah ini menambahkan kebijakan sumber daya ke fungsi Lambda yang mem-parsing CAP. Fungsi ini memungkinkan layanan WorkMail ketersediaan Amazon untuk menjalankan fungsi Lambda Anda.
aws lambda add-permission \ --region
LAMBDA_REGION
\ --function-nameCAP_FUNCTION_NAME
\ --statement-id AllowWorkMail \ --action "lambda:InvokeFunction" \ --principal availability.workmail.WM_REGION
.amazonaws.com \ --source-accountWM_ACCOUNT_ID
\ --source-arn arn:aws:workmail:WM_REGION
:WM_ACCOUNT_ID
:organization/ORGANIZATION_ID
Dalam perintah, tambahkan parameter berikut di mana ditunjukkan:
-
LAMBDA_REGION
— Nama wilayah tempat CAP Lambda dikerahkan. Misalnya,us-east-1
. -
CAP_FUNCTION_NAME
— Nama fungsi CAP Lambda.catatan
Ini bisa berupa nama, alias, atau ARN sebagian atau penuh dari fungsi CAP Lambda.
-
WM_REGION
— Nama wilayah tempat WorkMail organisasi Amazon memanggil fungsi Lambda.catatan
Hanya Wilayah berikut yang tersedia untuk digunakan dengan CAP:
-
AS Timur (Virginia Utara)
-
US West (Oregon)
-
Eropa (Irlandia)
-
-
WM_ACCOUNT_ID
— ID akun Organisasi. -
ORGANIZATION_ID
— ID Organisasi yang memanggil CAP Lambda. Misalnya, ID Org: m-934ebb9eb57145d0a6cab566ca81a21f.
catatan
LAMBDA_REGION
dan WM_REGION
akan berbeda hanya jika panggilan lintas wilayah diperlukan. Jika panggilan lintas wilayah tidak diperlukan, mereka akan sama.
Contoh Amazon WorkMail menggunakan fungsi CAP Lambda
Untuk contoh Amazon yang WorkMail menggunakan fungsi CAP Lambda untuk menanyakan titik akhir EWS, lihat AWS contoh aplikasi ini di aplikasi