Connecting Amazon Q Business to Amazon S3 using AWS CloudFormation
You use the AWS::QBusiness::DataSource
resource to connect a data source to
your Amazon Q application.
Use the configuration
property to provide a JSON or YAML schema with the necessary
configuration details specific to your data source connector.
To learn more about AWS CloudFormation, see What is AWS CloudFormation? in the AWS CloudFormation User Guide.
Topics
Amazon S3 configuration properties
The following provides information about important configuration properties required in the schema.
Configuration | Description | Type | Required |
---|---|---|---|
|
The type of data source. Specify |
The only allowed value is |
Yes |
|
Configuration information for the endpoint for the data source. |
This property has sub-properties: |
Yes |
|
The name of your Amazon S3 bucket. This is a sub-property for the
|
|
Yes |
|
The 12-digit AWS account ID that owns the S3 bucket. This is a sub-property for the
|
Must match pattern: |
Yes |
|
Configuration for filtering which files to include or exclude from indexing. |
This property has sub-properties for patterns, prefixes, and file size limits. |
No |
|
File patterns to include during indexing . This is a sub-property for the
|
|
No |
|
File patterns to exclude during indexing. This is a sub-property for the
|
|
No |
|
S3 key prefixes to include during indexing (e.g., documents/, reports/). This is a sub-property for the
|
|
No |
|
S3 key prefixes to exclude during indexing (e.g., temp/, cache/). This is a sub-property for the
|
|
No |
|
Maximum file size in megabytes to index. Files larger than this will be skipped. This is a sub-property for the
|
Minimum: 0, Maximum: 10240 |
No |
|
Configuration for access control and permissions. |
This property has sub-properties for ACL configuration and default access type. |
No |
|
Path to the ACL configuration file in your S3 bucket. This is a sub-property for the
|
Length: 1-1024 characters |
No |
|
Configuration for deletion protection to prevent accidental bulk deletions. |
This property has sub-properties for enabling deletion protection and setting thresholds. |
No |
|
Whether to enable deletion protection. This is a sub-property for the
|
|
No |
|
Percentage threshold for deletion protection. If more than this percentage of documents would be deleted, the sync will be blocked. This is a sub-property for the
|
Default: 15 |
No |
|
S3 key prefix where metadata files are stored for enhanced document processing. |
Length: 1-1024 characters |
No |
Amazon S3 JSON schema for using the configuration property with AWS CloudFormation
The following is the Amazon S3 JSON schema and examples for the configuration property for AWS CloudFormation.
Topics
Amazon S3 JSON schema for using the configuration property with AWS CloudFormation
The following is the Amazon S3 JSON schema for the configuration property for AWS CloudFormation.
{ "type": "object", "properties": { "type": { "type": "string", "pattern": "S3V2" }, "connectionConfiguration": { "type": "object", "properties": { "bucketName": { "type": "string" }, "bucketOwnerAccountId": { "type": "string", "pattern": "^\\d{12}$" } }, "required": ["bucketName", "bucketOwnerAccountId"] }, "filterConfiguration": { "type": "object", "properties": { "inclusionPatterns": { "type": "array", "items": { "type": "string" } }, "exclusionPatterns": { "type": "array", "items": { "type": "string" } }, "inclusionPrefixes": { "type": "array", "items": { "type": "string" } }, "exclusionPrefixes": { "type": "array", "items": { "type": "string" } }, "maxFileSizeInMegaBytes": { "type": "number", "minimum": 0, "maximum": 10240 } } }, "accessControlConfiguration": { "type": "object", "properties": { "aclConfigurationFilePath": { "type": "string", "minLength": 1, "maxLength": 1024 } } }, "deletionProtectionConfiguration": { "type": "object", "properties": { "enableDeletionProtection": { "type": "boolean" }, "deletionProtectionThreshold": { "type": "number", "default": 15 } } }, "metadataFilesPrefix": { "type": "string", "minLength": 1, "maxLength": 1024 } }, "required": [ "type", "connectionConfiguration" ] }
Amazon S3 JSON schema example for using the configuration property with AWS CloudFormation
The following is the Amazon S3 JSON example for the Configuration property for AWS CloudFormation.
{ "type": "S3V2", "connectionConfiguration": { "bucketName": "my-company-data-bucket", "bucketOwnerAccountId": "123456789012" }, "filterConfiguration": { "inclusionPatterns": ["*.pdf", "*.docx", "*.txt"], "exclusionPatterns": ["*.tmp", "*.log"], "inclusionPrefixes": ["documents/", "reports/"], "exclusionPrefixes": ["temp/", "cache/"], "maxFileSizeInMegaBytes": 100 }, "accessControlConfiguration": { "aclConfigurationFilePath": "config/acl-config.json" }, "deletionProtectionConfiguration": { "enableDeletionProtection": true, "deletionProtectionThreshold": 15 }, "metadataFilesPrefix": "metadata/" }
Amazon S3 YAML schema for using the configuration property with AWS CloudFormation
The following is the Amazon S3 YAML schema and examples for the configuration property for AWS CloudFormation:
Amazon S3 YAML schema example for using the configuration property with AWS CloudFormation
The following is the Amazon S3 YAML example for the Configuration property for AWS CloudFormation:
AWSTemplateFormatVersion: "2010-09-09" Description: "CloudFormation Amazon S3 Data Source Template" Resources: DataSourceS3V2: Type: "AWS::QBusiness::DataSource" Properties: ApplicationId: app12345-1234-1234-1234-123456789012 IndexId: indx1234-1234-1234-1234-123456789012 DisplayName: MyS3DataSourceV2 RoleArn: arn:aws:iam::123456789012:role/qbusiness-data-source-role Configuration: type: S3V2 connectionConfiguration: bucketName: my-company-data-bucket bucketOwnerAccountId: "123456789012" filterConfiguration: inclusionPatterns: - "*.pdf" - "*.docx" - "*.txt" exclusionPatterns: - "*.tmp" - "*.log" inclusionPrefixes: - "documents/" - "reports/" exclusionPrefixes: - "temp/" - "cache/" maxFileSizeInMegaBytes: 100 accessControlConfiguration: aclConfigurationFilePath: "config/acl-config.json" deletionProtectionConfiguration: enableDeletionProtection: true deletionProtectionThreshold: 15 metadataFilesPrefix: "metadata/"