The goal of {r2lambda}
is to make it easier to go from an R
script
to a deployed AWS Lambda
function.
- docker is required to build, tag, and push the image.
You can install the development version of {r2lambda}
like so:
# install_packages("remotes")
remotes::install_github("discindo/r2lambda")
r2lambda
assumes credentials for connecting to AWS services are
available in the R
session. This can be done via an .Renviron
file
that should set enironmental variables like so:
AWS_ACCESS_KEY_ID = "YOUR AWS ACCESS KEY ID"
AWS_SECRET_ACCESS_KEY = "YOUR AWS SECRET ACCESS KEY"
AWS_PROFILE = "YOUR AWS PROFILE"
AWS_REGION = "YOUR AWS REGION"
But since r2lambda
uses paws
under the hood, all authentication
methods supported by paws
are available in r2lambda
. See
here for
details on setting credentials, region, profile, etc.
runtime_function <- "parity"
runtime_path <- system.file("parity.R", package = "r2lambda")
renvlock_path <- system.file("renv.lock", package = "r2lambda")
dependencies <- NULL
# Might take a while, its building a docker image
build_lambda(
tag = "parity1",
runtime_function = runtime_function,
runtime_path = runtime_path,
renvlock_path = renvlock_path,
dependencies = dependencies
)
payload <- list(number = 2)
tag <- "parity1"
test_lambda(tag = "parity1", payload)
# Might take a while, its pushing it to a remote repository
deploy_lambda(tag = "parity1")
invoke_lambda(
function_name = "parity1",
invocation_type = "RequestResponse",
payload = list(number = 2),
include_logs = FALSE
)
#> Lambda response payload:
#> {"parity":"even"}
Please note that the r2lambda project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.