【Azure 应用服务】部署Kafka Trigger Function到Azure Function服务中,解决自定义域名解析难题
问题描述
经过前两篇文章,分别使用VM搭建了Kafka服务,创建了Azure Function项目,并且都在本地运行成功。
- 【Azure Developer】在Azure VM (Windows) 中搭建 kafka服务,并且通过本地以及远程验证 发送+消费 消息
- 【Azure 应用服务】本地创建Azure Function Kafka Trigger 函数和Kafka output的HTTP Trigger函数实验
现在,本文中将把Kafka Trigger Function代码部署到Azure中,并解决Function在云上运行时遇见的 (Failed to resolve 'xxxxxxtest01.c2vbkl4ntjrehlqe5jmwliuhob.bx.internal.chinacloudapp.cn:9092': No such host is known. )问题
问题解答
第一部分:从VS 2022中部署Function代码到Azure Function App
首先:在Azure中创建好一个Function App,在Function App Overview页面下载Publish Profile文件
然后:在VS 2022中引入Publish Profile文件,点击发布
最后:把 BrokerList ,KafkaPassword ,ConnectionString 添加到Function App的Application Setting中
"BrokerList": "xxx.xxx.xxx.xxx:9092",
"KafkaPassword": "KafkaPassword",
"ConnectionString": "ConnectionString"
以上操作完成后,正常情况Function会运行成功。但是由于实验中使用的Kafka服务没有公共域名,只是使用IP地址进行访问。但是Kafka Trigger作为消费者连接到服务端时,GroupCoordinator 会通过IP地址,获取到Kafka Server生产的默认域名(如:Failed to resolve 'xxxxxxtest01.c2vbkl4ntjrehlqe5jmwliuhob.bx.internal.chinacloudapp.cn:9092': No such host is known.)然后需要在本地进行解析,而VM环境中可以通过修改 windows host文件来指定IP。但是在PaaS服务(Azure Function)中,是无法修改的。那么是否有办法来自定义DNS服务器呢? 请见第二部分。
第二部分:解决Failed to resolve 'xxxxxxtest01.c2vbkl4ntjrehlqe5jmwliuhob.bx.internal.chinacloudapp.cn:9092': No such host is known. 问题
为了能够让Azure Function能够解析 *****.c2vbkl4ntjrehlqe5jmwliuhob.bx.internal.chinacloudapp.cn 的私有域名,就需要找一个自定义的DNS服务器,然后在Function中配置 WEBSITE_DNS_SERVER,用指定的DNS 服务器来解析私有域名。
本文中使用的自定义DNS服务为 Azure 的 DNS Zone 服务,它可以自由的定义私有域名并且指定A记录。
第一步: 以 bx.internal.chinacloudapp.cn为 自定义域创建DNS Zone
进入DNS zones - Microsoft Azure 由世纪互联运营,创建名为 bx.internal.chinacloudapp.cn的DNS Zone资源
第二步:把kafka服务器的默认域名在DNS Zone中添加为A记录
点击“Record Set”,选择A记录,输入kafka服务域名,然后添加IP地址。
第三步:通过ping指令反解析处DNS Zone的Service IP地址,然后以此IP地址测试解析 Kafka域名,验证是否能成功解析为Kafka服务IP地址
通过 nslookup 指定DSN解析服务器为 ns1-02.azure-dns.cn 成功解析kafka域名, 因为Azure Funciton WEBSITE_DNS_SERVER 只能设置为IP地址,所以需要找出ns1-02.azure-dns.cn的IP地址
第四步:把DNS Zone服务的IP地址作为Function 的第一DNS解析服务器
在Funciton App 的配置页面,设置 WEBSITE_DNS_SERVER 和WEBSITE_ALT_DNS_SERVER 的值。
WEBSITE_DNS_SERVER | 40.73.192.2 |
WEBSITE_ALT_DNS_SERVER | 168.63.129.16 |
PS: WEBSITE_ALT_DNS_SERVER 作为次DNS服务器, 它的值为168.63.129.16 (Azure服务默认的DNS服务器地址)
第五步:在Function1, Function2中,验证Function运行正常
【END】
最新文章
- 【PHP面向对象(OOP)编程入门教程】11.类的继承
- android开发实现静默安装(root权限)
- MySQL · 特性分析 · innodb 锁分裂继承与迁移
- LINQ 用法,返回结果不是在定义时取值,而是在调用时实时取值,有意思!
- Accordion( 分类) 组件
- 巧用Graphviz和pvtrace等工具可视化C函数调用
- hdu 4750 Count The Pairs (2013南京网络赛)
- placeholder 属性的支持
- 【20171025中】alert(1) to win 脚本渲染自建
- Sparklyr与Docker的推荐系统实战
- CDH安装系统环境准备——虚拟机网络配置
- PACKAGE-INFO.JAVA 作用及用法详解
- Node.js模块化教程
- Python编码规范:IF中的多行条件
- centos安装mariadb
- CopyFromScreen在屏幕缩放情况下需要做处理
- hadoop需要哪些技术支持
- talib 中文文档(九):# Volatility Indicator Functions 波动率指标函数
- myeclipse便捷导包方式
- Spark Streaming源码解读之流数据不断接收和全生命周期彻底研究和思考
热门文章
- FTP主动模式上传文件时返回";ftp: accept: Resource temporarily unavailable";
- 树莓派开发笔记(十四):入手研华ADVANTECH工控树莓派UNO-220套件(三):使用研发自带系统测试rtc、gpio、232和485套件接口
- linux篇-公司网络故障那些事(路由器变交换机)
- nacos 快速入门
- 负载均衡之keepalived
- c++ 乘法逆元
- c++ 超长整数乘法 高精度乘法
- 测试平台系列(97) 完善执行case部分
- C# List转String的办法
- npm切换到国内华为云的镜像