AWS CDK Создание общего ресурса RAM с помощью Python CfnResourceShare приводит к ошибке формата шаблона: JSON неправильно сформирован

Мы запускаем CodePipline, синтезирующий код Python CDK версии 1.91.0 в шаблоны Cloudformation и выполняющий их.

В настоящее время я пытаюсь настроить транзитный шлюз и поделиться им с организацией и некоторой учетной записью. Создание базового общего ресурса не проблема, но как только я добавляю resource_arn транзитного шлюза (обратите внимание, что я делаю это статически для тестовых целей), проверка шаблона Cloudformation не проходит, утверждая, что синтезированный шаблон Json сформирован неправильно. в позапрошлом} Я проверил шаблон comlete json с помощью чистого валидатора Json, построителя облачных вычислений и валидатора облачной информации aws CLI, и это абсолютно нормально.

Так что я могу столкнуться с крайним случаем здесь или сделать что-то принципиально неправильное с Transit Gateway Arn.

      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 для Codepipline Step

            "ResourceArns": [
          "arn:aws:ec2:eu-central-1:··1234567890:transit-gateway/tgw-XXXX"
        ]

Любая помощь приветствуется

1 ответ

Решение

Так как это может кому-то помочь в будущем - я сам выберусь;)

Я обнаружил, что у меня из-за копии arn были некоторые символы пробела нулевой ширины в строке arn транзитного шлюза.

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

Я никогда не сталкивался с этим, пока он не был невидим во многих редакторах, я смог увидеть это в vi.

      "arn:aws:ec2:eu-central-1:<200b><200b>1234567890:transit-gateway/tgw-XXXX"

В результате получается синтезированный шаблон

       "arn:aws:ec2:eu-central-1:··1234567890:transit-gateway/tgw-XXXX"
Другие вопросы по тегам