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.