UNPKG

7.27 kBJavaScriptView Raw
1"use strict";
2var _a;
3Object.defineProperty(exports, "__esModule", { value: true });
4exports.CloudWatchLogGroup = void 0;
5const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
6const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7const iam = require("@aws-cdk/aws-iam");
8const cdk = require("@aws-cdk/core");
9const core_1 = require("@aws-cdk/core");
10const log_group_resource_policy_1 = require("./log-group-resource-policy");
11const util_1 = require("./util");
12/**
13 * Use an AWS CloudWatch LogGroup as an event rule target.
14 */
15class CloudWatchLogGroup {
16 constructor(logGroup, props = {}) {
17 this.logGroup = logGroup;
18 this.props = props;
19 try {
20 jsiiDeprecationWarnings._aws_cdk_aws_events_targets_LogGroupProps(props);
21 }
22 catch (error) {
23 if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
24 Error.captureStackTrace(error, CloudWatchLogGroup);
25 }
26 throw error;
27 }
28 }
29 /**
30 * Returns a RuleTarget that can be used to log an event into a CloudWatch LogGroup
31 */
32 bind(_rule, _id) {
33 // Use a custom resource to set the log group resource policy since it is not supported by CDK and cfn.
34 const resourcePolicyId = `EventsLogGroupPolicy${cdk.Names.nodeUniqueId(_rule.node)}`;
35 const logGroupStack = cdk.Stack.of(this.logGroup);
36 if (!this.logGroup.node.tryFindChild(resourcePolicyId)) {
37 new log_group_resource_policy_1.LogGroupResourcePolicy(logGroupStack, resourcePolicyId, {
38 policyStatements: [new iam.PolicyStatement({
39 effect: iam.Effect.ALLOW,
40 actions: ['logs:PutLogEvents', 'logs:CreateLogStream'],
41 resources: [this.logGroup.logGroupArn],
42 principals: [new iam.ServicePrincipal('events.amazonaws.com')],
43 })],
44 });
45 }
46 return {
47 ...util_1.bindBaseTargetConfig(this.props),
48 arn: logGroupStack.formatArn({
49 service: 'logs',
50 resource: 'log-group',
51 arnFormat: core_1.ArnFormat.COLON_RESOURCE_NAME,
52 resourceName: this.logGroup.logGroupName,
53 }),
54 input: this.props.event,
55 targetResource: this.logGroup,
56 };
57 }
58}
59exports.CloudWatchLogGroup = CloudWatchLogGroup;
60_a = JSII_RTTI_SYMBOL_1;
61CloudWatchLogGroup[_a] = { fqn: "@aws-cdk/aws-events-targets.CloudWatchLogGroup", version: "1.181.1" };
62//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibG9nLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHdDQUF3QztBQUV4QyxxQ0FBcUM7QUFDckMsd0NBQTBDO0FBQzFDLDJFQUFxRTtBQUNyRSxpQ0FBK0Q7QUFnQi9EOztHQUVHO0FBQ0gsTUFBYSxrQkFBa0I7SUFDN0IsWUFBNkIsUUFBd0IsRUFBbUIsUUFBdUIsRUFBRTtRQUFwRSxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUFtQixVQUFLLEdBQUwsS0FBSyxDQUFvQjs7Ozs7OytDQUR0RixrQkFBa0I7Ozs7S0FDd0U7SUFFckc7O09BRUc7SUFDSSxJQUFJLENBQUMsS0FBbUIsRUFBRSxHQUFZO1FBQzNDLHVHQUF1RztRQUN2RyxNQUFNLGdCQUFnQixHQUFHLHVCQUF1QixHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUVyRixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3RELElBQUksa0RBQXNCLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFO2dCQUMxRCxnQkFBZ0IsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQzt3QkFDekMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSzt3QkFDeEIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsc0JBQXNCLENBQUM7d0JBQ3RELFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO3dCQUN0QyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO3FCQUMvRCxDQUFDLENBQUM7YUFDSixDQUFDLENBQUM7U0FDSjtRQUVELE9BQU87WUFDTCxHQUFHLDJCQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDbkMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUM7Z0JBQzNCLE9BQU8sRUFBRSxNQUFNO2dCQUNmLFFBQVEsRUFBRSxXQUFXO2dCQUNyQixTQUFTLEVBQUUsZ0JBQVMsQ0FBQyxtQkFBbUI7Z0JBQ3hDLFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVk7YUFDekMsQ0FBQztZQUNGLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7WUFDdkIsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQzlCLENBQUM7S0FDSDs7QUFsQ0gsZ0RBbUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gJ0Bhd3MtY2RrL2F3cy1ldmVudHMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ0Bhd3MtY2RrL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdAYXdzLWNkay9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IExvZ0dyb3VwUmVzb3VyY2VQb2xpY3kgfSBmcm9tICcuL2xvZy1ncm91cC1yZXNvdXJjZS1wb2xpY3knO1xuaW1wb3J0IHsgVGFyZ2V0QmFzZVByb3BzLCBiaW5kQmFzZVRhcmdldENvbmZpZyB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogQ3VzdG9taXplIHRoZSBDbG91ZFdhdGNoIExvZ0dyb3VwIEV2ZW50IFRhcmdldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0dyb3VwUHJvcHMgZXh0ZW5kcyBUYXJnZXRCYXNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRvIHNlbmQgdG8gdGhlIENsb3VkV2F0Y2ggTG9nR3JvdXBcbiAgICpcbiAgICogVGhpcyB3aWxsIGJlIHRoZSBldmVudCBsb2dnZWQgaW50byB0aGUgQ2xvdWRXYXRjaCBMb2dHcm91cFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBlbnRpcmUgRXZlbnRCcmlkZ2UgZXZlbnRcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50PzogZXZlbnRzLlJ1bGVUYXJnZXRJbnB1dDtcbn1cblxuLyoqXG4gKiBVc2UgYW4gQVdTIENsb3VkV2F0Y2ggTG9nR3JvdXAgYXMgYW4gZXZlbnQgcnVsZSB0YXJnZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZFdhdGNoTG9nR3JvdXAgaW1wbGVtZW50cyBldmVudHMuSVJ1bGVUYXJnZXQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGxvZ0dyb3VwOiBsb2dzLklMb2dHcm91cCwgcHJpdmF0ZSByZWFkb25seSBwcm9wczogTG9nR3JvdXBQcm9wcyA9IHt9KSB7fVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgUnVsZVRhcmdldCB0aGF0IGNhbiBiZSB1c2VkIHRvIGxvZyBhbiBldmVudCBpbnRvIGEgQ2xvdWRXYXRjaCBMb2dHcm91cFxuICAgKi9cbiAgcHVibGljIGJpbmQoX3J1bGU6IGV2ZW50cy5JUnVsZSwgX2lkPzogc3RyaW5nKTogZXZlbnRzLlJ1bGVUYXJnZXRDb25maWcge1xuICAgIC8vIFVzZSBhIGN1c3RvbSByZXNvdXJjZSB0byBzZXQgdGhlIGxvZyBncm91cCByZXNvdXJjZSBwb2xpY3kgc2luY2UgaXQgaXMgbm90IHN1cHBvcnRlZCBieSBDREsgYW5kIGNmbi5cbiAgICBjb25zdCByZXNvdXJjZVBvbGljeUlkID0gYEV2ZW50c0xvZ0dyb3VwUG9saWN5JHtjZGsuTmFtZXMubm9kZVVuaXF1ZUlkKF9ydWxlLm5vZGUpfWA7XG5cbiAgICBjb25zdCBsb2dHcm91cFN0YWNrID0gY2RrLlN0YWNrLm9mKHRoaXMubG9nR3JvdXApO1xuXG4gICAgaWYgKCF0aGlzLmxvZ0dyb3VwLm5vZGUudHJ5RmluZENoaWxkKHJlc291cmNlUG9saWN5SWQpKSB7XG4gICAgICBuZXcgTG9nR3JvdXBSZXNvdXJjZVBvbGljeShsb2dHcm91cFN0YWNrLCByZXNvdXJjZVBvbGljeUlkLCB7XG4gICAgICAgIHBvbGljeVN0YXRlbWVudHM6IFtuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnbG9nczpQdXRMb2dFdmVudHMnLCAnbG9nczpDcmVhdGVMb2dTdHJlYW0nXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFt0aGlzLmxvZ0dyb3VwLmxvZ0dyb3VwQXJuXSxcbiAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdldmVudHMuYW1hem9uYXdzLmNvbScpXSxcbiAgICAgICAgfSldLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJpbmRCYXNlVGFyZ2V0Q29uZmlnKHRoaXMucHJvcHMpLFxuICAgICAgYXJuOiBsb2dHcm91cFN0YWNrLmZvcm1hdEFybih7XG4gICAgICAgIHNlcnZpY2U6ICdsb2dzJyxcbiAgICAgICAgcmVzb3VyY2U6ICdsb2ctZ3JvdXAnLFxuICAgICAgICBhcm5Gb3JtYXQ6IEFybkZvcm1hdC5DT0xPTl9SRVNPVVJDRV9OQU1FLFxuICAgICAgICByZXNvdXJjZU5hbWU6IHRoaXMubG9nR3JvdXAubG9nR3JvdXBOYW1lLFxuICAgICAgfSksXG4gICAgICBpbnB1dDogdGhpcy5wcm9wcy5ldmVudCxcbiAgICAgIHRhcmdldFJlc291cmNlOiB0aGlzLmxvZ0dyb3VwLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
\No newline at end of file