Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Lambda
Tindakan Lambda (lambda
) memanggil AWS Lambda fungsi, meneruskan pesan MQTT. AWS IoT memanggil fungsi Lambda secara asinkron.
Anda dapat mengikuti tutorial yang menunjukkan cara membuat dan menguji aturan dengan tindakan Lambda. Untuk informasi selengkapnya, lihat Tutorial: Memformat notifikasi dengan menggunakan fungsi AWS Lambda.
Persyaratan
Tindakan aturan ini memiliki persyaratan sebagai berikut:
-
AWS IoT Untuk menjalankan fungsi Lambda, Anda harus mengonfigurasi kebijakan yang memberikan izin
lambda:InvokeFunction
. AWS IoT Anda hanya dapat menjalankan fungsi Lambda yang ditentukan di tempat yang Wilayah AWS sama di mana kebijakan Lambda Anda ada. Fungsi Lambda menggunakan kebijakan berbasis sumber daya, jadi Anda harus melampirkan kebijakan ke fungsi Lambda itu sendiri.Gunakan AWS CLI perintah berikut untuk melampirkan kebijakan yang memberikan
lambda:InvokeFunction
izin.aws lambda add-permission --function-name
function_name
--regionregion
--principal iot.amazonaws.com --source-arn arn:aws:iot:region
:account-id
:rule/rule_name
--source-accountaccount-id
--statement-idunique_id
--action "lambda:InvokeFunction"add-permission
Perintah mengharapkan parameter berikut:--function-name
-
Nama fungsi Lambda. Anda menambahkan izin baru untuk memperbarui kebijakan sumber daya fungsi.
--region
-
Wilayah AWS Fungsi.
--principal
-
Kepala sekolah yang mendapat izin. Ini harus memungkinkan AWS IoT izin
iot.amazonaws.com
untuk memanggil fungsi Lambda. --source-arn
-
ARN dari aturan tersebut. Anda dapat menggunakan
get-topic-rule
AWS CLI perintah untuk mendapatkan ARN aturan. --source-account
-
Di Akun AWS mana aturan didefinisikan.
--statement-id
-
Pengidentifikasi pernyataan unik.
--action
-
Tindakan Lambda yang ingin Anda izinkan dalam pernyataan ini. AWS IoT Untuk memungkinkan menjalankan fungsi Lambda, tentukan.
lambda:InvokeFunction
penting
Jika Anda menambahkan izin untuk AWS IoT prinsipal tanpa memberikan
source-arn
atausource-account
, apa pun Akun AWS yang membuat aturan dengan tindakan Lambda Anda dapat mengaktifkan aturan untuk menjalankan fungsi Lambda Anda. AWS IoTUntuk informasi selengkapnya, lihat izin AWS Lambda.
-
Jika Anda menggunakan AWS KMS pelanggan yang AWS KMS key berhasil mengenkripsi data saat istirahat di Lambda, layanan harus memiliki izin untuk menggunakan atas AWS KMS key nama penelepon. Untuk informasi lebih lanjut, lihat Enkripsi saat diam di Panduan Developer AWS Lambda .
Parameter
Saat Anda membuat AWS IoT aturan dengan tindakan ini, Anda harus menentukan informasi berikut:
functionArn
-
ARN dari fungsi Lambda untuk memanggil. AWS IoT harus memiliki izin untuk menjalankan fungsi. Untuk informasi selengkapnya, lihat Persyaratan.
Jika Anda tidak menentukan versi atau alias untuk fungsi Lambda Anda, versi terbaru dari fungsi tersebut dimatikan. Anda dapat menentukan versi atau alias jika Anda ingin mematikan versi tertentu dari fungsi Lambda Anda. Untuk menentukan versi atau alias, tambahkan versi atau alias ke ARN dari fungsi Lambda.
arn:aws:lambda:us-east-2:123456789012:function:myLambdaFunction:someAlias
Untuk informasi selengkapnya tentang pembuatan versi dan alias, dan lihat versi AWS Lambda fungsi dan alias.
Mendukung template substitusi: API dan hanya AWS CLI
Contoh
Contoh JSON berikut mendefinisikan tindakan Lambda dalam aturan. AWS IoT
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "lambda": { "functionArn": "arn:aws:lambda:us-east-2:123456789012:function:myLambdaFunction" } } ] } }
Contoh JSON berikut mendefinisikan tindakan Lambda dengan template substitusi dalam aturan. AWS IoT
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "lambda": { "functionArn": "arn:aws:lambda:us-east-1:123456789012:function:${topic()}" } } ] } }
Lihat juga
-
Apa itu AWS Lambda? di Panduan AWS Lambda Pengembang
-
Tutorial: Memformat notifikasi dengan menggunakan fungsi AWS Lambda