gpt4 book ai didi

azure - 为开发生命周期配置 Azure ServiceFabric - 如何参数化主机名?

转载 作者:行者123 更新时间:2023-12-03 04:20:18 27 4
gpt4 key购买 nike

在 Azure 中管理将代码更改部署到开发、测试和生产环境的好方法是什么? Azure/Service Fabric 站点提供了一篇文章,用于在操作指南 - 管理应用程序生命周期 ( https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-how-to-specify-port-number-using-parameters ) 下使用参数指定端口号,但我不确定如何管理主机名 - 是否存在与主机名相关的属性可以包含在发布配置文件 .xml 文件(例如 Cloud.xml)中吗?

背景:我正在从作为 Windows 服务运行的自托管本地 WCF 应用程序迁移,并将 WebHttpBinding 与 http 和 https 端点一起使用(使用 T4 配置文件模板来根据环境确定主机名和端口号)。我正在将其迁移到 Azure ServiceFabric WcfCommunicationListener 应用程序(类似于此处找到的示例:https://github.com/loekd/ServiceFabric.WcfCalc)....

internal sealed class ServiceFabricWcfService : StatelessService
{
public ServiceFabricWcfService(StatelessServiceContext context) : base(context)

protected override IEnumerable<ServiceInstanceListener>
CreateServiceInstanceListeners()
{
yield return new ServiceInstanceListener(CreateRestListener);
}

private ICommunicationListener CreateRestListener(StatelessServiceContext context)
{
var host = context.NodeContext.IPAddressOrFQDN;
var endpointConfig = context.CodePackageActivationContext.GetEndpoint("ServiceEndpoint");
var port = endpointConfig.Port;
var scheme = endpointConfig.Protocol.ToString();
var uri = string.Format(CultureInfo.InvariantCulture, "{0}://{1}:{2}/webhost/", scheme, host, port);
var listener = new WcfCommunicationListener<IJsonService>(context, new JsonServicePerCall(), new WebHttpBinding(WebHttpSecurityMode.None), new EndpointAddress(uri));
var ep = listener.ServiceHost.Description.Endpoints.Last();
ep.Behaviors.Add(new WebHttpBehavior());
return listener;
}
}

正如您所看到的,主机名是从 StatelessServiceContext 的 NodeContext 获取的 - 有没有一种好的方法可以将其设置为针对每个环境的不同主机名?我的客户需要能够根据主机名进行 http/https 调用,以确定他们连接到哪个环境。谢谢!

最佳答案

我认为您不能这样做,因为在提供的示例中,主机变量代表正在运行服务的确切节点。如果您打开适当的端口,则可以使用集群名称访问它,例如http://mycluster.eastus.cloudapp.azure.com:19081/MyApp/MyService

关于azure - 为开发生命周期配置 Azure ServiceFabric - 如何参数化主机名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49780276/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com