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 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_namedengan nama fungsi Lambda. Anda menambahkan izin baru untuk memperbarui kebijakan sumber daya fungsi.

    • regiondengan Wilayah AWS fungsi tersebut.

    • account-iddengan Akun AWS nomor di mana aturan didefinisikan.

    • rule-namedengan nama AWS IoT aturan yang Anda definisikan tindakan Lambda.

    • unique_iddengan 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 IoT

    Untuk informasi selengkapnya, lihat izin AWS Lambda.

    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"
  • 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 menambahkan AWS::lambda::Permissionsumber 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_namedengan nama fungsi Lambda.

    • regiondengan Wilayah AWS fungsi tersebut.

    • account-iddengan Akun AWS nomor di mana aturan didefinisikan.

    • rule-namedengan 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