

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Lambda
<a name="lambda-rule-action"></a>

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](iot-lambda-rule.md).

## Persyaratan
<a name="lambda-rule-action-requirements"></a>

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\$1name*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\$1id*dengan pengidentifikasi pernyataan unik.
**penting**  
Jika Anda menambahkan izin untuk AWS IoT prinsipal tanpa memberikan `source-arn` atau`source-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](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html).

  ```
  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 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html), Anda harus menambahkan [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)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\$1name*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](https://docs.aws.amazon.com/lambda/latest/dg/security-dataprotection.html#security-privacy-atrest) di *Panduan Developer AWS Lambda *.

## Parameter
<a name="lambda-rule-action-parameters"></a>

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](#lambda-rule-action-requirements).  
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](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html) dan alias.  
Mendukung [template substitusi](iot-substitution-templates.md): API dan hanya AWS CLI 

## Contoh
<a name="lambda-rule-action-examples"></a>

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
<a name="lambda-rule-action-see-also"></a>
+ [Apa itu AWS Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/) di *Panduan AWS Lambda Pengembang*
+ [Tutorial: Memformat notifikasi dengan menggunakan fungsi AWS Lambda](iot-lambda-rule.md)