@cdklabs/aws-data-solutions-framework
Version:
L3 CDK Constructs used to build data solutions with AWS
56 lines • 6.58 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 dsf_provider_1 = require("../lib/dsf-provider");
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
const path = require("path");
class ExampleBundlingDsfProviderStack extends cdk.Stack {
constructor(scope, id) {
super(scope, id);
const myManagedPolicy = new aws_iam_1.ManagedPolicy(this, 'Policy', {
document: new aws_iam_1.PolicyDocument({
statements: [
new aws_iam_1.PolicyStatement({
actions: [
's3:*',
],
effect: aws_iam_1.Effect.ALLOW,
resources: ['*'],
}),
],
}),
});
/// !show
const myProvider = new dsf_provider_1.DsfProvider(this, 'Provider', {
providerName: 'my-provider',
onEventHandlerDefinition: {
managedPolicy: myManagedPolicy,
handler: 'on-event.handler',
depsLockFilePath: path.join(__dirname, './resources/lambda/my-cr/package-lock.json'),
entryFile: path.join(__dirname, './resources/lambda/my-cr/on-event.mjs'),
bundling: {
nodeModules: [
'@aws-sdk/client-s3',
],
commandHooks: {
afterBundling: () => [],
beforeBundling: () => [
'npx esbuild --version'
],
beforeInstall: () => []
}
},
},
});
/// !hide
new cdk.CustomResource(this, 'CustomResource', {
serviceToken: myProvider.serviceToken,
resourceType: 'Custom::MyCustomResource',
});
}
}
const app = new cdk.App();
new ExampleBundlingDsfProviderStack(app, 'ExampleBundlingDsfProviderStack');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHNmLXByb3ZpZGVyLWJ1bmRsaW5nLmxpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9leGFtcGxlcy9kc2YtcHJvdmlkZXItYnVuZGxpbmcubGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDOztBQUV0QyxtQ0FBbUM7QUFDbkMsc0RBQWtEO0FBQ2xELGlEQUE2RjtBQUM3Riw2QkFBNkI7QUFJN0IsTUFBTSwrQkFBZ0MsU0FBUSxHQUFHLENBQUMsS0FBSztJQUNyRCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sZUFBZSxHQUFHLElBQUksdUJBQWEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3hELFFBQVEsRUFBRSxJQUFJLHdCQUFjLENBQUM7Z0JBQzNCLFVBQVUsRUFBRTtvQkFDVixJQUFJLHlCQUFlLENBQUM7d0JBQ2xCLE9BQU8sRUFBRTs0QkFDUCxNQUFNO3lCQUNQO3dCQUNELE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7d0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztxQkFDakIsQ0FBQztpQkFDSDthQUNGLENBQUM7U0FDSCxDQUFDLENBQUM7UUFDSCxTQUFTO1FBQ1QsTUFBTSxVQUFVLEdBQUcsSUFBSSwwQkFBVyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbkQsWUFBWSxFQUFFLGFBQWE7WUFDM0Isd0JBQXdCLEVBQUU7Z0JBQ3hCLGFBQWEsRUFBRSxlQUFlO2dCQUM5QixPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSw0Q0FBNEMsQ0FBQztnQkFDcEYsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHVDQUF1QyxDQUFDO2dCQUN4RSxRQUFRLEVBQUU7b0JBQ1IsV0FBVyxFQUFFO3dCQUNYLG9CQUFvQjtxQkFDckI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO3dCQUN2QixjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUM7NEJBQ3BCLHVCQUF1Qjt5QkFDeEI7d0JBQ0QsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQ3BCO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxTQUFTO1FBQ1QsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUM3QyxZQUFZLEVBQUUsVUFBVSxDQUFDLFlBQVk7WUFDckMsWUFBWSxFQUFFLDBCQUEwQjtTQUN6QyxDQUFDLENBQUM7SUFFTCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMxQixJQUFJLCtCQUErQixDQUFDLEdBQUcsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgRHNmUHJvdmlkZXIgfSBmcm9tICcuLi9saWIvZHNmLXByb3ZpZGVyJztcbmltcG9ydCB7IE1hbmFnZWRQb2xpY3ksIFBvbGljeURvY3VtZW50LCBQb2xpY3lTdGF0ZW1lbnQsIEVmZmVjdCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5cbmNsYXNzIEV4YW1wbGVCdW5kbGluZ0RzZlByb3ZpZGVyU3RhY2sgZXh0ZW5kcyBjZGsuU3RhY2t7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIFxuICAgIGNvbnN0IG15TWFuYWdlZFBvbGljeSA9IG5ldyBNYW5hZ2VkUG9saWN5KHRoaXMsICdQb2xpY3knLCB7XG4gICAgICBkb2N1bWVudDogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAnczM6KicsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfSk7XG4gICAgLy8vICFzaG93XG4gICAgY29uc3QgbXlQcm92aWRlciA9IG5ldyBEc2ZQcm92aWRlcih0aGlzLCAnUHJvdmlkZXInLCB7XG4gICAgICBwcm92aWRlck5hbWU6ICdteS1wcm92aWRlcicsXG4gICAgICBvbkV2ZW50SGFuZGxlckRlZmluaXRpb246IHtcbiAgICAgICAgbWFuYWdlZFBvbGljeTogbXlNYW5hZ2VkUG9saWN5LFxuICAgICAgICBoYW5kbGVyOiAnb24tZXZlbnQuaGFuZGxlcicsXG4gICAgICAgIGRlcHNMb2NrRmlsZVBhdGg6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3Jlc291cmNlcy9sYW1iZGEvbXktY3IvcGFja2FnZS1sb2NrLmpzb24nKSxcbiAgICAgICAgZW50cnlGaWxlOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9yZXNvdXJjZXMvbGFtYmRhL215LWNyL29uLWV2ZW50Lm1qcycpLFxuICAgICAgICBidW5kbGluZzoge1xuICAgICAgICAgIG5vZGVNb2R1bGVzOiBbXG4gICAgICAgICAgICAnQGF3cy1zZGsvY2xpZW50LXMzJyxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGNvbW1hbmRIb29rczoge1xuICAgICAgICAgICAgYWZ0ZXJCdW5kbGluZzogKCkgPT4gW10sXG4gICAgICAgICAgICBiZWZvcmVCdW5kbGluZzogKCkgPT4gW1xuICAgICAgICAgICAgICAnbnB4IGVzYnVpbGQgLS12ZXJzaW9uJ1xuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGJlZm9yZUluc3RhbGw6ICgpID0+IFtcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIC8vLyAhaGlkZVxuICAgIG5ldyBjZGsuQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0N1c3RvbVJlc291cmNlJywge1xuICAgICAgc2VydmljZVRva2VuOiBteVByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6TXlDdXN0b21SZXNvdXJjZScsXG4gICAgfSk7XG5cbiAgfVxufVxuXG5jb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xubmV3IEV4YW1wbGVCdW5kbGluZ0RzZlByb3ZpZGVyU3RhY2soYXBwLCAnRXhhbXBsZUJ1bmRsaW5nRHNmUHJvdmlkZXJTdGFjaycpOyJdfQ==