gpt4 book ai didi

javascript - 如何通过 AWS SDK 在新创建的 EC2 实例上运行脚本?

转载 作者:行者123 更新时间:2023-11-30 14:56:45 26 4
gpt4 key购买 nike

我目前正在使用 AWS 的 Javascript SDK 来启动自定义 EC2 实例,到目前为止一切顺利。

但现在,我需要这些实例在创建时能够运行一些任务,例如,从 Github 克隆一个 repo,安装一个软件堆栈并配置一些服务。

这是为了模拟我对本地虚拟机部署的类似行为。在这种情况下,我使用 Ansible 运行一些配置脚本来完成工作。

对于我的用例,在 AWS 的不同服务中,哪个是使用 AWS 的 Javascript SDK 实现这一目标的最佳选择?

无论如何,我是否可以拥有一个模板脚本,我将一些运行时获取的变量传递给该模板脚本,以在我刚刚创建的实例中执行一些任务?我阅读了有关 user-data 的内容,但我无法弄清楚它是如何与 AWS 的 SDK 包装在一起的。此外,它似乎不可定制。

归根结底,我想我需要一种使用 SDK 来执行此操作的方法:

"On the newly created instance, run this script that is stored in such place, replacing these placeholder values in the script with these I'm giving you now"

有什么提示吗?

最佳答案

正如 Mark B. 所说,UserData 是在实例启动时执行命令的方式。当您使用 javascript 标记问题时,这里有一个在 ec2.runInstances 命令中传递此问题的示例:

let AWS = require('aws-sdk')
let ec2 = new AWS.EC2({region: 'YOUR_REGION'})
// Example commands to create a folder, a file and delete it
let commands = [
'#!/usr/bin/env bash',
'mkdir /home/ubuntu/test',
'touch /home/ubuntu/test/examplefile',
'rm -rf /home/ubuntu/test'
];
let params = {
...YOUR PARAMS HERE...
UserData: new Buffer(commands.join("\n")).toString('base64')
}
// You need to encode it with Base64 for it to be executed by the userdata interpreter
ec2.runInstances(params).promise().then(res => { console.log(res); })

关于javascript - 如何通过 AWS SDK 在新创建的 EC2 实例上运行脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47136944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com