首页 > 解决方案 > 使用 @azure/arm-containerinstance 在 ACI 上生成容器

问题描述

我正在处理数据微服务。我有这个微服务 dockerized,现在我想部署它。为了实现它,我尝试使用用 node.js 编写的 Azure 函数来管理 Azure 容器实例中的容器。

我想测试的第一件事是在一个组中生成容器。我的想法是:

const oldConfig = await client.containerGroups.get(
    'resourceGroup',
    'resourceName'
);

const response = await client.containerGroups.createOrUpdate(
  'resourceGroup',
  'resourceName',
  {
    osType: oldConfig.osType,
    containers: [
      ...oldConfig.containers,
      {
        name: 'test',
        image: 'hello-world',
        resources: {
          requests: {
            memoryInGB: 1,
            cpu: 1,
          },
        },
      },
    ],
  }
);

我添加了 osType,因为文档和界面说它是必需的,但是当我这样做时,我收到错误“要更新 osType,您需要删除并创建组容器”。当我删除 osType 时,请求成功,但 ACI 没有改变. 我不能在每个新容器上重新创建整个组,因为我希望它们自己处理作业并终止。

标签: node.jsazureazure-container-instances

解决方案


并非所有属性都支持更新。请参阅以下详细信息:

并非所有容器组属性都可以更新。例如,要更改容器的重启策略,必须先删除容器组,然后再重新创建。

对这些属性的更改需要在重新部署之前删除容器组:

操作系统类型 CPU、内存或 GPU 资源 重启策略 网络配置文件

因此容器组在您更新osType. 您需要删除容器组并使用更改创建它。获取有关更新的更多详细信息。


推荐阅读