You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS Node.js SDK创建EKS Node Group时报CreateNodegroup非函数如何解决

AWS Node.js SDK创建EKS节点组报错解决

错误直接原因:方法名大小写不匹配

你当前使用的是AWS SDK for JavaScript v2版本,该版本所有客户端方法统一使用首字母小写的小驼峰命名,你写的CreateNodegroup首字母大写不符合SDK命名规范,正确的方法名是createNodegroup。

额外需要修正的参数问题

修改方法名后,你当前的传参仍缺少节点组创建的必填字段,还需要补充配置:

  • 集群名称参数名错误:你传入的name字段不符合SDK参数定义,正确的集群名称参数名为clusterName
  • 缺少必填的nodeRole参数:需要传入EKS工作节点使用的IAM角色ARN,该角色需要提前配置AmazonEKSWorkerNodePolicy、AmazonEC2ContainerRegistryReadOnly等必要权限策略
  • 缺少必填的subnets参数:需要传入节点组部署使用的VPC子网ID数组,至少包含2个和EKS集群关联的可用区子网

修正后可运行的参考代码

const AWS = require('aws-sdk');

AWS.config.update({region: 'us-west-2'});
const eks = new AWS.EKS();

// 替换以下参数中的占位内容为你账号下的实际资源信息
eks.createNodegroup({
  clusterName: 'openstudio-server',
  nodegroupName: 'openstudio-node',
  instanceTypes: ["t2.xlarge"],
  scalingConfig: { 
    desiredSize: 3,
    maxSize: 10,
    minSize: 3
  },
  // 补充必填参数
  nodeRole: 'arn:aws:iam::你的AWS账号ID:role/你的EKS节点角色名',
  subnets: ['子网1ID', '子网2ID'],
  // 可选常用参数按需添加
  // amiType: 'AL2_x86_64',
  // diskSize: 50
}, (err, data) => {
  if (err) {
    console.log('节点组创建失败', err);
    return;
  }
  console.log('节点组创建成功', data);
});

其他优化建议

  • 你代码中重复调用了两次AWS.config.update({region: 'us-west-2'}),属于冗余配置,可以删除其中一次
  • 异步场景下可以搭配.promise()和async/await使用,代码逻辑更简洁
  • 调用接口前请确认当前使用的AWS凭证有eks:CreateNodegroup及相关IAM、EC2资源的操作权限

内容的提问来源于stack exchange,提问作者Anton James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:33:01