Document toolboxDocument toolbox

Forwarding the events using Python

Please note that the following Lambda function explanation is offered only as an illustrative example. Users are solely responsible for the implementation and usage of the Lambda function based on the information and code we provide. Devo does not maintain any piece of code required for this process.

If you have any questions, please contact us.

Download the source file

Download the file below, decompress it and copy the following folder and two files to the folder where you saved the Devo domain certificates previously downloaded:

  • /devo

  • config.json

  • lambda_function.py

Edit the config.json file

Follow these steps to configure the JSON file.

Prepare a ZIP file for upload

You should have a folder with the following five files plus the Devo folder (and its contents): your updated and renamed configuration file, the Lambda Python script file, and the three certificate files you downloaded from your Devo domain. Note that two of the certificate files should have the name of your Devo domain (devo_domain in the example below).  

Create a ZIP file containing the folder plus the five files, and name it whatever you like. You will upload this ZIP to AWS to create the Lambda function in step 7 of the next procedure. 

Create a new Lambda function

This procedure guides you through creating the new Lambda function that will monitor the S3 bucket for changes. 

  1. Create a new AWS Lambda function in the same zone in which the S3 bucket resides.

  2. Click Blueprints, then click the s3-get-object-python blueprint tile. 

  3. Click the Configure button. The next page contains three sections; Basic informationS3 trigger, and Lambda function code.



  4. In the Basic information section, enter a Name for the new function. 

    1. If using an existing role, make sure that it has Lambda execution and S3 read permissions. 

    2. If not using an existing role, create a new one. Under Role, select Create new role from AWS Policy Templates. Enter a role name and select Amazon S3 object read-only permissions as the Policy Template.

  5.  In the S3 trigger section, select the Bucket that contains the events, set the Event type to All object create events, then select Enable trigger.

  6. Click Create function. The next page contains several sections in which you configure the details of your new function.

  7. Modify the Function code section as indicated below and for Function package, click Upload to select the .zip file you created earlier. Then, click Save to upload the file.

  8. In the Execution role section, select the role you specified/created for the function. In the Basic settings section, set the Memory and Timeout to an interval close to, but less than, the event creation frequency. For example, if the log file creation frequency is 5 minutes, set the Timeout to 4 minutes and 30 seconds. In the Network section, select No VPC for the VPC value.

  9. Click Save

  10. Now, select the new function to view its details. In the Execution role area, click View the <function-name> role to edit the role permissions.

  11. On the Permissions tab, click Attach policy. Select AmazonS3ReadOnlyAccess, then click Attach policy.

Now you can confirm that the Lambda function has been correctly associated to the bucket. Go to S3 and open the bucket. In the bucket's Properties tab, make sure that there's an active notification associated with Events.

If there is no active notification, click the Events tile, then click Add notification. Set up a new event as shown below and click Save.

Every time a new object file is written to the S3 bucket, it will be sent to your Devo domain with the tag specified in the config.json file.