node.js - AWS 开发工具包实例创建不接受 AMI ID

标签 node.js amazon-web-services deployment aws-opsworks

我正在尝试通过 Node.js AWS SDK 执行实例创建,并为此使用以下代码:

OpsWorks.createInstanceAsync({
    InstanceType: config.instanceType,
    LayerIds: [config.layerId],
    StackId: config.stackId,
    RootDeviceType: params.RootDeviceType || 'ebs',
    AvailabilityZone: params.AvailabilityZone,
    InstanceType: params.InstanceType,
    SubnetId: params.SubnetId,
    AmiId: config.amiId
  });
});

当未指定 AmiId 时,这段代码可以正常工作(启动全新的实例)。为了减少部署时间,我计划使用 AMI,当添加 AmiId 参数时,我收到以下错误:

ValidationException: The AMI ID cannot be set for this OS

知道 OpsWorks (Ubuntu 14.04) 上发生这种情况的原因吗?

谢谢

最佳答案

您需要为 AMI 添加操作系统。使用下面的代码。

OpsWorks.createInstanceAsync({
    InstanceType: config.instanceType,
    LayerIds: [config.layerId],
    StackId: config.stackId,
    RootDeviceType: params.RootDeviceType || 'ebs',
    AvailabilityZone: params.AvailabilityZone,
    InstanceType: params.InstanceType,
    SubnetId: params.SubnetId,
    Os: 'Custom',
    AmiId: config.amiId
  });
});

关于node.js - AWS 开发工具包实例创建不接受 AMI ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38356767/

相关文章:

javascript - Node.js SSL 错误 - 没有可用的密码

amazon-web-services - 使用 AWS CLI 获取实例的名称和 ARM 列表

amazon-web-services - 如何在 AWS Elastic Beanstalk docker 实例中更改 logrotate 的设置

amazon-web-services - 使用多个帐户导入现有资源

json - 无效的 json 响应正文错误,同时将 Next.js 应用程序部署到 Vercel

database - 人们使用 Node.js 部署关系数据库更改的方式有哪些?

javascript - Sequelize-创建实例后不返回 promise

node.js - 连接到 Node 调试器 (Next.js) 时出现 "Could not read source map"错误

javascript - 从本地主机调用 api 的生产环境

Django 和 Azure Web 应用程序 : Run command on deployment