【问题标题】:AWS: Cloud Formation: Is it possible to use a list in "DependsOn" where only one needs to be done firstAWS:云形成:是否可以在“DependsOn”中使用一个列表,其中只需要先完成一个
【发布时间】:2022-01-18 22:57:58
【问题描述】:

我有一个运行一系列 EMR 步骤的 CF 模板。中间步骤之一取决于这是月度报告还是年度报告。所以它使用一个条件,如果是每月,则每月执行一次,如果是每年,则每年执行一次。对于最后一步,我想使用 DependsOn,但要说之前运行的月度步骤或年度步骤 - 不是两者兼而有之。这样的事情可能吗?也许 DependsOn 不是解决这个问题的最佳方式?

【问题讨论】:

  • Cloudformation 允许您使用自定义构造。基本上是由在 lambda 中运行的代码支持的东西。所以理论上你可以做任何你想做的事情。
  • 您的模板是什么,您如何在其中定义每月和每年?作为输入参数?
  • 听起来你应该使用状态机?
  • 进展如何?仍然不清楚你能做什么?
  • 我更改了每月和最后的步骤以使用相同的名称 - 我没有意识到你可以这样做。因此,最终和每月都有不同的条件,我将其设置为 lambda 中的参数。然后最后一步可以使用dependsOn,因为每月或最终都会运行。希望这是有道理的!

标签: amazon-web-services aws-lambda amazon-cloudformation


【解决方案1】:

不可能。您必须开发一个custom resource 来处理这样的要求。

【讨论】:

    【解决方案2】:

    我意识到我可以编辑我的模板,为最终步骤和每月步骤使用相同的名称。所以我的 lambda 包含参数 FinalMOR

    {"ParameterKey": "FinalMOR", "ParameterValue": "true"}
    

    我的模板看起来像

    "pysparkStep1": {"Type": "AWS::EMR::Step", "Properties": ... "Args": [step1prog]...
    "pysparkStep2": {"Type": "AWS::EMR::Step", "Condition": "MonthlyMOR",
            "DependsOn": ["pysparkStep1"], "Properties": ... "Args": [step2Monthlyprog]...
    "pysparkStep2": {"Type": "AWS::EMR::Step", "Condition": "FinalMOR",
            "DependsOn": ["pysparkStep1"], "Properties": ... "Args": [step2Finalprog]...
    "pysparkStep3": {"Type": "AWS::EMR::Step", "DependsOn": ["pysparkStep2"],
        "Properties": ... "Args": [step3prog]...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      • 2020-10-25
      • 1970-01-01
      相关资源
      最近更新 更多