如何使用C#启动以前停止的Azure容器实例?
我有以下代码来停止Azure容器实例,并希望使用类似的方法来启动它如何使用C#启动以前停止的Azure容器实例?,c#,azure,azure-container-service,C#,Azure,Azure Container Service,我有以下代码来停止Azure容器实例,并希望使用类似的方法来启动它 using Microsoft.Azure.Management.Compute.Fluent.Models; using Microsoft.Azure.Management.Fluent; using Microsoft.Azure.Management.ResourceManager.Fluent; using Microsoft.Azure.Management.ResourceManager.Fluent.Core;
using Microsoft.Azure.Management.Compute.Fluent.Models;
using Microsoft.Azure.Management.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent.Core;
var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal("XXXX", "XXXX", "XXXX", AzureEnvironment.AzureGlobalCloud);
var azure = Azure
.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(credentials)
.WithSubscription("XXXXX");
var containerName = "mycontainer";
var containerGroup = azure.ContainerGroups.GetByResourceGroup("myResourceGroup", containerName);
if (containerGroup.State == "Running")
{
containerGroup.Stop();
}
我想做同样的事情并启动我的azure容器实例。那么containerGroup.Start()在哪里?这似乎不存在于界面中。我尝试过使用containerGroup.Restart();但这在停止状态下不起作用。我需要能够在C#代码中实现这一点,如果可能的话,我希望避免使用powershell 不幸的是,当您停止容器实例时,它们将处于终止状态,您无法再次启动它们 无法更新终止或删除的容器组。每年一次 容器组已停止(处于终止状态)或已停止 已删除,组将作为新组部署 即使您更新了ACI,也意味着ACI将被重新部署。你可以看看。此外,当容器实例处于运行状态时,重启操作也会起作用 所以C#SDK中没有启动功能,至少现在是这样。希望这对你有帮助 更新 请看一看此次活动:
每次在停止后启动容器组时,容器组总是执行以下步骤:拉取图像->创建容器组->启动容器实例。很明显,容器组是在停止后启动时重新创建的。有一种方法可以做到这一点,但它没有在fluent API中公开:
using Microsoft.Azure.Management.ContainerInstance.Fluent;
// azure is an instance of IAzure; the fluent Azure API
var resources = await azure.ContainerGroups.ListAsync();
foreach(var containerGroup in resources.Where(aci => aci.State != "Running"))
{
await ContainerGroupsOperationsExtensions.StartAsync(
containerGroup.Manager.Inner.ContainerGroups,
containerGroup.ResourceGroupName,
containerGroup.Name);
}
正如其他人所提到的,您确实需要意识到这实际上是在开始一个新的容器。除非您将上一次运行的状态持久化到其他地方(如在中),否则不会维护上一次运行的状态
您还需要向执行此代码的人授予适当的权限。我正在使用一个函数,所以我必须设置一个服务帐户和一个角色,这包含了所有细节
更新
我正在使用的代码在GitHub上:新的fluent SDK尚未使用Start支持进行更新,但正在进行中!如果对你有用的话,非流畅的FlavorSDK有启动支持。还有问题吗?或者,如果答案是有帮助的,你可以接受它。它不能回答我的问题。谢谢你的输入你希望得到什么答案?在停止状态下启动容器组的C#函数?如果这是真的,为什么我可以从门户启动它们?如果您看到@Anders上面的注释,则表明它将被添加到fluent SDK中,并且已经存在于非fluent SDK中。它也存在于powershell@johnstaveley我在答案中显示了测试截图。希望它能帮助您。嗨,在启动容器组之前有没有办法更改环境变量?文档似乎有点神秘,我不知道从管理API中有什么方法可以做到这一点,但我可以想出一些将数据传递给容器组的替代方法。如果你想得到更详细的答案,你可能应该发布一个新问题。谢谢,发布了这个问题