188 lines
6.1 KiB
TypeScript
188 lines
6.1 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import type * as ec2 from '../../../aws-ec2';
|
|
import * as iam from '../../../aws-iam';
|
|
import * as sfn from '../../../aws-stepfunctions';
|
|
import type { Size } from '../../../core';
|
|
/**
|
|
* The overrides that should be sent to a container.
|
|
*/
|
|
export interface BatchContainerOverrides {
|
|
/**
|
|
* The command to send to the container that overrides
|
|
* the default command from the Docker image or the job definition.
|
|
*
|
|
* @default - No command overrides
|
|
*/
|
|
readonly command?: string[];
|
|
/**
|
|
* The environment variables to send to the container.
|
|
* You can add new environment variables, which are added to the container
|
|
* at launch, or you can override the existing environment variables from
|
|
* the Docker image or the job definition.
|
|
*
|
|
* @default - No environment overrides
|
|
*/
|
|
readonly environment?: {
|
|
[key: string]: string;
|
|
};
|
|
/**
|
|
* The instance type to use for a multi-node parallel job.
|
|
* This parameter is not valid for single-node container jobs.
|
|
*
|
|
* @default - No instance type overrides
|
|
*/
|
|
readonly instanceType?: ec2.InstanceType;
|
|
/**
|
|
* Memory reserved for the job.
|
|
*
|
|
* @default - No memory overrides. The memory supplied in the job definition will be used.
|
|
*/
|
|
readonly memory?: Size;
|
|
/**
|
|
* The number of physical GPUs to reserve for the container.
|
|
* The number of GPUs reserved for all containers in a job
|
|
* should not exceed the number of available GPUs on the compute
|
|
* resource that the job is launched on.
|
|
*
|
|
* @default - No GPU reservation
|
|
*/
|
|
readonly gpuCount?: number;
|
|
/**
|
|
* The number of vCPUs to reserve for the container.
|
|
* This value overrides the value set in the job definition.
|
|
*
|
|
* @default - No vCPUs overrides
|
|
*/
|
|
readonly vcpus?: number;
|
|
}
|
|
/**
|
|
* An object representing an AWS Batch job dependency.
|
|
*/
|
|
export interface BatchJobDependency {
|
|
/**
|
|
* The job ID of the AWS Batch job associated with this dependency.
|
|
*
|
|
* @default - No jobId
|
|
*/
|
|
readonly jobId?: string;
|
|
/**
|
|
* The type of the job dependency.
|
|
*
|
|
* @default - No type
|
|
*/
|
|
readonly type?: string;
|
|
}
|
|
interface BatchSubmitJobOptions {
|
|
/**
|
|
* The arn of the job definition used by this job.
|
|
*/
|
|
readonly jobDefinitionArn: string;
|
|
/**
|
|
* The name of the job.
|
|
* The first character must be alphanumeric, and up to 128 letters (uppercase and lowercase),
|
|
* numbers, hyphens, and underscores are allowed.
|
|
*/
|
|
readonly jobName: string;
|
|
/**
|
|
* The arn of the job queue into which the job is submitted.
|
|
*/
|
|
readonly jobQueueArn: string;
|
|
/**
|
|
* The array size can be between 2 and 10,000.
|
|
* If you specify array properties for a job, it becomes an array job.
|
|
* For more information, see Array Jobs in the AWS Batch User Guide.
|
|
*
|
|
* @default - No array size
|
|
*/
|
|
readonly arraySize?: number;
|
|
/**
|
|
* A list of container overrides in JSON format that specify the name of a container
|
|
* in the specified job definition and the overrides it should receive.
|
|
*
|
|
* @see https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html#Batch-SubmitJob-request-containerOverrides
|
|
*
|
|
* @default - No container overrides
|
|
*/
|
|
readonly containerOverrides?: BatchContainerOverrides;
|
|
/**
|
|
* A list of dependencies for the job.
|
|
* A job can depend upon a maximum of 20 jobs.
|
|
*
|
|
* @see https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html#Batch-SubmitJob-request-dependsOn
|
|
*
|
|
* @default - No dependencies
|
|
*/
|
|
readonly dependsOn?: BatchJobDependency[];
|
|
/**
|
|
* The payload to be passed as parameters to the batch job
|
|
*
|
|
* @default - No parameters are passed
|
|
*/
|
|
readonly payload?: sfn.TaskInput;
|
|
/**
|
|
* The number of times to move a job to the RUNNABLE status.
|
|
* You may specify between 1 and 10 attempts.
|
|
* If the value of attempts is greater than one,
|
|
* the job is retried on failure the same number of attempts as the value.
|
|
*
|
|
* @default 1
|
|
*/
|
|
readonly attempts?: number;
|
|
/**
|
|
* The tags applied to the job request.
|
|
*
|
|
* @default {} - no tags
|
|
*/
|
|
readonly tags?: {
|
|
[key: string]: string;
|
|
};
|
|
}
|
|
/**
|
|
* Properties for BatchSubmitJob using JSONPath
|
|
*/
|
|
export interface BatchSubmitJobJsonPathProps extends sfn.TaskStateJsonPathBaseProps, BatchSubmitJobOptions {
|
|
}
|
|
/**
|
|
* Properties for BatchSubmitJob using JSONata
|
|
*/
|
|
export interface BatchSubmitJobJsonataProps extends sfn.TaskStateJsonataBaseProps, BatchSubmitJobOptions {
|
|
}
|
|
/**
|
|
* Properties for BatchSubmitJob
|
|
*/
|
|
export interface BatchSubmitJobProps extends sfn.TaskStateBaseProps, BatchSubmitJobOptions {
|
|
}
|
|
/**
|
|
* Task to submits an AWS Batch job from a job definition.
|
|
*
|
|
* @see https://docs.aws.amazon.com/step-functions/latest/dg/connect-batch.html
|
|
*/
|
|
export declare class BatchSubmitJob extends sfn.TaskStateBase {
|
|
private readonly props;
|
|
/**
|
|
* Task to submits an AWS Batch job from a job definition using JSONPath.
|
|
*
|
|
* @see https://docs.aws.amazon.com/step-functions/latest/dg/connect-batch.html
|
|
*/
|
|
static jsonPath(scope: Construct, id: string, props: BatchSubmitJobJsonPathProps): BatchSubmitJob;
|
|
/**
|
|
* Task to submits an AWS Batch job from a job definition using JSONata.
|
|
*
|
|
* @see https://docs.aws.amazon.com/step-functions/latest/dg/connect-batch.html
|
|
*/
|
|
static jsonata(scope: Construct, id: string, props: BatchSubmitJobJsonataProps): BatchSubmitJob;
|
|
private static readonly SUPPORTED_INTEGRATION_PATTERNS;
|
|
protected readonly taskMetrics?: sfn.TaskMetricsConfig;
|
|
protected readonly taskPolicies?: iam.PolicyStatement[];
|
|
private readonly integrationPattern;
|
|
constructor(scope: Construct, id: string, props: BatchSubmitJobProps);
|
|
/**
|
|
* @internal
|
|
*/
|
|
protected _renderTask(topLevelQueryLanguage?: sfn.QueryLanguage): any;
|
|
private configurePolicyStatements;
|
|
private configureContainerOverrides;
|
|
private validateTags;
|
|
}
|
|
export {};
|