An open API service indexing awesome lists of open source software.

https://github.com/ramonmarrero/aws-cdk-r-container


https://github.com/ramonmarrero/aws-cdk-r-container

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

        

# Running R scripts from AWS Lambda Functions

This repository demonstrate how to run R scripts from AWS Lambda functions using container images.
We will create a custom runtime for R and deploy our service using AWS CDK.

The project is set up like a standard Python project. The initialization
process also creates a virtualenv within this project, stored under the `.venv`
directory. To create the virtualenv it assumes that there is a `python3`
(or `python` for Windows) executable in your path with access to the `venv`
package. If for any reason the automatic creation of the virtualenv fails,
you can create the virtualenv manually.

To manually create a virtualenv on MacOS and Linux:

```
$ python -m venv .venv
```

After the init process completes and the virtualenv is created, you can use the following
step to activate your virtualenv.

```
$ source .venv/bin/activate
```

If you are a Windows platform, you would activate the virtualenv like this:

```
% .venv\Scripts\activate.bat
```

Once the virtualenv is activated, you can install the required dependencies.

```
$ pip install -r requirements.txt
```

At this point you can now synthesize the CloudFormation template for this code.

```
$ cdk synth
```

To add additional dependencies, for example other CDK libraries, just add
them to your `setup.py` file and rerun the `pip install -r requirements.txt`
command.

Or it can be installed using the AWS Construct Library module for AWS Lambda by executing:

```
$ python -m pip install aws-cdk.aws-lambda
```

Find more details in this [article](https://medium.com/geekculture/effectively-running-r-scripts-from-aws-lambda-functions-6af85caa1571)

## Useful commands

* `cdk ls` list all stacks in the app
* `cdk synth` emits the synthesized CloudFormation template
* `cdk deploy` deploy this stack to your default AWS account/region
* `cdk diff` compare deployed stack with current state
* `cdk docs` open CDK documentation