2

使用 .Net Fluent Management SDK 创建 Azure 容器实例时如何配置重启策略?我是否遗漏了一些明显的东西,或者 SDK 是否落后于该功能?

                _azure.ContainerGroups.Define(containerGroupName)
                    .WithRegion(Region.USEast)
                    .WithExistingResourceGroup("my-resource-group")
                    .WithLinux()
                    .WithPrivateImageRegistry("myreg.azurecr.io", "registry", "XXXXXXXXXXXXX")
                    .WithoutVolume()
                    .DefineContainerInstance(containerGroupName)
                        .WithImage("my-image/tag")
                        .WithoutPorts()
                        .WithCpuCoreCount(4)
                        .WithMemorySizeInGB(0.5)
                        .WithEnvironmentVariable("containerGroup", containerGroupName)
                        .Attach()
                    .Create();

谢谢你

4

2 回答 2

1

使用 .Net Fluent Management SDK 创建 Azure 容器实例时如何配置重启策略?

根据 Fluent SDK 我发现我们可以使用以下代码设置重启策略

containerGroup.Inner.RestartPolicy = ContainerRestartPolicy.Always;

演示代码:

var containerGroup = _azure.ContainerGroups.Define(containerGroupName)
                .WithRegion(Region.USEast)
                .WithExistingResourceGroup("my-resource-group")
                .WithLinux()
                .WithPrivateImageRegistry("myreg.azurecr.io", "registry", "XXXXXXXXXXXXX")
                .WithoutVolume()
                .DefineContainerInstance(containerGroupName)
                .WithImage("my-image/tag")
                .WithoutPorts()
                .WithCpuCoreCount(4)
                .WithMemorySizeInGB(0.5)
                .WithEnvironmentVariable("containerGroup", containerGroupName)
                .Attach()
                .Create();

 containerGroup.Inner.RestartPolicy = ContainerRestartPolicy.Always;

注意:我发现 ContainerRestartPolicy 只有一个默认值always,我不测试它。我不确定其他值Never 和 OnFailure是否有效

如果ContainerInstanceManagementClient是可能的,我们可以使用 ContainerInstanceManagementClient 创建 Azure 容器实例

ContainerInstanceManagementClient client = new ContainerInstanceManagementClient(new TokenCredentials(token));

  var containerGroup = new ContainerGroupInner
            {
                Location = "xx",
                Containers = new List<Container>(),
                ImageRegistryCredentials = new List<ImageRegistryCredential>(),
                RestartPolicy = "xxx"

            };

var groupInner = client.ContainerGroups.CreateOrUpdateAsync("resourceGroup", "containerGroupName", containerGroupInner).Result;
于 2017-12-21T08:18:42.560 回答
1

根据文档,在启动容器时设置重启策略。在下面的示例中,我将策略设置为“从不”,.WithRestartPolicy(ContainerGroupRestartPolicy.Never)

_azure.ContainerGroups.Define(containerGroupName)
                    .WithRegion(Region.USEast)
                    .WithExistingResourceGroup("my-resource-group")
                    .WithLinux()
                    .WithPrivateImageRegistry("myreg.azurecr.io", "registry", "XXXXXXXXXXXXX")
                    .WithoutVolume()
                    .DefineContainerInstance(containerGroupName)
                        .WithImage("my-image/tag")
                        .WithoutPorts()
                        .WithCpuCoreCount(4)
                        .WithMemorySizeInGB(0.5)
                        .WithEnvironmentVariable("containerGroup", containerGroupName)
                .WithRestartPolicy(ContainerGroupRestartPolicy.Never)

                        .Attach()
                    .Create();

从文档:

指定重启策略的方式取决于创建容器实例的方式,例如使用 Azure CLI、Azure PowerShell cmdlet 或在 Azure 门户中。在 Azure CLI 中,调用 az container create 时指定 --restart-policy 参数。

于 2018-05-05T18:16:48.807 回答