export function DefaultGlueJobProps()

in source/patterns/@aws-solutions-constructs/core/lib/glue-job-defaults.ts [17:38]


export function DefaultGlueJobProps(jobRole: IRole, userProvidedGlueJobProps: CfnJobProps,
  glueSecurityConfigName: string, defaultArguments: {}): CfnJobProps {
  const glueVersion: string | undefined = userProvidedGlueJobProps.glueVersion;

  // setting default to 2 to reduce cost
  const maxCapacity = glueVersion === "1.0" && !(userProvidedGlueJobProps.workerType
    || userProvidedGlueJobProps.numberOfWorkers) ? 2 : undefined;

  const defaultGlueJobProps: CfnJobProps = {
    command: userProvidedGlueJobProps.command!,
    role: jobRole.roleArn,
    securityConfiguration: glueSecurityConfigName,
    defaultArguments,
    maxCapacity,
    numberOfWorkers: (!glueVersion || glueVersion === "2.0") ? 2 : undefined, // defaulting to 2 workers,
    workerType: (!glueVersion || glueVersion === "2.0") ? 'G.1X' : undefined, // defaulting to G.1X as it is preferred with glue version 2.0
    // glue version though optional is required for streaming etl jobs otherwise it throws an error that 'command not found'
    glueVersion: glueVersion ? glueVersion : '2.0'
  };

  return defaultGlueJobProps;
}