Add docs for AWS Lambda, SNS and SQS (#478)
* Add docs for AWS Lambda, SNS and SQS * Improve SNS documentation
This commit is contained in:
parent
c10b2d2204
commit
62a6a078b7
6 changed files with 172 additions and 0 deletions
77
source/_components/notify.aws_lambda.markdown
Normal file
77
source/_components/notify.aws_lambda.markdown
Normal file
|
@ -0,0 +1,77 @@
|
|||
---
|
||||
layout: page
|
||||
title: "AWS Lambda"
|
||||
description: "Instructions how to invoke AWS Lambda functions from Home Assistant."
|
||||
date: 2016-05-14 16:35
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: aws_lambda.png
|
||||
ha_category: Notifications
|
||||
ha_release: 0.20
|
||||
---
|
||||
|
||||
The AWS Lambda notify platform enables invoking [AWS Lambda](https://aws.amazon.com/lambda/) functions.
|
||||
|
||||
### Configuration
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
notify:
|
||||
platform: aws_lambda
|
||||
name: NOTIFIER_NAME
|
||||
aws_access_key_id: AWS_ACCESS_KEY_ID
|
||||
aws_secret_access_key: AWS_SECRET_ACCESS_KEY
|
||||
profile_name: AWS_PROFILE
|
||||
region_name: 'us-east-1'
|
||||
# Optional
|
||||
context:
|
||||
...
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`.
|
||||
- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`.
|
||||
- **profile_name** (*Optional*): A credentials profile name. For more information, please see the [boto3 documentation section about credentials](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file).
|
||||
- **region_name** (*Required*): The region identifier to connect to. The default is `us-east-1`.
|
||||
- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`.
|
||||
- **context** (*Optional*): An optional dictionary you can provide to pass custom context through to the Lambda function. The `context` dictionary (if any) is combined with the same data available at the `/api/config` HTTP API route.
|
||||
|
||||
### Usage
|
||||
|
||||
AWS Lambda is a notify platform and thus can be controlled by calling the notify service [as described here](/components/notify/). It will invoke a Lambda for all targets given in the notification payload. A target can be formatted as a function name, an entire ARN ([Amazon Resource Name](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)) or a partial ARN. For more information, please see the [boto3 docs](http://boto3.readthedocs.io/en/latest/reference/services/lambda.html#Lambda.Client.invoke).
|
||||
|
||||
The Lambda event payload will contain everything passed in the service call payload. Here is an example payload that would be sent to Lambda:
|
||||
|
||||
```json
|
||||
{
|
||||
"title": "Test message!",
|
||||
"target": "arn:aws:lambda:us-east-1:123456789012:function:ProcessKinesisRecords",
|
||||
"data": {
|
||||
"test": "okay"
|
||||
},
|
||||
"message": "Hello world!"
|
||||
}
|
||||
```
|
||||
|
||||
The context will look like this:
|
||||
|
||||
```json
|
||||
{
|
||||
"hass": {
|
||||
"components": ["recorder", "logger", "http", "logbook", "api", "frontend"],
|
||||
"latitude": 44.1234,
|
||||
"location_name": "Home",
|
||||
"longitude": 5.5678,
|
||||
"temperature_unit": "°C",
|
||||
"time_zone": "Europe/Zurich",
|
||||
"version": "0.20.0.dev0"
|
||||
},
|
||||
"custom": {
|
||||
"two": "three",
|
||||
"test": "one"
|
||||
}
|
||||
}
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue