Ошибка проверки свойств AWS CloudFormation: [Обнаружены неподдерживаемые свойства в {/ContainerProperties/Environment

#yaml #amazon-cloudformation

#yaml #amazon-cloudformation

Вопрос:

Я создаю POC с помощью пакета AWS. Для создания инфраструктуры я использую AWS CloudFormation.

У меня проблема с ресурсом AWS ::Batch::JobDefinition

   ContentInputJob:
    Type: "AWS::Batch::JobDefinition"
    Properties:
      Type: Container
      ContainerProperties: 
        Environment:
          - name: SECRETS
            value: '**********'
        Command: 
          - -v
          - process
          - new-file
          - -o
        Image: !Join ['', [!Ref 'AWS::AccountId','.dkr.ecr.', !Ref 'AWS::Region', '.amazonaws.com/', !Ref ImageName ] ]
        JobRoleArn: !Ref BatchContainerIAMRole
        Memory: 128 
        Vcpus: 2
      JobDefinitionName: DemoContentInput
      RetryStrategy: 
        Attempts: 1
 

Сбой при создании стека… «Ошибка проверки свойств: [Обнаружены неподдерживаемые свойства в {/ContainerProperties/Environment/0}: [имя, значение]]»

Я прочитал:

Я тоже пробовал это:

   ContentInputJob:
    Type: "AWS::Batch::JobDefinition"
    Properties:
      Type: Container
      ContainerProperties: 
        Environment:
          - SECRETS: '**********'
        Command: 
          - -v
          - process
          - new-file
          - -o
        Image: !Join ['', [!Ref 'AWS::AccountId','.dkr.ecr.', !Ref 'AWS::Region', '.amazonaws.com/', !Ref ImageName ] ]
        JobRoleArn: !Ref BatchContainerIAMRole
        Memory: 128 
        Vcpus: 2
      JobDefinitionName: DemoContentInput
      RetryStrategy: 
        Attempts: 1
 

Затем я получаю «Сбой проверки свойств: [Обнаружены неподдерживаемые свойства в {/ContainerProperties/Environment/0}: [СЕКРЕТЫ]]»

Каков синтаксис для этого? Мне нужно более одной переменной среды.

       ContainerProperties: 
        Environment:
          - name: SECRETS
            value: '**********'
          - name: SECRETS2
            value: '**********'
 

Ответ №1:

Рекомендуем попробовать линтер CloudFormation в VSCode, чтобы увидеть некоторые из этих встроенных ошибок при создании шаблонов вместе со ссылками на автозаполнение и документацию.:

Расширение кода Visual Studio

 [cfn-lint] E3002: Invalid Property Resources/ContentInputJob/Properties/ContainerProperties/Environment/0/name
[cfn-lint] E3002: Invalid Property Resources/ContentInputJob/Properties/ContainerProperties/Environment/0/value
 

Комментарии:

1. Спасибо, Пэт, но я эти сообщения похожи на мои. В решениях используются заглавные буквы. Имя и значение

2. Однако автозаполнение свойства предотвратит повторение этого события 🙂

Ответ №2:

В решениях используются заглавные буквы.

       ContainerProperties: 
        Environment:
          - Name: SECRETS
            Value: '**********'
          - Name: SECRETS2
            Value: '**********'