首页 > 解决方案 > 是否可以在 CloudFormation 模板中执行命令然后更新安全组?

问题描述

标签: amazon-web-servicesamazon-ec2amazon-cloudformation

解决方案


最好的方法是在此处使用 Cloudformation自定义资源。您可以创建一个完全满足您需要的 lambda 函数。然后可以将此 lambda 函数作为云形成模板中的自定义资源函数调用。

您可以将新的安全组 ID 和实例 ID 传递给 lambda 函数,并对 lambda 函数进行编码以使用 AWS 开发工具包并进行您需要的修改。

我利用它向我的 Web 服务器发布了有关云形成模板进度的更新。下面是模板的示例代码。

EC2InstanceProfile:
    Type: AWS::IAM::InstanceProfile
    Properties:
      Path: /
      Roles: [!Ref 'EC2Role']
  MarkInstanceProfileComplete:
    Type: 'Custom::EC2InstanceProfileDone'
    Version: '1.0'
    DependsOn: EC2InstanceProfile
    Properties: 
      ServiceToken: !Ref CustomResourceArn
      HostURL: !Ref Host
      LoginType: !Ref LoginType
      SecretId: !Ref SecretId
      WorkspaceId: !Ref WorkspaceId
      Event: 2
      Total: 3

这里的资源 MarkInstanceProfileComplete 是一个调用 Lambda 函数的自定义资源。它将事件计数和总计数作为输入并处理它们以计算进度百分比。基于此,它向我的 Web 服务器发送请求。就我们而言,这个 Lambda 函数可以做任何你想让它做的事情。


推荐阅读