CloudFormation CreateStack API Сбой, если он содержит макрос - PullRequest
0 голосов
/ 16 октября 2019

Я использую API-интерфейсы CloudFormation Boto3 для создания стека с использованием createStack API. Я могу создать стек, если передам шаблон, в котором нет макроса.

Ex -

Resources:
  Bucket1:
    Type: AWS::S3::Bucket

  Bucket2:
    Type: AWS::S3::Bucket

Я также создал макрос, который я могу вызывать через CLI ичерез CloudFormation UI. Так что в основном я использую вышеупомянутое формирование облаков с добавленным преобразованием.

Transform: StackMetrics

Resources:
  Bucket1:
    Type: AWS::S3::Bucket

  Bucket2:
    Type: AWS::S3::Bucket

Так как упоминалось ранее, оно работает через CLI и UI, но не через API.

client = boto3.client('cloudformation')
response = client.create_stack(
        StackName='MacroTestStack', TemplateURL='<path_to_above_template>',
        Capabilities=['CAPABILITY_AUTO_EXPAND']
    )

return response

Iпопробовал использовать CLI и UI.

1 Ответ

1 голос
/ 16 октября 2019

Если он работает в CLI и в пользовательском интерфейсе, то он работает в API (API является базовым API-интерфейсом AWS). Я думаю, вы имеете в виду, что он не работает в SDK boto3 (обратите внимание, SDK, а не API, это совершенно разные вещи).

Наиболее вероятная причина этого в том, что ваш boto3 SDK находится на обратном уровне. Обновите его и повторите попытку.

PS, если вы делаете вызов SDK, и он не работает, обычно будет какое-то сообщение об ошибке, код ответа об ошибке или исключение. Пожалуйста, предоставьте эту информацию, чтобы нам не приходилось догадываться.

...