如何在 CloudFormation 中创建可重用的块

罗汉·布希纳

设想:

我有一个无服务器/cloudformation 脚本,它将具有不同配置的相同代码作为 lambda 重新部署到 AWS,并通过 API 网关公开每个 lambda。

到目前为止,我能够做到这一点的唯一方法是通过在同一个脚本中进行大量复制和粘贴......但它开始让我上墙......因此,因为我是 AWS 的完全新手而且,在回答这个问题时,浏览 AWS 文档和互联网产生了非常糟糕的结果......我在这里试试运气。

在 cloudformation 脚本中:

"Resources":{  
   "LambdaResourceNG":{  
      "Type":"AWS::Serverless::Function",
      "Properties":{  
         "Handler":"some-handlername::foo::bar",
         "Runtime":"dotnetcore2.0",
         "Environment":{  
            "Variables":{  
               "PictureOptions__OriginalPictureSuffix":{  
                  "Fn::Join":[  
                     "",
                     [  
                        "_",
                        "ng",
                        "_",
                        {  
                           "Fn::FindInMap":[  
                              "Environments",
                              {  
                                 "Ref":"EnvironmentValue"
                              },
                              "PictureOptionsOriginalPictureSuffix"
                           ]
                        }
                     ]
                  ]
               },

            },
            "Events":{  
               "Bar":{  
                  "Type":"Api",
                  "Properties":{  
                     "Path":"/ng/bar",
                     "Method":"POST"
                  }
               },
               "Foo":{  
                  "Type":"Api",
                  "Properties":{  
                     "Path":"/ng/foo",
                     "Method":"POST"
                  }
               }
            }
         }
      },
   }

问题:

在上面的脚本块中.. 资源被称为LambdaResourceNG如果我想要其他资源... LambdaResourceKE...所有适当的部分都更改为KE. 我将如何制作一个可以在这种 erm ... 语言中重复使用的“功能”?

我已经找到了如何使用映射根据某些 env 值交换变量……但是如何创建可重用的代码/配置块?

jarmod

如果现有的 CloudFormation嵌套堆栈功能不够用并且您需要真正的可编程性,那么最终的 CF 模板可以是更高级别流程的输出。

有一些工具可用于创建模板,例如AWS Cloud Development KitTropospherecfndsl

另一种选择是从 CLI 驱动最终模板的创建。它不必特别复杂,只需包含模板引擎(如 jinja2 或把手)即可。然后,您可以对包含可重用模板片段的内容进行编程,将值动态注入这些片段,根据需要迭代循环,并发出最终的 CloudFormation 模板(或主模板和一组嵌套模板)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我们如何在Keras中创建一个块(可重用的函数集)?

如何重用CloudFormation CodeBlocks?

如何在新的Cloudformation模板中引用Cloudformation资源?

如何在cloudformation中过滤aws资源

如何在cloudformation中自引用SourceSecurityGroup?

创建CodePipeline之前如何在CloudFormation中创建ECS任务

如何在 mocha 中创建可重用的模拟

如何在Google App脚本中创建可重用的showModalDialog()?

如何在React中创建可重用的目录组件

如何在VueJs中创建可重用组件?

如何在ktor中创建可重用的拦截器?

如何在Word中创建可重用字段

如何在 C# 中创建可重用的属性

如何在iOS中创建可重用代码?

如何在 Compose 中创建可重用的修饰符?

AWS Dynamodb-如何在Cloudformation中重用自动缩放的ExpandableTarget

如何验证或创建 CloudFormation 堆栈

如何在cloudformation中的ImportValue中引用变量?

在CloudFormation中,如何在Events :: Rule中定位Lambda别名

如何使static_assert块在模板类中可重用?

在VPC上创建子网时如何确定AWS Cloudformation中的ipv6 CIDR块前缀

如何在cloudformation中访问EC2实例的IP

如何在cloudformation策略文档中引用资源ARN?(yaml)

如何在CloudFormation中获取SSM文档的ARN?

如何在cloudformation中添加自定义属性?

如何在 cloudformation 堆栈中为 lambda 配置异步配置?

如何在CloudFormation中定义CloudFront起源组?

如何在cloudformation yaml中配置路由规则?

如何在CloudFormation模板中命名Auto Scaling组?