UNPKG

@scloud/cdk-patterns

Version:

Serverless CDK patterns for common infrastructure needs

35 lines 4.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BuildsBucket = void 0; const aws_s3_1 = require("aws-cdk-lib/aws-s3"); const aws_cdk_lib_1 = require("aws-cdk-lib"); const PrivateBucket_1 = require("./PrivateBucket"); const GithubActions_1 = require("./GithubActions"); /** * A bucket to hold zip files for Lambda function code builds. * * This enables Lambda functions to reference zip files using Code.fromBucket(...) * * This is useful because updating a Lambda function in the infrastructure might set the Lambda code to a default placeholder, effectively taking the funtion offline. * * This construct also greates a Github Actions variable called 'BUILDS_BUCKET' that can be used in Github Actions workflows. * * @param construct The parent CDK construct. * @param id Defaults to 'builds'. * @param props Any additional properties for the bucket. * These can override the defaults provided by this function. */ class BuildsBucket extends PrivateBucket_1.PrivateBucket { constructor(scope, id = 'builds', props = {}) { super(scope, id, { blockPublicAccess: aws_s3_1.BlockPublicAccess.BLOCK_ALL, encryption: aws_s3_1.BucketEncryption.S3_MANAGED, removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY, autoDeleteObjects: true, ...props, }); (0, GithubActions_1.githubActions)(scope).addGhaBucket('builds', this); } } exports.BuildsBucket = BuildsBucket; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnVsaWRzQnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0J1bGlkc0J1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQ0FBc0Y7QUFDdEYsNkNBQTRDO0FBQzVDLG1EQUFnRDtBQUNoRCxtREFBZ0Q7QUFFaEQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQWEsWUFBYSxTQUFRLDZCQUFhO0lBQzdDLFlBQVksS0FBZ0IsRUFBRSxLQUFhLFFBQVEsRUFBRSxRQUE4QixFQUFFO1FBQ25GLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsU0FBUztZQUM5QyxVQUFVLEVBQUUseUJBQWdCLENBQUMsVUFBVTtZQUN2QyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1lBQ3BDLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO1FBQ0gsSUFBQSw2QkFBYSxFQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGO0FBWEQsb0NBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJsb2NrUHVibGljQWNjZXNzLCBCdWNrZXRFbmNyeXB0aW9uLCBCdWNrZXRQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgUHJpdmF0ZUJ1Y2tldCB9IGZyb20gJy4vUHJpdmF0ZUJ1Y2tldCc7XG5pbXBvcnQgeyBnaXRodWJBY3Rpb25zIH0gZnJvbSAnLi9HaXRodWJBY3Rpb25zJztcblxuLyoqXG4gKiBBIGJ1Y2tldCB0byBob2xkIHppcCBmaWxlcyBmb3IgTGFtYmRhIGZ1bmN0aW9uIGNvZGUgYnVpbGRzLlxuICpcbiAqIFRoaXMgZW5hYmxlcyBMYW1iZGEgZnVuY3Rpb25zIHRvIHJlZmVyZW5jZSB6aXAgZmlsZXMgdXNpbmcgQ29kZS5mcm9tQnVja2V0KC4uLilcbiAqXG4gKiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIHVwZGF0aW5nIGEgTGFtYmRhIGZ1bmN0aW9uIGluIHRoZSBpbmZyYXN0cnVjdHVyZSBtaWdodCBzZXQgdGhlIExhbWJkYSBjb2RlIHRvIGEgZGVmYXVsdCBwbGFjZWhvbGRlciwgZWZmZWN0aXZlbHkgdGFraW5nIHRoZSBmdW50aW9uIG9mZmxpbmUuXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgYWxzbyBncmVhdGVzIGEgR2l0aHViIEFjdGlvbnMgdmFyaWFibGUgY2FsbGVkICdCVUlMRFNfQlVDS0VUJyB0aGF0IGNhbiBiZSB1c2VkIGluIEdpdGh1YiBBY3Rpb25zIHdvcmtmbG93cy5cbiAqXG4gKiBAcGFyYW0gY29uc3RydWN0IFRoZSBwYXJlbnQgQ0RLIGNvbnN0cnVjdC5cbiAqIEBwYXJhbSBpZCBEZWZhdWx0cyB0byAnYnVpbGRzJy5cbiAqIEBwYXJhbSBwcm9wcyBBbnkgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGZvciB0aGUgYnVja2V0LlxuICogVGhlc2UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0cyBwcm92aWRlZCBieSB0aGlzIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQnVpbGRzQnVja2V0IGV4dGVuZHMgUHJpdmF0ZUJ1Y2tldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcgPSAnYnVpbGRzJywgcHJvcHM6IFBhcnRpYWw8QnVja2V0UHJvcHM+ID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBCbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICAgIGdpdGh1YkFjdGlvbnMoc2NvcGUpLmFkZEdoYUJ1Y2tldCgnYnVpbGRzJywgdGhpcyk7XG4gIH1cbn1cbiJdfQ==