crew_controller_aws_batch {crew.aws.batch} | R Documentation |
Create a controller with an AWS Batch launcher.
Description
Create an R6
object to submit tasks and
launch workers on AWS Batch workers.
Usage
crew_controller_aws_batch(
name = NULL,
workers = 1L,
host = NULL,
port = NULL,
tls = crew::crew_tls(mode = "automatic"),
tls_enable = NULL,
tls_config = NULL,
seconds_interval = 0.5,
seconds_timeout = 60,
seconds_launch = 1800,
seconds_idle = Inf,
seconds_wall = Inf,
retry_tasks = TRUE,
tasks_max = Inf,
tasks_timers = 0L,
reset_globals = TRUE,
reset_packages = FALSE,
reset_options = FALSE,
garbage_collection = FALSE,
launch_max = 5L,
processes = NULL,
aws_batch_config = list(),
aws_batch_credentials = list(),
aws_batch_endpoint = NULL,
aws_batch_region = NULL,
aws_batch_job_definition,
aws_batch_job_queue,
aws_batch_share_identifier = NULL,
aws_batch_scheduling_priority_override = NULL,
aws_batch_parameters = NULL,
aws_batch_container_overrides = NULL,
aws_batch_node_overrides = NULL,
aws_batch_retry_strategy = NULL,
aws_batch_propagate_tags = NULL,
aws_batch_timeout = NULL,
aws_batch_tags = NULL,
aws_batch_eks_properties_override = NULL
)
Arguments
name |
Name of the client object. If |
workers |
Integer, maximum number of parallel workers to run. |
host |
IP address of the |
port |
TCP port to listen for the workers. If |
tls |
A TLS configuration object from |
tls_enable |
Deprecated on 2023-09-15 in version 0.4.1.
Use argument |
tls_config |
Deprecated on 2023-09-15 in version 0.4.1.
Use argument |
seconds_interval |
Number of seconds between
polling intervals waiting for certain internal
synchronous operations to complete,
such as checking |
seconds_timeout |
Number of seconds until timing
out while waiting for certain synchronous operations to complete,
such as checking |
seconds_launch |
Seconds of startup time to allow.
A worker is unconditionally assumed to be alive
from the moment of its launch until |
seconds_idle |
Maximum number of seconds that a worker can idle
since the completion of the last task. If exceeded, the worker exits.
But the timer does not launch until |
seconds_wall |
Soft wall time in seconds.
The timer does not launch until |
retry_tasks |
|
tasks_max |
Maximum number of tasks that a worker will do before
exiting. See the |
tasks_timers |
Number of tasks to do before activating
the timers for |
reset_globals |
|
reset_packages |
|
reset_options |
|
garbage_collection |
|
launch_max |
Positive integer of length 1, maximum allowed
consecutive launch attempts which do not complete any tasks.
Enforced on a worker-by-worker basis.
The futile launch count resets to back 0
for each worker that completes a task.
It is recommended to set |
processes |
|
aws_batch_config |
Named list, |
aws_batch_credentials |
Named list. |
aws_batch_endpoint |
Character of length 1. |
aws_batch_region |
Character of length 1. |
aws_batch_job_definition |
Character of length 1, name of the AWS Batch job definition to use. There is no default for this argument, and a job definition must be created prior to running the controller. Please see https://docs.aws.amazon.com/batch/ for details. To create a job definition, you will need to create a Docker-compatible
image which can run R and |
aws_batch_job_queue |
Character of length 1, name of the AWS Batch job queue to use. There is no default for this argument, and a job queue must be created prior to running the controller. Please see https://docs.aws.amazon.com/batch/ for details. |
aws_batch_share_identifier |
|
aws_batch_scheduling_priority_override |
|
aws_batch_parameters |
|
aws_batch_container_overrides |
|
aws_batch_node_overrides |
|
aws_batch_retry_strategy |
|
aws_batch_propagate_tags |
|
aws_batch_timeout |
|
aws_batch_tags |
|
aws_batch_eks_properties_override |
|
IAM policies
In order for the AWS Batch crew
plugin to function properly, your IAM
policy needs permission to perform the SubmitJob
and TerminateJob
AWS Batch API calls. For more information on AWS policies and permissions,
please visit
https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html.
AWS arguments
The AWS Batch controller and launcher accept many arguments
which start with "aws_batch_"
. These arguments are AWS-Batch-specific
parameters forwarded directly to the submit_job()
method for
the Batch client in the paws.compute
R package
For a full description of each argument, including its meaning and format, please visit https://www.paws-r-sdk.com/docs/batch_submit_job/. The upstream API documentation is at https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html and the analogous CLI documentation is at https://docs.aws.amazon.com/cli/latest/reference/batch/submit-job.html.
The actual argument names may vary slightly, depending
on which : for example, the aws_batch_job_definition
argument of
the crew
AWS Batch launcher/controller corresponds to the
jobDefinition
argument of the web API and
paws.compute::batch()$submit_job()
, and both correspond to the
--job-definition
argument of the CLI.
Verbosity
Control verbosity with the paws.log_level
global option in R.
Set to 0 for minimum verbosity and 3 for maximum verbosity.
See Also
Other plugin_aws_batch:
crew_class_launcher_aws_batch
,
crew_launcher_aws_batch()
Examples
if (identical(Sys.getenv("CREW_EXAMPLES"), "true")) {
controller <- crew_controller_aws_batch(
aws_batch_job_definition = "YOUR_JOB_DEFINITION_NAME",
aws_batch_job_queue = "YOUR_JOB_QUEUE_NAME"
)
controller$start()
controller$push(name = "task", command = sqrt(4))
controller$wait()
controller$pop()$result
controller$terminate()
}