首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python创建内存资源共享会导致模板格式错误: JSON格式不正确

使用Python创建内存资源共享会导致模板格式错误: JSON格式不正确
EN

Stack Overflow用户
提问于 2021-05-07 16:21:41
回答 1查看 414关注 0票数 0

我们运行一个CodePipline合成pythonCDKCodeVersion1.91.0到Cloudformation并执行它们。

目前,我正在尝试建立一个交通网关,并与组织和一些帐户共享它。创建基本共享是没有问题的,但是一旦我添加了一个传输网关的resource_arn (注意,我是为了测试目的静态地这样做),Cloudformation验证就失败了,声称合成的Json模板不是很好的格式。在前面的}中,我用纯json验证器、云形成构建器和CLIAWSCloudFormate验证器验证了comlete模板,这是绝对好的。

所以,我可能在这里遇到了一个边缘的情况,或者做了一些根本错误的交通网关Arn。

代码语言:javascript
复制
from aws_cdk import (
    aws_ram as ram,
)
ram.CfnResourceShare(
            self,
            id="TransitGWRessourceShare",
            name="TransitGWRessourceShare",
            allow_external_principals=False,
            principals=[
                "arn:aws:organizations::1234567890:ou/o-123456asdf/ou-123-asbasdf",
                "1234567890",
            ],
            resource_arns=[
                "arn:aws:ec2:eu-central-1:​​1234567890:transit-gateway/tgw-XXXX",
            ],
        )

经过多次试验,我发现资源arn导致了这个问题,通过合成json模板的猫,我能够发现在合成过程中添加了一些神秘点··

余弦阶跃的Cat输出

代码语言:javascript
复制
 "TransitGW": {
      "Type": "AWS::EC2::TransitGateway",
      "Properties": {
        "AmazonSideAsn": XXXX,
        "AutoAcceptSharedAttachments": "enable",
        "DefaultRouteTableAssociation": "disable",
        "DefaultRouteTablePropagation": "disable",
        "DnsSupport": "enable",
        "MulticastSupport": "disable",
        ],
        "VpnEcmpSupport": "enable"
      },
    },
    "TransitGWRessourceShare": {
      "Type": "AWS::RAM::ResourceShare",
      "Properties": {
        "Name": "TransitGWRessourceShare",
        "AllowExternalPrincipals": false,
        "Principals": [
          "arn:aws:organizations::123456789:ou/o-xxxx/ou-xxxx-xxxx",
          "123456789"
        ],
        "ResourceArns": [
          "arn:aws:ec2:eu-central-1:··1234567890:transit-gateway/tgw-XXXX"
        ]
      },
      "Metadata": {
        "aws:cdk:path": "automation-cicd/dev/InfraBase/TransitGWRessourceShare"
      }
    },

感谢你的任何帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-10 16:16:36

因为这可能对将来的人有帮助--我会亲自出柜的;)

我发现由于复制了arn,在传输网关arn的线路上有一些零宽度的空间字符。

https://en.wikipedia.org/wiki/Zero-width_space

在很多编辑看不见它之前,我从未见过它,我在vi中看到了它。

代码语言:javascript
复制
"arn:aws:ec2:eu-central-1:<200b><200b>1234567890:transit-gateway/tgw-XXXX"

生成一个合成模板。

代码语言:javascript
复制
 "arn:aws:ec2:eu-central-1:··1234567890:transit-gateway/tgw-XXXX"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67438530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档