英文:
How to link Azure.ResourceManager.AppContainers with Azure.ResourceManager.ContainerRegistry in container app configuration?
问题
我正在尝试将Azure.ResourceManager.AppContainers与Azure.ResourceManager.ContainerRegistry集成,但我不清楚如何一起使用它们。我正在尝试设置容器应用程序配置,并在下面提供了我的代码原型:
// 加载容器注册表
var registries = await arm.GetContainerRegistriesAsync();
// 选择第一个注册表
var registry = registries.First();
// 创建新的容器应用程序配置
var appConfig = new ContainerAppConfiguration()
{
Ingress =
{
AllowInsecure = false,
TargetPort = service.dockerProfile.InternalPort,
ExposedPort = service.dockerProfile.ExternalPort,
Transport = Azure.ResourceManager.AppContainers.Models.ContainerAppIngressTransportMethod.Http,
External = service.dockerProfile.ExternalPort is not null
},
Registries =
{
// 我应该如何在这里集成注册表?
}
};
var container = await arm.CreateContainerApp(service.containerAppName, new(Azure.Core.AzureLocation.SouthCentralUS)
{
EnvironmentId = environment.Id,
Configuration = appConfig
});
是否有人遇到类似情况或知道如何正确设置"Registries"部分?我无法找到针对这个特定用例的文档。如果我获得了清晰的解答,我将愿意为文档做出贡献,以帮助将来的其他人。
英文:
I'm trying to integrate Azure.ResourceManager.AppContainers with Azure.ResourceManager.ContainerRegistry but I'm unclear on how to use them together. I'm attempting to set up a container app configuration and have provided a prototype of my code below:
// Load the container registry
var registries = await arm.GetContainerRegistriesAsync();
// Select the first registry
var registry = registries.First();
// Create a new container app configuration
var appConfig = new ContainerAppConfiguration()
{
Ingress =
{
AllowInsecure = false,
TargetPort = service.dockerProfile.InternalPort,
ExposedPort = service.dockerProfile.ExternalPort,
Transport = Azure.ResourceManager.AppContainers.Models.ContainerAppIngressTransportMethod.Http,
External = service.dockerProfile.ExternalPort is not null
},
Registries =
{
// How should I integrate the registry here?
}
};
var container = await arm.CreateContainerApp(service.containerAppName, new(Azure.Core.AzureLocation.SouthCentralUS)
{
EnvironmentId = environment.Id,
Configuration = appConfig
});
Has anyone encountered a similar situation or knows how to correctly set up the registries section? I've been unable to find documentation addressing this specific use case. If I get clarity, I'll be happy to contribute to the documentation to assist others in the future.
答案1
得分: 1
你需要创建一个 ContainerAppRegistryCredentials 对象。
以下是一个示例代码,你可以使用它。假设你将使用用户分配的托管标识进行访问设置。
Registries =
{
new ContainerAppRegistryCredentials()
{
Identity = "", // 用户分配的托管标识的资源ID
Server = registry.Data.LoginServer
}
}
有关更多详细信息,你可以查看这里的示例,它提供了有关需要创建的对象的良好信息:https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.app/container-app-acr
英文:
You will have to create an ContainerAppRegistryCredentials object.
Following is an example code which you may use. This is assuming you will be setting up access using a user assigned managed identity.
Registries =
{
new ContainerAppRegistryCredentials()
{
Identity = "",//Resource ID for user assigned managed identity
Server = registry.Data.LoginServer
}
}
For more details you can follow the example provided for bicep here. It gives good information about objects required to be created. https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.app/container-app-acr
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论