DeliveryDestination
The DeliveryDestination resource lets you manage AWS Logs DeliveryDestinations for streaming log data to various destinations like Amazon S3, Kinesis Data Firehose, or others.
Minimal Example
Section titled “Minimal Example”Create a basic delivery destination that streams logs to an S3 bucket with default settings.
import AWS from "alchemy/aws/control";
const deliveryDestination = await AWS.Logs.DeliveryDestination("basicDeliveryDestination", { name: "ExampleDeliveryDestination", destinationResourceArn: "arn:aws:s3:::my-log-bucket", outputFormat: "json"});
Advanced Configuration
Section titled “Advanced Configuration”Configure a delivery destination with a custom IAM policy and additional options.
const advancedDeliveryDestination = await AWS.Logs.DeliveryDestination("advancedDeliveryDestination", { name: "AdvancedDeliveryDestination", destinationResourceArn: "arn:aws:kinesis:us-west-2:123456789012:stream/my-log-stream", outputFormat: "json", deliveryDestinationPolicy: { Version: "2012-10-17", Statement: [ { Effect: "Allow", Principal: { Service: "logs.amazonaws.com" }, Action: "kinesis:PutRecord", Resource: "arn:aws:kinesis:us-west-2:123456789012:stream/my-log-stream" } ] }, tags: [ { Key: "Environment", Value: "Production" }, { Key: "Team", Value: "DevOps" } ]});
Using Tags for Organization
Section titled “Using Tags for Organization”Create a delivery destination while tagging it for better organization and cost management.
const taggedDeliveryDestination = await AWS.Logs.DeliveryDestination("taggedDeliveryDestination", { name: "TaggedDeliveryDestination", destinationResourceArn: "arn:aws:s3:::my-tagged-bucket", outputFormat: "json", tags: [ { Key: "Project", Value: "LogAnalysis" }, { Key: "Owner", Value: "DataTeam" } ]});
Adopting an Existing Resource
Section titled “Adopting an Existing Resource”Adopt an existing delivery destination instead of failing when it already exists.
const adoptedDeliveryDestination = await AWS.Logs.DeliveryDestination("adoptedDeliveryDestination", { name: "ExistingDeliveryDestination", destinationResourceArn: "arn:aws:kinesis:us-east-1:123456789012:stream/existing-log-stream", adopt: true});