使用AWS CloudDirectory默认组织架构创建对象时遇无效ARN异常
解决AWS CloudDirectory创建对象时的Invalid ARN异常
你在使用默认customer-org schema创建CloudDirectory对象时遇到的Invalid ARN异常,大概率是ARN格式或配置匹配问题导致的,我帮你梳理几个核心排查方向:
1. 修正预定义Schema的ARN格式
AWS提供的公共预发布schema(比如customer-org)不需要包含你的账号ID,正确的ARN格式应该是:
arn:aws:clouddirectory:<region>::schema/published/customer-org/v0.0
你当前代码里的ARN额外添加了自己的账号ID(000000000000),这会让AWS无法识别这个官方公共schema,把账号ID部分去掉就能解决这个格式问题。
2. 确保客户端区域与ARN区域一致
检查你的boto3 CloudDirectory客户端是否和ARN里的us-east-1区域匹配,如果客户端默认区域不是us-east-1,需要显式指定:
client = boto3.client('clouddirectory', region_name='us-east-1')
区域不匹配是触发ARN无效错误的常见原因之一。
3. 验证Schema的存在性与发布状态
如果你用的是自己自定义的customer-org schema(而非AWS预定义版本),需要确认:
- 该schema已经在你的账号下成功发布
- ARN里的版本号
v0.0是正确的发布版本 - 可以通过API验证已发布的schema列表,对比确认ARN正确性:
response = client.list_published_schemas() print(response['SchemaArns'])
4. 核对Facet名称的准确性
默认customer-org schema中的Facet名称是Organization,你代码里的写法是正确的,但如果是自定义schema,要注意Facet名称是大小写敏感的,必须和schema定义完全一致。
调整后的示例代码:
import boto3 # 初始化指定区域的客户端 client = boto3.client('clouddirectory', region_name='us-east-1') AWS_CLOUD_DIR_ARN = 'arn:aws:clouddirectory:us-east-1:000000000000:directory/AUaGFp4A7Ea_lY5QwPxSQTw' # 使用AWS预定义schema的正确ARN AWS_CLOUD_DIR_SCHEMA_ARN = 'arn:aws:clouddirectory:us-east-1::schema/published/customer-org/v0.0' schemaFacets = [ { "SchemaArn": AWS_CLOUD_DIR_SCHEMA_ARN, "FacetName": "Organization" }, # 按需添加其他Facet ] # 执行创建对象操作 # client.create_object(DirectoryArn=AWS_CLOUD_DIR_ARN, SchemaFacets=schemaFacets, ...)
内容的提问来源于stack exchange,提问作者cogitoergosum
相关产品推荐
相关产品推荐

