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 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. Dalam perintah ini, ganti:-
function_name
dengan nama fungsi Lambda. Anda menambahkan izin baru untuk memperbarui kebijakan sumber daya fungsi. -
region
dengan Wilayah AWS fungsi tersebut. -
account-id
dengan Akun AWS nomor di mana aturan didefinisikan. -
rule-name
dengan nama AWS IoT aturan yang Anda definisikan tindakan Lambda. -
unique_id
dengan pengidentifikasi pernyataan unik.
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.
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" -
-
Jika Anda menggunakan AWS IoT konsol untuk membuat aturan untuk tindakan aturan Lambda, fungsi Lambda dipicu secara otomatis. Jika Anda menggunakan AWS CloudFormation sebagai gantinya dengan
AWS::IoT::TopicRule LambdaAction
, Anda harus menambahkanAWS::lambda::Permission
sumber daya. Sumber daya kemudian memberi Anda izin untuk memicu fungsi Lambda.Kode berikut menunjukkan contoh cara menambahkan sumber daya ini. Dalam contoh ini, ganti:
-
function_name
dengan nama fungsi Lambda. -
region
dengan Wilayah AWS fungsi tersebut. -
account-id
dengan Akun AWS nomor di mana aturan didefinisikan. -
rule-name
dengan nama AWS IoT aturan yang Anda definisikan tindakan Lambda.
Type: AWS::Lambda::Permission Properties: Action: lambda:InvokeFunction FunctionName: !Ref
function_name
Principal: "iot.amazonaws.com" SourceAccount:account-id
SourceArn: arn:aws:iot:region
:account-id
:rule/rule_name
-
-
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
-
Fungsi Lambda untuk memanggil. ARN 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 fungsi Lambda. ARN
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
JSONContoh berikut mendefinisikan tindakan Lambda dalam AWS IoT aturan.
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "lambda": { "functionArn": "arn:aws:lambda:us-east-2:123456789012:function:myLambdaFunction" } } ] } }
JSONContoh 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