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

如何在AWS CDK(Java)中设置JSON字面量值?

Java CDK 中为CfnUser生成HomeDirectoryMappings的IResolvable实例

要解决这个问题,你可以使用CDK提供的CfnJson类来构建符合要求的IResolvable结构,它专门用于生成JSON字面量并实现了IResolvable接口。同时需要注意,使用homeDirectoryMappings时必须将homeDirectoryType设置为LOGICAL(PATH类型不支持目录映射)。

具体代码实现如下:

// 构建单个目录映射的键值对
Map<String, String> dirMapping = Map.of(
    "Entry", "/",
    "Target", "/bucket3/customized-reports/"
);

// 将映射列表包装为IResolvable类型的CfnJson对象
CfnJson homeDirMappings = CfnJson.Builder.create(this, "HomeDirMappings")
    .value(List.of(dirMapping))
    .build();

// 正确构建CfnUser实例
CfnUser user1 = CfnUser.Builder.create(this, "user1")
    .userName("user1")
    .serverId(transferServer.getAttrServerId())
    .homeDirectoryType("LOGICAL") // 必须设置为LOGICAL才能使用目录映射
    .homeDirectoryMappings(homeDirMappings)
    .role(role.getRoleArn())
    .build();

关键说明

  • CfnJson是CDK官方提供的工具类,能直接将Java集合转换为CloudFormation需要的JSON结构,同时满足IResolvable类型要求
  • 必须将homeDirectoryType改为LOGICAL,否则即使传入正确的映射,CloudFormation也会报错(PATH类型仅支持单一路径,不支持映射规则)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:56:34