Как реорганизовать блок Ruby и извлечь повторяющиеся вызовы в методы? - PullRequest
0 голосов
/ 23 февраля 2020

В cfndsl вы можете создать AWS шаблон CloudFormation, например:

CloudFormation do
  EC2_Instance(:Example) do
    ImageId 'ami-12345678'
    InstanceType 't1.micro'
  end
end

Реальные шаблоны обычно намного больше, но это не главное.

Допустим, у меня есть десятки CloudFormation блоков, которые используют один и тот же EC2_Instance, каждый из которых может иметь разные ImageId и InstanceType.

Как извлечь этот повторяющийся шаблон в метод (например, ec2_instance), чтобы я мог преобразовать блок CloudFormation в нечто вроде этого:

def ec2_instance(ami, type)
   # ???
end

CloudFormation do
  ec2_instance('ami-12345678', 't1.micro')
end

CloudFormation do
  ec2_instance('ami-90111213', 't2.small')
end

1 Ответ

1 голос
/ 23 февраля 2020

Вы можете повторно использовать тот же код, но просто замените ImageId и InstanceType переменными:

def ec2_instance(ami, type)
  EC2_Instance(:Example) do
    ImageId ami
    InstanceType type
  end
end
...