기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Lambda
Lambda(lambda
) 작업은 AWS Lambda 함수를 호출하여 MQTT message. AWS IoT invokes Lambda 함수를 비동기적으로 전달합니다.
Lambda 작업을 사용하여 규칙을 생성하고 테스트하는 방법을 보여주는 자습서를 따라할 수 있습니다. 자세한 내용은 자습서: AWS Lambda 함수를 사용하여 알림 형식 지정 단원을 참조하십시오.
요구 사항
이 규칙 작업은 다음 요구 사항을 충족해야 합니다.
-
Lambda 함수를 호출 AWS IoT 하려면 에
lambda:InvokeFunction
권한을 부여하는 정책을 구성해야 합니다 AWS IoT. Lambda 정책이 있는 AWS 리전 동일한 에 정의된 Lambda 함수만 호출할 수 있습니다. Lambda 함수는 리소스 기반 정책을 사용합니다. 이때 정책은 Lambda 함수 자체에 직접 연결되어야 합니다.다음 AWS CLI 명령을 사용하여
lambda:InvokeFunction
권한을 부여하는 정책을 연결합니다.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
명령에는 다음 파라미터가 있습니다.--function-name
-
Lambda 함수의 이름입니다. 함수의 리소스 정책을 업데이트하려면 새 권한을 추가 합니다.
--region
-
함수 AWS 리전 의 .
--principal
-
사용 권한을 얻는 보안 주체입니다. 이는 Lambda 함수를 호출할 수 있는 AWS IoT 권한을 허용
iot.amazonaws.com
하기 위한 것이어야 합니다. --source-arn
-
규칙ARN의 .
get-topic-rule
AWS CLI 명령을 사용하여 규칙ARN의 를 가져올 수 있습니다. --source-account
-
규칙이 정의된 AWS 계정 입니다.
--statement-id
-
고유한 문 식별자입니다.
--action
-
이 문에서 허용할 Lambda 작업입니다. 가 Lambda 함수를 호출 AWS IoT 하도록 허용하려면 를 지정합니다
lambda:InvokeFunction
.
중요
source-arn
또는 를 제공하지 않고 AWS IoT 보안 주체에 대한 권한을 추가하는 경우 Lambda 작업으로 규칙을 생성하는source-account
AWS 계정 는 규칙을 활성화하여 에서 Lambda 함수를 호출할 수 있습니다 AWS IoT.자세한 내용은 AWS Lambda 권한을 참조하세요.
-
Lambda에서 유휴 데이터를 암호화하는 AWS KMS key 데 관리형 AWS KMS 고객을 사용하는 경우 서비스에는 호출자를 대신하여 AWS KMS key 를 사용할 수 있는 권한이 있어야 합니다. 자세한 내용은 AWS Lambda 개발자 안내서의 저장 시 암호화를 참조하세요.
파라미터
이 작업으로 AWS IoT 규칙을 생성할 때 다음 정보를 지정해야 합니다.
functionArn
-
invoke. AWS IoT mus에 함수를 호출할 권한이 있는 Lambda 함수ARN의 . 자세한 내용은 요구 사항 단원을 참조하십시오.
Lambda 함수의 버전 또는 별칭을 지정하지 않은 경우, 가장 최신 버전의 함수가 종료됩니다. 특정 버전의 Lambda 함수를 종료하고자 하는 경우 버전 또는 별칭을 지정하면 됩니다. 버전 또는 별칭을 지정하려면 Lambda 함수ARN의 에 버전 또는 별칭을 추가합니다.
arn:aws:lambda:us-east-2:123456789012:function:myLambdaFunction:someAlias
버전 관리 및 별칭에 대한 자세한 내용은 AWS Lambda 함수 버전 관리 및 별칭을 참조하세요.
대체 템플릿 : API 및 AWS CLI 만 지원
예시
다음 JSON 예제에서는 AWS IoT 규칙에서 Lambda 작업을 정의합니다.
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "lambda": { "functionArn": "arn:aws:lambda:us-east-2:123456789012:function:myLambdaFunction" } } ] } }
다음 JSON 예제에서는 AWS IoT 규칙의 대체 템플릿이 있는 Lambda 작업을 정의합니다.
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "lambda": { "functionArn": "arn:aws:lambda:us-east-1:123456789012:function:${topic()}" } } ] } }
다음 사항도 참조하세요.
-
AWS Lambda 개발자 안내서의 AWS Lambda?란 무엇입니까?