You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python版AWS CDK创建带时间戳后缀的DynamoDB表

解决方案

核心修改点

  • 修正原代码中datetime的拼写错误(Python中datetime模块名是全小写,原代码写的dateTime会触发命名报错)
  • 对时间戳做格式处理,避免出现DynamoDB表名不允许的特殊字符(比如默认浮点型时间戳的小数点)
  • 用Python字符串拼接方法把固定表名前缀和时间戳组合

修改后完整代码

from aws_cdk import (
    core as cdk,
    aws_dynamodb as dynamodb
)
from aws_cdk import core
from datetime import datetime


class CdkStack(cdk.Stack):

    def __init__(self, scope: cdk.Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        # 二选一即可:
        # 方式1:使用10位整数秒级时间戳,无特殊字符
        current_date = datetime.now()
        timestamp = int(datetime.timestamp(current_date))
        # 方式2:使用易读的日期时间格式,示例输出为20240520153012,可读性更强
        # timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
        
        # 用f-string拼接表名,写法最简洁直观
        table_full_name = f"DynamoDbTableWithTimeStamp_{timestamp}"
        dynamodb_table = dynamodb.Table(
            self,
            id='dynamodbTable',
            table_name=table_full_name,
            partition_key=dynamodb.Attribute(name='id', type=dynamodb.AttributeType.STRING)
        )

补充说明

  • 你也可以用+号实现拼接,写法为table_full_name = "DynamoDbTableWithTimeStamp_" + str(timestamp),注意必须把数字类型的timestamp转成字符串才能和文本拼接
  • 每次执行cdk deploy时如果重新生成时间戳,每次都会创建新的DynamoDB表,如果你需要固定表名仅首次生成的话,可以把时间戳存入CDK上下文变量或者项目配置文件中
  • DynamoDB表名允许的字符为a-z、A-Z、0-9、下划线(_)、点(.)、短横线(-),处理时间戳时不要保留小数点等非法字符

内容的提问来源于stack exchange,提问作者Dave Michaels

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:45:04