I want to deploy a very basic S3 Table setup using CloudFormation:
AWSTemplateFormatVersion: 2010-09-09
Description: S3 Tables Stack
Resources:
TableBucket:
Type: AWS::S3Tables::TableBucket
Properties:
TableBucketName: my-data-bucket
BronzeNamespace:
Type: AWS::S3Tables::Namespace
Properties:
Namespace: bronze
TableBucketARN: !GetAtt TableBucket.TableBucketARN
RawData:
Type: AWS::S3Tables::Table
DependsOn: BronzeNamespace
Properties:
IcebergMetadata:
IcebergSchema:
SchemaFieldList:
- Name: timestamp
Required: true
Type: timestamptz
- Name: parameter_name
Required: true
Type: string
- Name: parameter_value
Required: false
Type: double
Namespace: !Ref BronzeNamespace
OpenTableFormat: ICEBERG
TableBucketARN: !GetAtt TableBucket.TableBucketARN
TableName: my-raw-data
When I try to deploy the above through CloudFormation I always get the following error:
Resource handler returned message: "The specified namespace does not exist. (Service: S3Tables, Status Code: 404, Request ID: 12595fe4-2751-487c-b7f5-f0648914bdd5) (SDK Attempt Count: 1)" (RequestToken: c212bb1e-56f6-8ecc-e346-7d03cf5c6e90, HandlerErrorCode: NotFound)
This is AFTER CloudFormation already reports in the console that BronzeNamespace has been successfully created (just to be sure I added an explicit DependsOn but this is not actually required). I already tried replacing the !Ref BronzeNamespace (which should return the namespace name) with the actual namespace name (bronze) but that changes nothing.
I cannot imagine this is a bug (as this is the most basic thing you would want to do when setting up S3 Tables through CloudFormation) but I also fail to see what I'm doing wrong here?