mirror of
				https://github.com/node-red/node-red-nodes.git
				synced 2025-03-01 10:37:43 +00:00 
			
		
		
		
	Implementation for Amazon DynamoDB
This commit is contained in:
		@@ -96,6 +96,8 @@ Uses a simple read of the serial port as a file to input data. You **must** set
 | 
			
		||||
 | 
			
		||||
**68-mysql** - Allows basic access to a MySQL database. This node uses the **query** operation against the configured database. This does allow both INSERTS and DELETES. By it's very nature it allows SQL injection... *so be careful out there...*
 | 
			
		||||
 | 
			
		||||
**69-ddbout** - Support output to Amazon DynamoDB.
 | 
			
		||||
 | 
			
		||||
### Time
 | 
			
		||||
 | 
			
		||||
**79-suncalc** - Uses the suncalc module to generate an output at sunrise and sunset based on a specified location. Several choices of definition of sunrise and sunset are available,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										72
									
								
								storage/ddb/69-ddbout.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								storage/ddb/69-ddbout.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
<!--
 | 
			
		||||
  Copyright 2013 Wolfgang Nagele
 | 
			
		||||
 | 
			
		||||
  Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
  you may not use this file except in compliance with the License.
 | 
			
		||||
  You may obtain a copy of the License at
 | 
			
		||||
 | 
			
		||||
  http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 | 
			
		||||
  Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
  distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
  See the License for the specific language governing permissions and
 | 
			
		||||
  limitations under the License.
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
<script type="text/x-red" data-template-name="ddb out">
 | 
			
		||||
    <div class="form-row">
 | 
			
		||||
        <label for="node-input-accessKey"><i class="icon-briefcase"></i> Access Key</label>
 | 
			
		||||
        <input type="text" id="node-input-accessKey" placeholder="Access Key">
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-row">
 | 
			
		||||
        <label for="node-input-secretAccessKey"><i class="icon-briefcase"></i> Secret Access Key</label>
 | 
			
		||||
        <input type="text" id="node-input-secretAccessKey" placeholder="Secret Access Key">
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-row">
 | 
			
		||||
        <label for="node-input-region"><i class="icon-th"></i> Region</label>
 | 
			
		||||
        <select type="text" id="node-input-region">
 | 
			
		||||
        <option value="us-east-1">US East, Northern Virginia</option>
 | 
			
		||||
        <option value="us-west-2">US West, Oregon</option>
 | 
			
		||||
        <option value="us-west-1">US West, Northern California</option>
 | 
			
		||||
        <option value="eu-west-1">EU, Ireland</option>
 | 
			
		||||
        <option value="ap-southeast-1">Asia Pacific, Singapore</option>
 | 
			
		||||
        <option value="ap-southeast-2">Asia Pacific, Sydney</option>
 | 
			
		||||
        <option value="ap-northeast-1">Asia Pacific, Tokyo</option>
 | 
			
		||||
        <option value="sa-east-1">South America, Sao Paulo</option>
 | 
			
		||||
        </select>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-row">
 | 
			
		||||
        <label for="node-input-table"><i class="icon-tasks"></i> Table</label>
 | 
			
		||||
        <input type="text" id="node-input-table" placeholder="Table">
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-row">
 | 
			
		||||
        <label for="node-input-name"><i class="icon-tag"></i> Name</label>
 | 
			
		||||
        <input type="text" id="node-input-name" placeholder="Name">
 | 
			
		||||
    </div>
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script type="text/x-red" data-help-name="ddb out">
 | 
			
		||||
	<p>A Amazon DynamoDB output node.</p>
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
    RED.nodes.registerType("ddb out", {
 | 
			
		||||
        category: "storage-output",
 | 
			
		||||
        color: "#ffaaaa",
 | 
			
		||||
        defaults: {
 | 
			
		||||
            accessKey: { value: "", required: true },
 | 
			
		||||
            secretAccessKey: { value: "", required: true },
 | 
			
		||||
            region: { value: "us-east-1" },
 | 
			
		||||
            table: { value: "", required: true },
 | 
			
		||||
            name: { value: "" }
 | 
			
		||||
        },
 | 
			
		||||
        inputs: 1,
 | 
			
		||||
        outputs: 0,
 | 
			
		||||
        icon: "db.png",
 | 
			
		||||
        align: "right",
 | 
			
		||||
        label: function() {
 | 
			
		||||
            return this.name || this.table + " (" + this.region + ")";
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
</script>
 | 
			
		||||
							
								
								
									
										45
									
								
								storage/ddb/69-ddbout.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								storage/ddb/69-ddbout.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Copyright 2013 Wolfgang Nagele
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 **/
 | 
			
		||||
 | 
			
		||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
 | 
			
		||||
var util = require("util");
 | 
			
		||||
var aws = require("aws-sdk");
 | 
			
		||||
var attrWrapper = require("dynamodb-data-types").AttributeValue;
 | 
			
		||||
 | 
			
		||||
function DDBOutNode(n) {
 | 
			
		||||
    RED.nodes.createNode(this, n);
 | 
			
		||||
    this.accessKey = n.accessKey;
 | 
			
		||||
    this.secretAccessKey = n.secretAccessKey;
 | 
			
		||||
    this.region = n.region || "us-east-1";
 | 
			
		||||
    this.table = n.table;
 | 
			
		||||
 | 
			
		||||
    aws.config.update({ accessKeyId: this.accessKey,
 | 
			
		||||
                        secretAccessKey: this.secretAccessKey,
 | 
			
		||||
                        region: this.region });
 | 
			
		||||
 | 
			
		||||
    var ddb = new aws.DynamoDB();
 | 
			
		||||
 | 
			
		||||
    this.on("input", function(msg) {
 | 
			
		||||
        if (msg != null) {
 | 
			
		||||
            ddb.putItem({ "TableName": this.table,
 | 
			
		||||
                          "Item": attrWrapper.wrap(msg.payload) },
 | 
			
		||||
            function(err, data) {
 | 
			
		||||
                err && util.log(err);
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
RED.nodes.registerType("ddb out", DDBOutNode);
 | 
			
		||||
		Reference in New Issue
	
	Block a user