@cdklabs/aws-data-solutions-framework
Version:
L3 CDK Constructs used to build data solutions with AWS
32 lines • 4.83 kB
JavaScript
;
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
const cdk = require("aws-cdk-lib");
const aws_cdk_lib_1 = require("aws-cdk-lib");
const dsf = require("../../index");
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
const aws_s3_1 = require("aws-cdk-lib/aws-s3");
/// !show
class ExampleSparkJobEmrEksStack extends cdk.Stack {
constructor(scope, id) {
super(scope, id);
const dailyJob = new dsf.processing.SparkEmrContainersJob(this, 'SparkNightlyJob', {
name: 'daily_job',
virtualClusterId: 'exampleId123',
executionRole: aws_iam_1.Role.fromRoleArn(this, 'ExecutionRole', 'arn:aws:iam::123456789012:role/role'),
executionTimeout: cdk.Duration.minutes(15),
s3LogBucket: aws_s3_1.Bucket.fromBucketName(this, 'LogBucket', 'emr-job-logs-EXAMPLE'),
s3LogPrefix: 'logs',
sparkSubmitEntryPoint: 'local:///usr/lib/spark/examples/src/main/python/pi.py',
sparkSubmitParameters: '--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.driver.memory=2G --conf spark.executor.cores=4',
});
new aws_cdk_lib_1.CfnOutput(this, 'daily-job-state-machine', {
value: dailyJob.stateMachine.stateMachineArn,
});
}
}
/// !hide
const app = new cdk.App();
new ExampleSparkJobEmrEksStack(app, 'ExampleSparkJobEmrEksStack');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhcmstam9iLWVtci1la3MubGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb2Nlc3NpbmcvZXhhbXBsZXMvc3Bhcmstam9iLWVtci1la3MubGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDOztBQUV0QyxtQ0FBbUM7QUFDbkMsNkNBQXdDO0FBRXhDLG1DQUFtQztBQUNuQyxpREFBMkM7QUFDM0MsK0NBQTRDO0FBRTVDLFNBQVM7QUFDVCxNQUFNLDBCQUEyQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBQ2hELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUNqRixJQUFJLEVBQUUsV0FBVztZQUNqQixnQkFBZ0IsRUFBRSxjQUFjO1lBQ2hDLGFBQWEsRUFBRSxjQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUscUNBQXFDLENBQUM7WUFDN0YsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLFdBQVcsRUFBRSxlQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsc0JBQXNCLENBQUM7WUFDN0UsV0FBVyxFQUFFLE1BQU07WUFDbkIscUJBQXFCLEVBQUUsdURBQXVEO1lBQzlFLHFCQUFxQixFQUFFLCtIQUErSDtTQUN2SixDQUFDLENBQUM7UUFFSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFFO1lBQzdDLEtBQUssRUFBRSxRQUFRLENBQUMsWUFBYSxDQUFDLGVBQWU7U0FDOUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBQ0QsU0FBUztBQUVULE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzFCLElBQUksMEJBQTBCLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDZm5PdXRwdXQgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGRzZiBmcm9tICcuLi8uLi9pbmRleCc7XG5pbXBvcnQgeyBSb2xlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuXG4vLy8gIXNob3dcbmNsYXNzIEV4YW1wbGVTcGFya0pvYkVtckVrc1N0YWNrIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgXG4gICAgY29uc3QgZGFpbHlKb2IgPSBuZXcgZHNmLnByb2Nlc3NpbmcuU3BhcmtFbXJDb250YWluZXJzSm9iKHRoaXMsICdTcGFya05pZ2h0bHlKb2InLCB7XG4gICAgICBuYW1lOiAnZGFpbHlfam9iJyxcbiAgICAgIHZpcnR1YWxDbHVzdGVySWQ6ICdleGFtcGxlSWQxMjMnLFxuICAgICAgZXhlY3V0aW9uUm9sZTogUm9sZS5mcm9tUm9sZUFybih0aGlzLCAnRXhlY3V0aW9uUm9sZScsICdhcm46YXdzOmlhbTo6MTIzNDU2Nzg5MDEyOnJvbGUvcm9sZScpLFxuICAgICAgZXhlY3V0aW9uVGltZW91dDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMTUpLFxuICAgICAgczNMb2dCdWNrZXQ6IEJ1Y2tldC5mcm9tQnVja2V0TmFtZSh0aGlzLCAnTG9nQnVja2V0JywgJ2Vtci1qb2ItbG9ncy1FWEFNUExFJyksIFxuICAgICAgczNMb2dQcmVmaXg6ICdsb2dzJyxcbiAgICAgIHNwYXJrU3VibWl0RW50cnlQb2ludDogJ2xvY2FsOi8vL3Vzci9saWIvc3BhcmsvZXhhbXBsZXMvc3JjL21haW4vcHl0aG9uL3BpLnB5JyxcbiAgICAgIHNwYXJrU3VibWl0UGFyYW1ldGVyczogJy0tY29uZiBzcGFyay5leGVjdXRvci5pbnN0YW5jZXM9MiAtLWNvbmYgc3BhcmsuZXhlY3V0b3IubWVtb3J5PTJHIC0tY29uZiBzcGFyay5kcml2ZXIubWVtb3J5PTJHIC0tY29uZiBzcGFyay5leGVjdXRvci5jb3Jlcz00JyxcbiAgICB9KTtcbiAgICBcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsICdkYWlseS1qb2Itc3RhdGUtbWFjaGluZScsIHtcbiAgICAgIHZhbHVlOiBkYWlseUpvYi5zdGF0ZU1hY2hpbmUhLnN0YXRlTWFjaGluZUFybixcbiAgICB9KTtcbiAgfVxufVxuLy8vICFoaWRlXG5cbmNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG5uZXcgRXhhbXBsZVNwYXJrSm9iRW1yRWtzU3RhY2soYXBwLCAnRXhhbXBsZVNwYXJrSm9iRW1yRWtzU3RhY2snKTtcbiJdfQ==