aws-lambda-rdbms-integration | Integrating AWS Lambda with EC2 hosted Relational Databases | Infrastructure Automation library

 by   aws-samples C++ Version: Current License: Apache-2.0

kandi X-RAY | aws-lambda-rdbms-integration Summary

kandi X-RAY | aws-lambda-rdbms-integration Summary

aws-lambda-rdbms-integration is a C++ library typically used in Devops, Infrastructure Automation, Terraform, DynamoDB applications. aws-lambda-rdbms-integration has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

Integrating AWS Lambda with EC2 hosted Relational Databases
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              aws-lambda-rdbms-integration has a low active ecosystem.
              It has 42 star(s) with 8 fork(s). There are 19 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 1 open issues and 0 have been closed. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of aws-lambda-rdbms-integration is current.

            kandi-Quality Quality

              aws-lambda-rdbms-integration has 0 bugs and 0 code smells.

            kandi-Security Security

              aws-lambda-rdbms-integration has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              aws-lambda-rdbms-integration code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              aws-lambda-rdbms-integration is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              aws-lambda-rdbms-integration releases are not available. You will need to build from source code and install.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of aws-lambda-rdbms-integration
            Get all kandi verified functions for this library.

            aws-lambda-rdbms-integration Key Features

            No Key Features are available at this moment for aws-lambda-rdbms-integration.

            aws-lambda-rdbms-integration Examples and Code Snippets

            No Code Snippets are available at this moment for aws-lambda-rdbms-integration.

            Community Discussions

            QUESTION

            Create CloudFormation Yaml from existing RDS DB instance (Aurora PostgreSQL)
            Asked 2020-Jun-05 at 00:59

            I have an RDS DB instance (Aurora PostgreSQL) setup in my AWS account. This was created manually using AWS Console. I now want to create CloudFormation template Yaml for that DB, which I can use to create the DB later if needed. That will also help me replicate the DB in another environment. I would also use that as part of my Infrastructure automation.

            ...

            ANSWER

            Answered 2020-Jun-05 at 00:59

            Unfortunately, there is no such functionality provided by AWS.

            However, you mean hear about two options that people could wrongfully recommend.

            CloudFormer

            CloudFormer is a template creation beta tool that creates an AWS CloudFormation template from existing AWS resources in your account. You select any supported AWS resources that are running in your account, and CloudFormer creates a template in an Amazon S3 bucket.

            Although it sounds good, the tool is no longer maintained and its not reliable (for years in beta).

            Importing Existing Resources Into a Stack

            Often people mistakenly think that this "generates yaml" for you from existing resources. The truth is that it does not generate template files for you. You have to write your own template which matches your resource exactly, before you can import any resource under control to CloudFormation stack.

            Your only options is to manually write the template for the RDS and import it, or look for an external tools that could reverse-engineer yaml templates from existing resources.

            Source https://stackoverflow.com/questions/62206364

            QUESTION

            Azure DevOps CI with Web Apps for Containers
            Asked 2020-Mar-16 at 08:59

            I'm struggling to set up a CI process for a web application in Azure. I'm used to deploying built code directly into Web Apps in Azure but decided to use docker this time.

            In the build pipeline, I build the docker images and push them to an Azure Container Registry, tagged with the latest build number. In the release pipeline (which has DEV, TEST and PROD), I need to deploy those images to the Web Apps of each environment. There are 2 relevant tasks available in Azure releases: "Azure App Service deploy" and "Azure Web App for Containers". Neither of these allow the image source for the Web App to be set to Azure Conntainer Registry. Instead they take custom registry/repository names and set the image source in the Web App to Private Registry, which then requires login and password. I'm also deploying all Azure resources using ARM templates so I don't like the idea of configuring credentials when the 2 resources (the Registry and the Web App) are integrated already. Ideally, I would be able to set the Web App to use the repository and tag in Azure Container Registry that I specify in the release. I even tried to manually configure the Web Apps first with specific repositories and tags, and then tried to change the tags used by the Web Apps with the release (with the tasks I mentioned) but it didn't work. The tags stay the same.

            Another option I considered was to configure all Web Apps to specific and permanent repositories and tags (e.g. "dev-latest") from the start (which doesn't fit well with ARM deployments since the containers need to exist in the Registry before the Web Apps can be configured so my infrastructure automation is incomplete), enable "Continuous Deployment" in the Web Apps and then tag the latest pushed repositories accordingly in the release so they would be picked up by Web Apps. I could not find a reasoble way to add tags to existing repositories in the Registry.

            What is Azure best practice for CI with containerised web apps? How do people actually build their containers and then deploy them to each environment?

            ...

            ANSWER

            Answered 2020-Mar-16 at 08:59

            Just set up a CI pipeline for building an image and pushing it to a container registry.

            You could then use both Azure App Service deploy and Azure Web App for Containers task to handle the deploy.

            The Azure WebApp Container task similar to other built-in Azure tasks, requires an Azure service connection as an input. The Azure service connection stores the credentials to connect from Azure Pipelines or Azure DevOps Server to Azure.

            I'm also deploying all Azure resources using ARM templates so I don't like the idea of configuring credentials when the 2 resources (the Registry and the Web App)

            You could also be able to Deploy Azure Web App for Containers with ARM and Azure DevOps.

            How do people actually build their containers and then deploy them to each environment?

            Kindly take a look at below blogs and official doc which may be helpful:

            Source https://stackoverflow.com/questions/60693622

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install aws-lambda-rdbms-integration

            Oracle supports the use of Java methods for UDFs. The Java class below uses the AWS SDK to invoke a named Lambda function (fn_name) in either synchronous (RequestResponse) or asynchronous (Event) mode, passing parameters in the form of a JSON string (fn_argsJson):.
            Install git and maven on the database server instance, if they're not already installed.
            As the oracle user, download and build the aws-lambda-rdbms-integration project from github. Steps: sudo su - oracle git clone https://github.com/awslabs/aws-lambda-rdbms-integration.git cd aws-lambda-rdbms-integration/oracle mvn clean package This builds a self contained .jar file containing the LambdaInvoke java class and all its dependencies, including the AWS SDK class files.
            Verify that the EC2 instance role is correct and that you can connect to the AWS Lambda service and successfully call our function, using the main method included in the class: java -cp target/aws-rdbmsinteg-1.0.jar com.amazonaws.rdbmsinteg.LambdaInvoke If all is well, the following output will be displayed: {"Status": "OK", "name": "bob"}
            Load the .jar file into the Oracle database: loadjava -user system/<password> target/aws-rdbmsinteg-1.0.jar
            Create the awslambda_fn() and awslambda_fn_async() functions using the script provided: cat sql/awslambda_ddl.sql | sqlplus system/<password>
            Grant required permissions to the SYSTEM user using the script provided: cat sql/permissions.sql | sqlplus system/<password>
            Oracle's Java keystore must trust the certificate authority (CA) used by the AWS service; by default it is empty. An easy way to fix this problem is to replace the default Oracle Java keystore with a populated keystore from a standard Java installation: cp $ORACLE_HOME/javavm/lib/security/{cacerts,cacerts.orig} cat /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/lib/security/cacerts > $ORACLE_HOME/javavm/lib/security/cacerts
            Log into the database, and test the awslambda_fn function, passing the name of your Lambda function and a JSON input parameter string: sqlplus system/<password> SQL> SELECT awslambda_fn('lambdaTest','{"name":"bob"}') AS lambdatest FROM DUAL; LAMBDATEST -------------------------------------------------------------------------------- {"Status": "OK", "name": "bob"}
            For PostgreSQL, use the PL/Python language to create your UDFs, leveraging the AWS Python SDK to launch Lambda functions and retrieve the results.
            Make sure your database EC2 instance has Python and the two AWS SDK modules, boto and boto3, installed: sudo pip install boto boto3 python -c "import boto; import boto3; print 'AWS SDK verified OK'"
            Download the aws-lambda-rdbms-integration project as the postgres user: sudo su - postgres git clone https://github.com/awslabs/aws-lambda-rdbms-integration.git cd aws-lambda-rdbms-integration/postgresql
            Create the awslambda_fn() and awslambda_fn_async() functions using the script provided: psql -U postgres -f sql/awslambda_ddl.sql
            Log into the database, and call the awslambda_fn function, passing the name of the test Lambda function and a JSON input parameter string: psql -U postgres postgres=# SELECT awslambda_fn('lambdaTest','{"name":"bob"}') AS lambdatest ; lambdatest ---------------------------------------------------------- {"Status": "OK", "name": "bob"} (1 row)

            Support

            In synchronous mode, fatal errors encountered while launching or running the Lambda function throw an exception back to the database SQL engine. You can write an exception handler in your SQL code, or simply allow the failure to roll back your transaction. In asynchronous mode, failures to launch the function result in SQL exceptions, but runtime failures encountered during execution are not detected by the SQL engine. While your SQL transactions can roll back on failure, there is no inherent rollback capability built into Lambda. The effects of any code executed by your Lambda function prior to a failure may be persistent unless you have coded your own rollback or deduplication logic. Use CloudWatch for troubleshooting, and to monitor the health metrics and log files generated by your Lambda functions. Typically, the invocation overhead observed is in the order or 10-20ms per call, but your mileage may vary. Latency is higher immediately after a Lambda function is created, updated, or if it has not been used recently. For synchronous mode calls, the overall time your function takes depends on what your Lambda function does. Lambda automatically scales to handle your concurrency needs. For more information, see the AWS Lambda FAQ. Throughput and latency requirements should guide your decisions on how to apply Lambda functions in your application. Experiment and test! You may find that calling Lambda in row level triggers throttles your insert rate beyond the tolerance of your application, in which case you need to come up with a different approach, possibly using micro-batches to amortize the invocation overhead across many rows. Yes, you manage permissions on the Lambda UDFs as with any other database object.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/aws-samples/aws-lambda-rdbms-integration.git

          • CLI

            gh repo clone aws-samples/aws-lambda-rdbms-integration

          • sshUrl

            git@github.com:aws-samples/aws-lambda-rdbms-integration.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Consider Popular Infrastructure Automation Libraries

            terraform

            by hashicorp

            salt

            by saltstack

            pulumi

            by pulumi

            terraformer

            by GoogleCloudPlatform

            Try Top Libraries by aws-samples

            aws-cdk-examples

            by aws-samplesPython

            aws-serverless-workshops

            by aws-samplesJavaScript

            aws-workshop-for-kubernetes

            by aws-samplesShell

            aws-serverless-airline-booking

            by aws-samplesJavaScript