Lambda - AWS IoT Core

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 izinlambda: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 --region region --principal iot.amazonaws.com --source-arn arn:aws:iot:region:account-id:rule/rule_name --source-account account-id --statement-id unique_id --action "lambda:InvokeFunction"

    add-permissionPerintah 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 IoT

    Untuk 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