{"id":2465,"date":"2016-12-29T19:34:16","date_gmt":"2016-12-29T19:34:16","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2465"},"modified":"2023-06-22T06:19:21","modified_gmt":"2023-06-22T13:19:21","slug":"aws-iot-button-lambda-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/","title":{"rendered":"AWS IoT Button, Lambda and Couchbase"},"content":{"rendered":"<p><a href=\"https:\/\/www.couchbase.com\/blog\/serverless-faas-aws-lambda-java\/\">Getting Started with Serverless FaaS and AWS Lambda<\/a> shows\u00a0how to use a simple Java function\u00a0to store a JSON document to\u00a0<a href=\"https:\/\/developer.couchbase.com\/server\" target=\"_blank\" rel=\"noopener noreferrer\">Couchbase<\/a> using AWS Lambda. This blog builds\u00a0upon that and shows how an <a href=\"https:\/\/aws.amazon.com\/iotbutton\/\" target=\"_blank\" rel=\"noopener noreferrer\">AWS IoT Button<\/a> can be used as a\u00a0trigger for that Lambda function. By end of this blog, you&#8217;ll learn:<\/p>\n<ul>\n<li>How to configure AWS IoT Button<\/li>\n<li>Use IoT Button as\u00a0trigger for Lambda Function<\/li>\n<li>Test IoT button<\/li>\n<\/ul>\n<p>The overall flow\u00a0will be:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2630\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/serverless-iot-couchbase-1024x428.png\" alt=\"serverless-iot-couchbase\" width=\"1024\" height=\"428\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/serverless-iot-couchbase-1024x428.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/serverless-iot-couchbase-1024x428-300x125.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/serverless-iot-couchbase-1024x428-768x321.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/serverless-iot-couchbase-1024x428-20x8.png 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>AWS Iot button click will invoke HelloCouchbaseLambda Lambda function. This function uses the <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/sdk\/java\/start-using-sdk.html\" target=\"_blank\" rel=\"noopener noreferrer\">Couchbase Java SDK<\/a> to create a JSON document in Couchbase.<\/p>\n<p>This blog is also playing\u00a0catch up with <a href=\"https:\/\/www.couchbase.com\/blog\/collecting-ibeacon-data-with-couchbase-and-raspberry-pi-iot-devices\/\">Collecting iBeacon Data with Couchbase and Raspberry Pi IoT Devices<\/a> by Nic and <a href=\"https:\/\/www.couchbase.com\/blog\/summer-project-2016-the-couchcase\/\">The CouchCase<\/a> by Matthew on their summer projects.\u00a0One last blog will be published in this series. That will show how multiple AWS IoT buttons can be used\u00a0for some fun.<\/p>\n<p>Let&#8217;s get started!<\/p>\n<h2>Configure IoT Button<\/h2>\n<p>The fastest way to configure IoT button \u00a0is using the mobile app for iOS or Android.<\/p>\n<p><a href=\"https:\/\/itunes.apple.com\/us\/app\/aws-iot-button\/id1178216626?mt=8\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2632\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/ios_icon.png\" width=\"350\" height=\"118\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/ios_icon.png 386w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/ios_icon-300x101.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/ios_icon-20x7.png 20w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/a>\u00a0<a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.amazonaws.iotbutton&amp;hl=en\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2633\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/android_icon.png\" width=\"347\" height=\"117\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/android_icon.png 386w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/android_icon-300x101.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/android_icon-20x7.png 20w\" sizes=\"auto, (max-width: 347px) 100vw, 347px\" \/><\/a><\/p>\n<p>More details about <a href=\"https:\/\/aws.amazon.com\/iotbutton\/getting-started\/\" target=\"_blank\" rel=\"noopener noreferrer\">configuring IoT Button using mobile app<\/a>. Here are some snapshots from configuring button using the mobile app.<\/p>\n<p>Bring up the app, click on + to start configuring a new button:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2634\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-button-configure-1-576x1024.png\" alt=\"\" width=\"576\" height=\"1024\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-1-576x1024.png 576w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-1-576x1024-169x300.png 169w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-1-576x1024-300x533.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-1-576x1024-11x20.png 11w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><br \/>\nEnter button&#8217;s serial number:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2635\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-button-configure-2-576x1024.png\" alt=\"aws-iot-button-configure-2\" width=\"576\" height=\"1024\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-2-576x1024.png 576w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-2-576x1024-169x300.png 169w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-2-576x1024-300x533.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-2-576x1024-11x20.png 11w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><br \/>\nRegister the button:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2636\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-button-configure-3-576x1024.png\" alt=\"aws-iot-button-configure-3\" width=\"576\" height=\"1024\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-3-576x1024.png 576w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-3-576x1024-169x300.png 169w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-3-576x1024-300x533.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-3-576x1024-11x20.png 11w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><br \/>\nConfigure the button\u00a0with wifi network:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2638\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-button-configure-4-576x1024.png\" alt=\"aws-iot-button-configure-4\" width=\"576\" height=\"1024\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-4-576x1024.png 576w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-4-576x1024-169x300.png 169w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-4-576x1024-300x533.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-4-576x1024-11x20.png 11w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><br \/>\nUpload all the certificates etc:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2639\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-button-configure-5-576x1024.png\" alt=\"aws-iot-button-configure-5\" width=\"576\" height=\"1024\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-5-576x1024.png 576w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-5-576x1024-169x300.png 169w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-5-576x1024-300x533.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-configure-5-576x1024-11x20.png 11w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><\/p>\n<p>After this, the button is configured and ready to use. This blog skipped the part where a template Lambda Function is associated with the button click. If \u00a0mobile app\u00a0cannot be used then the button can be <a href=\"https:\/\/docs.aws.amazon.com\/iot\/latest\/developerguide\/configure-iot.html\" target=\"_blank\" rel=\"noopener noreferrer\">configured manually<\/a>.<\/p>\n<h2>Use IoT Button as Trigger for Lambda Function<\/h2>\n<p>The<code> aws lambda create-event-source-mapping<\/code> CLI allows to create an event source for Lambda function. As of AWS CLI version <code>1.11.21<\/code>, only Amazon Kinesis stream or an Amazon DynamoDB stream can be used. But for this blog, we&#8217;ll use IoT button as a trigger. And this has to be configured using\u00a0<a href=\"https:\/\/us-west-2.console.aws.amazon.com\/lambda\/\" target=\"_blank\" rel=\"noopener noreferrer\">AWS Lambda Console<\/a>. IoT Button is only supported in a limited number of regions. For example, it is not supported in the\u00a0<code>us-west-1<\/code> region but <code>us-west-2<\/code> region works. The list of\u00a0regions not supported are greyed out in the following list:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2640\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-buttons-supported-region.png\" alt=\"aws-iot-buttons-supported-region\" width=\"406\" height=\"872\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-buttons-supported-region.png 406w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-buttons-supported-region-140x300.png 140w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-buttons-supported-region-300x644.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-buttons-supported-region-9x20.png 9w\" sizes=\"auto, (max-width: 406px) 100vw, 406px\" \/><br \/>\nLambda Function\u00a0can be triggered by several events.\u00a0Lambda Function is invoked when any of these\u00a0events occur. By default, no triggers are associated with\u00a0a Lambda Function. For our <code>HelloCouchbaseLambda<\/code> function, these can be seen at\u00a0 <a href=\"https:\/\/us-west-2.console.aws.amazon.com\/lambda\/home?region=us-west-2#\/functions\/HelloCouchbaseLambda?tab=triggers\" target=\"_blank\" rel=\"noopener noreferrer\">us-west-2.console.aws.amazon.com\/lambda\/home?region=us-west-2#\/functions\/HelloCouchbaseLambda?tab=triggers<\/a>.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2642\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/lambda-default-triggers.png\" alt=\"lambda-default-triggers\" width=\"984\" height=\"596\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/lambda-default-triggers.png 984w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/lambda-default-triggers-300x182.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/lambda-default-triggers-768x465.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/lambda-default-triggers-20x12.png 20w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><br \/>\nClick on <code>Add trigger<\/code> to add a new trigger:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2643\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/lambda-add-trigger-default-1024x224.png\" alt=\"lambda-add-trigger-default\" width=\"1024\" height=\"224\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/lambda-add-trigger-default-1024x224.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/lambda-add-trigger-default-1024x224-300x66.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/lambda-add-trigger-default-1024x224-768x168.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/lambda-add-trigger-default-1024x224-20x4.png 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\nSelect on the empty square to create a new trigger, and select <code>AWS IoT<\/code>:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2644\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/lambda-add-trigger-iot-1024x611.png\" alt=\"lambda-add-trigger-iot\" width=\"1024\" height=\"611\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/lambda-add-trigger-iot-1024x611.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/lambda-add-trigger-iot-1024x611-300x179.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/lambda-add-trigger-iot-1024x611-768x458.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/lambda-add-trigger-iot-1024x611-20x12.png 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\nFor\u00a0the button previously registered, get the serial number from\u00a0<a href=\"https:\/\/us-west-2.console.aws.amazon.com\/iotv2\/home?region=us-west-2#\/thinghub\" target=\"_blank\" rel=\"noopener noreferrer\">us-west-2.console.aws.amazon.com\/iotv2\/home?region=us-west-2#\/thinghub<\/a>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2641\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-things-hub-1024x416.png\" alt=\"aws-iot-things-hub-1024x416\" width=\"1024\" height=\"416\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-things-hub-1024x416.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-things-hub-1024x416-300x122.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-things-hub-1024x416-768x312.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-things-hub-1024x416-20x8.png 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\nSpecify the serial number of the button in the AWS IoT trigger:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2645\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-add-trigger-1024x391.png\" alt=\"aws-iot-add-trigger-1024x391\" width=\"1024\" height=\"391\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-add-trigger-1024x391.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-add-trigger-1024x391-300x115.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-add-trigger-1024x391-768x293.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-add-trigger-1024x391-20x8.png 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\nClick on Submit to create the trigger:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2646\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-added-trigger-1024x412.png\" alt=\"\" width=\"1024\" height=\"412\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-added-trigger-1024x412.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-added-trigger-1024x412-300x121.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-added-trigger-1024x412-768x309.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-added-trigger-1024x412-20x8.png 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\nAnd this confirms that the trigger has been added.<\/p>\n<h2>Test IoT Button<\/h2>\n<p>Before testing the button, let&#8217;s login to the Couchbase instance and verify the number of JSON documents in the bucket:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2647\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-button-couchbase-console-default-1024x298.png\" alt=\"aws-iot-button-couchbase-console-default-\" width=\"1024\" height=\"298\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-console-default-1024x298.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-console-default-1024x298-300x87.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-console-default-1024x298-768x224.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-console-default-1024x298-20x6.png 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\nThis can be verified at\u00a0<code>https:\/\/:8091\/index.html#sec=buckets<\/code>. As expected, no documents exists in the bucket. Press the button once, and refresh the page. It shows that one document is now stored in the bucket. This is verified in the Couchbase Web Console:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2648\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-button-couchbase-console-one-document-1024x290.png\" alt=\" aws-iot-button-couchbase-console-one-document\" width=\"1024\" height=\"290\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-console-one-document-1024x290.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-console-one-document-1024x290-300x85.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-console-one-document-1024x290-768x218.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-console-one-document-1024x290-20x6.png 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\nClick on <code>Documents<\/code> to see the complete list of documents:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2649\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-button-couchbase-one-document-2-1024x307.png\" alt=\" aws-iot-button-couchbase-one-document-2\" width=\"1024\" height=\"307\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-one-document-2-1024x307.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-one-document-2-1024x307-300x90.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-one-document-2-1024x307-768x230.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-one-document-2-1024x307-20x6.png 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\nClick on the document ID to see more details about the document:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2650\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-button-couchbase-one-document-details-1024x328.png\" alt=\"aws-iot-button-couchbase-one-document-details-1024x328\" width=\"1024\" height=\"328\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-one-document-details-1024x328.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-one-document-details-1024x328-300x96.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-one-document-details-1024x328-768x246.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-one-document-details-1024x328-20x6.png 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\nOnly timestamp is stored in this JSON document. Now, let&#8217;s update <code>HelloCouchbaseLambda<\/code> code to include request id in the\u00a0document as well. This can be achieved by adding the following line of code in the\u00a0Java class:<\/p>\n<pre class=\"lang:default decode:true\">buttonDocument.setRequestId(context.getAwsRequestId());<\/pre>\n<p>A new deployment package can be built and uploaded using the following command:<\/p>\n<pre class=\"lang:default decode:true\">mvn clean package; \r\naws lambda update-function-code \r\n--function-name HelloCouchbaseLambda \r\n--zip-file fileb:\/\/\/Users\/arungupta\/workspaces\/serverless\/aws\/hellocouchbase\/hellocouchbase\/target\/hellocouchbase-1.0-SNAPSHOT.jar \r\n--region us-west-2 \r\n--publish<\/pre>\n<p>Now clicking the button will update the number of documents. But the updated document will have an additional attribute populated as shown:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2651\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/aws-iot-button-couchbase-second-document-details-1024x640.png\" alt=\"aws-iot-button-couchbase-second-document-details-1024x640\" width=\"1024\" height=\"640\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-second-document-details-1024x640.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-second-document-details-1024x640-300x188.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-second-document-details-1024x640-768x480.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2016\/12\/aws-iot-button-couchbase-second-document-details-1024x640-20x13.png 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\nHow are you going to take AWS IoT button and use it with Lambda and Couchbase? Let us know at <a href=\"https:\/\/www.couchbase.com\/forums\/\">Couchbase Forums<\/a>.<\/p>\n<h2>References<\/h2>\n<ul>\n<li><a href=\"https:\/\/aws.amazon.com\/iotbutton\/\" target=\"_blank\" rel=\"noopener noreferrer\">AWS IoT\u00a0Button<\/a><\/li>\n<li><a href=\"https:\/\/docs.aws.amazon.com\/iot\/latest\/developerguide\/iot-dg.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">AWS IoT Button Developer Guide<\/a><\/li>\n<li><a href=\"https:\/\/developer.couchbase.com\/server\" target=\"_blank\" rel=\"noopener noreferrer\">Couchbase Server Docs<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/forums\/\" target=\"_blank\" rel=\"noopener noreferrer\">Couchbase Forums<\/a><\/li>\n<li>Follow us at <a href=\"https:\/\/twitter.com\/couchbasedev\" target=\"_blank\" rel=\"noopener noreferrer\">@couchbasedev<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Getting Started with Serverless FaaS and AWS Lambda shows\u00a0how to use a simple Java function\u00a0to store a JSON document to\u00a0Couchbase using AWS Lambda. This blog builds\u00a0upon that and shows how an AWS IoT Button can be used as a\u00a0trigger for [&hellip;]<\/p>\n","protected":false},"author":58,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816],"tags":[],"ppma_author":[8933],"class_list":["post-2465","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AWS IoT Button, Lambda and Couchbase - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS IoT Button, Lambda and Couchbase\" \/>\n<meta property=\"og:description\" content=\"Getting Started with Serverless FaaS and AWS Lambda shows\u00a0how to use a simple Java function\u00a0to store a JSON document to\u00a0Couchbase using AWS Lambda. This blog builds\u00a0upon that and shows how an AWS IoT Button can be used as a\u00a0trigger for [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-12-29T19:34:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-22T13:19:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/serverless-iot-couchbase-1024x428.png\" \/>\n<meta name=\"author\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@arungupta\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/\"},\"author\":{\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\"},\"headline\":\"AWS IoT Button, Lambda and Couchbase\",\"datePublished\":\"2016-12-29T19:34:16+00:00\",\"dateModified\":\"2023-06-22T13:19:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/\"},\"wordCount\":679,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/\",\"name\":\"AWS IoT Button, Lambda and Couchbase - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-12-29T19:34:16+00:00\",\"dateModified\":\"2023-06-22T13:19:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AWS IoT Button, Lambda and Couchbase\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\",\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"caption\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\"},\"description\":\"Arun Gupta is the vice president of developer advocacy at Couchbase. He has built and led developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team. Gupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for three years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of several books on technology, an avid runner, a globe trotter, a Java Champion, a JUG leader, NetBeans Dream Team member, and a Docker Captain, he is easily accessible at @arungupta.\",\"sameAs\":[\"https:\/\/x.com\/arungupta\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/arun-gupta\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"AWS IoT Button, Lambda and Couchbase - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/","og_locale":"en_US","og_type":"article","og_title":"AWS IoT Button, Lambda and Couchbase","og_description":"Getting Started with Serverless FaaS and AWS Lambda shows\u00a0how to use a simple Java function\u00a0to store a JSON document to\u00a0Couchbase using AWS Lambda. This blog builds\u00a0upon that and shows how an AWS IoT Button can be used as a\u00a0trigger for [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-12-29T19:34:16+00:00","article_modified_time":"2023-06-22T13:19:21+00:00","og_image":[{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2016\/12\/serverless-iot-couchbase-1024x428.png","type":"","width":"","height":""}],"author":"Arun Gupta, VP, Developer Advocacy, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@arungupta","twitter_misc":{"Written by":"Arun Gupta, VP, Developer Advocacy, Couchbase","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/"},"author":{"name":"Arun Gupta, VP, Developer Advocacy, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f"},"headline":"AWS IoT Button, Lambda and Couchbase","datePublished":"2016-12-29T19:34:16+00:00","dateModified":"2023-06-22T13:19:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/"},"wordCount":679,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Server"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/","name":"AWS IoT Button, Lambda and Couchbase - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-12-29T19:34:16+00:00","dateModified":"2023-06-22T13:19:21+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/aws-iot-button-lambda-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AWS IoT Button, Lambda and Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f","name":"Arun Gupta, VP, Developer Advocacy, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337","url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","caption":"Arun Gupta, VP, Developer Advocacy, Couchbase"},"description":"Arun Gupta is the vice president of developer advocacy at Couchbase. He has built and led developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team. Gupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for three years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of several books on technology, an avid runner, a globe trotter, a Java Champion, a JUG leader, NetBeans Dream Team member, and a Docker Captain, he is easily accessible at @arungupta.","sameAs":["https:\/\/x.com\/arungupta"],"url":"https:\/\/www.couchbase.com\/blog\/author\/arun-gupta\/"}]}},"authors":[{"term_id":8933,"user_id":58,"is_guest":0,"slug":"arun-gupta","display_name":"Arun Gupta, VP, Developer Advocacy, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","author_category":"","last_name":"Gupta","first_name":"Arun","job_title":"","user_url":"","description":"Arun Gupta is the vice president of developer advocacy at Couchbase. He has built and led developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team.\r\n\r\nGupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for three years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of several books on technology, an avid runner, a globe trotter, a Java Champion, a JUG leader, NetBeans Dream Team member, and a Docker Captain, he is easily accessible at @arungupta."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2465","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=2465"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2465\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=2465"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=2465"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=2465"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=2465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}