UNPKG

aws-ddk-core

Version:

The AWS DataOps Development Kit is an open source development framework for customers that build data workflows and modern data architecture on AWS.

58 lines 8.43 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.GlueFactory = exports.GlueJobType = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const glue = require("@aws-cdk/aws-glue-alpha"); const cdk = require("aws-cdk-lib"); const utils_1 = require("./utils"); var GlueJobType; (function (GlueJobType) { GlueJobType["PY_SPARK_ETL_JOB"] = "PySparkEtlJob"; GlueJobType["PYTHON_SHELL_JOB"] = "PythonShellJob"; GlueJobType["PY_SPARK_STREAMING_JOB"] = "PySparkStreamingJob"; GlueJobType["PY_SPARK_FLEX_ETL_JOB"] = "PySparkFlexEtlJob"; GlueJobType["SCALA_SPARK_ETL_JOB"] = "ScalaSparkEtlJob"; GlueJobType["SCALA_SPARK_FLEX_ETL_JOB"] = "ScalaSparkFlexEtlJob"; GlueJobType["SCALA_SPARK_STREAMING_JOB"] = "ScalaSparkStreamingJob"; })(GlueJobType = exports.GlueJobType || (exports.GlueJobType = {})); class GlueFactory { static job(scope, id, props) { const securityConfiguration = !props.glueJobProperties.securityConfiguration ? new glue.SecurityConfiguration(scope, `${id}-security-configuration`, { s3Encryption: { mode: glue.S3EncryptionMode.S3_MANAGED, }, }) : undefined; const defaultProps = { maxConcurrentRuns: 1, maxRetries: 1, timeout: cdk.Duration.hours(10), securityConfiguration: securityConfiguration, }; const mergedProps = utils_1.overrideProps(defaultProps, props.glueJobProperties); switch (props.glueJobType) { case GlueJobType.PY_SPARK_ETL_JOB: return new glue.PySparkEtlJob(scope, id, mergedProps); case GlueJobType.PYTHON_SHELL_JOB: return new glue.PythonShellJob(scope, id, mergedProps); case GlueJobType.PY_SPARK_STREAMING_JOB: return new glue.PySparkStreamingJob(scope, id, mergedProps); case GlueJobType.PY_SPARK_FLEX_ETL_JOB: return new glue.PySparkFlexEtlJob(scope, id, mergedProps); case GlueJobType.SCALA_SPARK_ETL_JOB: return new glue.ScalaSparkEtlJob(scope, id, mergedProps); case GlueJobType.SCALA_SPARK_FLEX_ETL_JOB: return new glue.ScalaSparkFlexEtlJob(scope, id, mergedProps); case GlueJobType.SCALA_SPARK_STREAMING_JOB: return new glue.ScalaSparkStreamingJob(scope, id, mergedProps); default: throw new Error("Invalid Glue Job Type"); } } } exports.GlueFactory = GlueFactory; _a = JSII_RTTI_SYMBOL_1; GlueFactory[_a] = { fqn: "aws-ddk-core.GlueFactory", version: "1.4.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x1ZS1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvZ2x1ZS1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQWdEO0FBQ2hELG1DQUFtQztBQUVuQyxtQ0FBd0M7QUFFeEMsSUFBWSxXQVFYO0FBUkQsV0FBWSxXQUFXO0lBQ3JCLGlEQUFrQyxDQUFBO0lBQ2xDLGtEQUFtQyxDQUFBO0lBQ25DLDZEQUE4QyxDQUFBO0lBQzlDLDBEQUEyQyxDQUFBO0lBQzNDLHVEQUF3QyxDQUFBO0lBQ3hDLGdFQUFpRCxDQUFBO0lBQ2pELG1FQUFvRCxDQUFBO0FBQ3RELENBQUMsRUFSVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQVF0QjtBQWNELE1BQWEsV0FBVztJQUNmLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDckUsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUI7WUFDMUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUseUJBQXlCLEVBQUU7Z0JBQ3BFLFlBQVksRUFBRTtvQkFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVU7aUJBQ3ZDO2FBQ0YsQ0FBQztZQUNKLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxNQUFNLFlBQVksR0FBZ0M7WUFDaEQsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixVQUFVLEVBQUUsQ0FBQztZQUNiLE9BQU8sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IscUJBQXFCLEVBQUUscUJBQXFCO1NBQzdDLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxxQkFBYSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6RSxRQUFRLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFDekIsS0FBSyxXQUFXLENBQUMsZ0JBQWdCO2dCQUMvQixPQUFPLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3hELEtBQUssV0FBVyxDQUFDLGdCQUFnQjtnQkFDL0IsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN6RCxLQUFLLFdBQVcsQ0FBQyxzQkFBc0I7Z0JBQ3JDLE9BQU8sSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUM5RCxLQUFLLFdBQVcsQ0FBQyxxQkFBcUI7Z0JBQ3BDLE9BQU8sSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUM1RCxLQUFLLFdBQVcsQ0FBQyxtQkFBbUI7Z0JBQ2xDLE9BQU8sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUMzRCxLQUFLLFdBQVcsQ0FBQyx3QkFBd0I7Z0JBQ3ZDLE9BQU8sSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUMvRCxLQUFLLFdBQVcsQ0FBQyx5QkFBeUI7Z0JBQ3hDLE9BQU8sSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUVqRTtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDOztBQXBDSCxrQ0FxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBnbHVlIGZyb20gXCJAYXdzLWNkay9hd3MtZ2x1ZS1hbHBoYVwiO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IG92ZXJyaWRlUHJvcHMgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZW51bSBHbHVlSm9iVHlwZSB7XG4gIFBZX1NQQVJLX0VUTF9KT0IgPSBcIlB5U3BhcmtFdGxKb2JcIixcbiAgUFlUSE9OX1NIRUxMX0pPQiA9IFwiUHl0aG9uU2hlbGxKb2JcIixcbiAgUFlfU1BBUktfU1RSRUFNSU5HX0pPQiA9IFwiUHlTcGFya1N0cmVhbWluZ0pvYlwiLFxuICBQWV9TUEFSS19GTEVYX0VUTF9KT0IgPSBcIlB5U3BhcmtGbGV4RXRsSm9iXCIsXG4gIFNDQUxBX1NQQVJLX0VUTF9KT0IgPSBcIlNjYWxhU3BhcmtFdGxKb2JcIixcbiAgU0NBTEFfU1BBUktfRkxFWF9FVExfSk9CID0gXCJTY2FsYVNwYXJrRmxleEV0bEpvYlwiLFxuICBTQ0FMQV9TUEFSS19TVFJFQU1JTkdfSk9CID0gXCJTY2FsYVNwYXJrU3RyZWFtaW5nSm9iXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2x1ZUZhY3RvcnlQcm9wcyB7XG4gIHJlYWRvbmx5IGdsdWVKb2JUeXBlOiBTdHJpbmc7XG4gIHJlYWRvbmx5IGdsdWVKb2JQcm9wZXJ0aWVzOlxuICAgIHwgZ2x1ZS5QeVNwYXJrRXRsSm9iUHJvcHNcbiAgICB8IGdsdWUuUHl0aG9uU2hlbGxKb2JQcm9wc1xuICAgIHwgZ2x1ZS5QeVNwYXJrU3RyZWFtaW5nSm9iUHJvcHNcbiAgICB8IGdsdWUuUHlTcGFya0ZsZXhFdGxKb2JQcm9wc1xuICAgIHwgZ2x1ZS5TY2FsYVNwYXJrRXRsSm9iUHJvcHNcbiAgICB8IGdsdWUuU2NhbGFTcGFya0ZsZXhFdGxKb2JQcm9wc1xuICAgIHwgZ2x1ZS5TY2FsYVNwYXJrU3RyZWFtaW5nSm9iUHJvcHM7XG59XG5cbmV4cG9ydCBjbGFzcyBHbHVlRmFjdG9yeSB7XG4gIHB1YmxpYyBzdGF0aWMgam9iKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBHbHVlRmFjdG9yeVByb3BzKSB7XG4gICAgY29uc3Qgc2VjdXJpdHlDb25maWd1cmF0aW9uID0gIXByb3BzLmdsdWVKb2JQcm9wZXJ0aWVzLnNlY3VyaXR5Q29uZmlndXJhdGlvblxuICAgICAgPyBuZXcgZ2x1ZS5TZWN1cml0eUNvbmZpZ3VyYXRpb24oc2NvcGUsIGAke2lkfS1zZWN1cml0eS1jb25maWd1cmF0aW9uYCwge1xuICAgICAgICAgIHMzRW5jcnlwdGlvbjoge1xuICAgICAgICAgICAgbW9kZTogZ2x1ZS5TM0VuY3J5cHRpb25Nb2RlLlMzX01BTkFHRUQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGRlZmF1bHRQcm9wczogUGFydGlhbDxnbHVlLkpvYlByb3BlcnRpZXM+ID0ge1xuICAgICAgbWF4Q29uY3VycmVudFJ1bnM6IDEsXG4gICAgICBtYXhSZXRyaWVzOiAxLFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLmhvdXJzKDEwKSxcbiAgICAgIHNlY3VyaXR5Q29uZmlndXJhdGlvbjogc2VjdXJpdHlDb25maWd1cmF0aW9uLFxuICAgIH07XG5cbiAgICBjb25zdCBtZXJnZWRQcm9wcyA9IG92ZXJyaWRlUHJvcHMoZGVmYXVsdFByb3BzLCBwcm9wcy5nbHVlSm9iUHJvcGVydGllcyk7XG4gICAgc3dpdGNoIChwcm9wcy5nbHVlSm9iVHlwZSkge1xuICAgICAgY2FzZSBHbHVlSm9iVHlwZS5QWV9TUEFSS19FVExfSk9COlxuICAgICAgICByZXR1cm4gbmV3IGdsdWUuUHlTcGFya0V0bEpvYihzY29wZSwgaWQsIG1lcmdlZFByb3BzKTtcbiAgICAgIGNhc2UgR2x1ZUpvYlR5cGUuUFlUSE9OX1NIRUxMX0pPQjpcbiAgICAgICAgcmV0dXJuIG5ldyBnbHVlLlB5dGhvblNoZWxsSm9iKHNjb3BlLCBpZCwgbWVyZ2VkUHJvcHMpO1xuICAgICAgY2FzZSBHbHVlSm9iVHlwZS5QWV9TUEFSS19TVFJFQU1JTkdfSk9COlxuICAgICAgICByZXR1cm4gbmV3IGdsdWUuUHlTcGFya1N0cmVhbWluZ0pvYihzY29wZSwgaWQsIG1lcmdlZFByb3BzKTtcbiAgICAgIGNhc2UgR2x1ZUpvYlR5cGUuUFlfU1BBUktfRkxFWF9FVExfSk9COlxuICAgICAgICByZXR1cm4gbmV3IGdsdWUuUHlTcGFya0ZsZXhFdGxKb2Ioc2NvcGUsIGlkLCBtZXJnZWRQcm9wcyk7XG4gICAgICBjYXNlIEdsdWVKb2JUeXBlLlNDQUxBX1NQQVJLX0VUTF9KT0I6XG4gICAgICAgIHJldHVybiBuZXcgZ2x1ZS5TY2FsYVNwYXJrRXRsSm9iKHNjb3BlLCBpZCwgbWVyZ2VkUHJvcHMpO1xuICAgICAgY2FzZSBHbHVlSm9iVHlwZS5TQ0FMQV9TUEFSS19GTEVYX0VUTF9KT0I6XG4gICAgICAgIHJldHVybiBuZXcgZ2x1ZS5TY2FsYVNwYXJrRmxleEV0bEpvYihzY29wZSwgaWQsIG1lcmdlZFByb3BzKTtcbiAgICAgIGNhc2UgR2x1ZUpvYlR5cGUuU0NBTEFfU1BBUktfU1RSRUFNSU5HX0pPQjpcbiAgICAgICAgcmV0dXJuIG5ldyBnbHVlLlNjYWxhU3BhcmtTdHJlYW1pbmdKb2Ioc2NvcGUsIGlkLCBtZXJnZWRQcm9wcyk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgR2x1ZSBKb2IgVHlwZVwiKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==