Как исправить ожидаемый <тип 'basestring'> в коде Python - PullRequest
0 голосов
/ 16 апреля 2019

Я использую Troposphere для создания шаблонов CloudFormation.

Если я использую переменную или строку, я получаю ошибку - <class 'troposphere.efs.FileSystem'>, expected <type 'basestring'>

Я новичок в тропосфере и Python, поэтому любая помощьприветствуется.

Мой код при использовании строк

MyEFSMountTarget1a = t.add_resource(MountTarget(
    "MyEFSMountTarget1a",
    FileSystemId=(efs_file_system),
    SecurityGroups=["sg-0c69656095ee1a5b8"],
    SubnetId="subnet-091b67136896b2be8"
))

Мой код при использовании переменных

MyEFSMountTarget1a = t.add_resource(MountTarget(
    "MyEFSMountTarget1a",
    FileSystemId=(efs_file_system),
    SecurityGroups=[efs_security_group],
    SubnetId=PublicSubnet1a
))

Ошибка: <class 'troposphere.efs.MountTarget'>: MyEFSMountTarget1a.FileSystemId is <class 'troposphere.efs.FileSystem'>, expected <type 'basestring'>

Что яя делаю, импортирует значения из другого стека облачной информации и использует их в другом стеке.

Вот как я заполняю переменные -

efs_security_group = ImportValue(Join("-", [params.ENVIRONMENT, "efsSecurityGroup"]),)
PublicSubnet1a = ImportValue(Join("-", [params.ENVIRONMENT, "PublicSubnet1a"]),)

Они заполняются правильно, и я предположил, что это были строки Jutt- которые они есть.Таким образом, я думаю, я не могу использовать строки для SecurityGroups или SubnetId?Нужно ли преобразовывать строки в базовую строку и как?

Эрни

1 Ответ

0 голосов
/ 16 апреля 2019

Моя ошибка - это был идентификатор файловой системы - я забыл добавить ссылку на него FileSystemId = Ref (efs_file_system),

...