1

我知道可以使用 CloudFormation 模板在 AWS 中启动的EC2 实例并使用用户数据安装任何包。

但是有什么方法可以连接到现有实例并使用 CloudFormation 模板执行 shell 文件?

4

2 回答 2

0

如果您想在现有实例上执行此操作,并且您被迫使用 cloudformation。

您可以创建一个 SystemManager 文档以在具有 cloudformation 的实例上运行,即

document: 
  Type: AWS::SSM::Document
  Properties:
    Content:
      schemaVersion: '2.2'
      description: 'Run a script on Linux instances.'
      parameters:
        commands:
          type: String
          description: "(Required) The commands to run or the path to an existing script
    on the instance."
          default: 'echo Hello World'
      mainSteps:
      - action: aws:runShellScript
        name: runCommands
        inputs:
          timeoutSeconds: '60'
          runCommand:
           - "{{ commands }}"
    DocumentType: Command
    Name: 'CFN_2.2_command_example'
于 2020-09-22T07:20:16.483 回答
-1

遗憾的是,目前这在纯 CloudFormatoin 中是不可能的。要启用此功能,您必须在 CloudFormation 中开发 [自定义资源][1]。

该资源将采用lambda 函数的形式,该函数将使用 AWS SDK 在您的实例上运行SSM Run Command,前提是它已配置为与 SSM 一起使用。

或者,您可以使用Paraminko等工具从自定义资源中的 lambda 函数通过 ssh 连接到实例。

于 2020-09-22T07:03:56.010 回答