Azure Functions Service Bus Trigger 对容器的支持

本文参考:

在 Linux 上使用自定义映像创建 Azure Functions | Microsoft Docs

完成本文,需要先安装 Azure Functions的开发工具和Docker 相关工具,不再赘述,可参见本博客其他文章。

命令行下执行如下命令创建Azure Functions 的基础文件夹结构和 docker file等文件:

Functions-container>func init --worker-runtime dotnet --docker

执行如下命令,创建functions 代码:

func new --name FuncServiceBusTriggerDemo --template "Service Bus Topic trigger"

创建完成后,观察文件夹:

需要配置的地方:

代码中的,三个参数依次为 主题名称,订阅名称,连接字符串名称,其中连接字符串名称需要手动添加到local.settings.json中:

localsetting.json中的Azurewebjobstorage如果使用默认的 usedevelopmentstorage=true,则需要配置本地storage account模拟器,最新的模拟器为:使用 Azurite 模拟器进行本地 Azure 存储开发 | Microsoft Docs

如果不使用模拟器,则需要配置一个真正的云端的storage account的链接字符串。

完成以上步骤后,可以测试service bus trigger  Functions 容器是否正常运行,此处省略,接下来,build 容器(需要安装好docker desktop)

依次执行:

az login

//seandemoacr01 是云端 容器注册表的名称
az acr login --name seandemoacr01

// 编译容器
docker build --tag seandemoacr01.azurecr.io/seanfunctions:v1.0.0 .

//推送到云端 
docker push seandemoacr01.azurecr.io/seanfunctions:v1.0.0

如果直接将image 运行起来,则会出现如下错误:

主要原因是没有配置service bus的连接信息

使用 -e 参数传递service bus 配置:


// 参数只有service bus 连接字符串
docker run -e seandemofunc_SERVICEBUS="Endpoint=sb://sean-demo-func.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=5aF2OeGsD7sgopCUVwi/TJlHH6g4LMgTVoQQlRyN23o=" seandemoacr01.azurecr.io/seanfunctions:v1.0.0



//参数包含application insight, webjob等
docker run -e seandemofunc_SERVICEBUS="Endpoint=sb://sean-demo-func.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=5aF2OeGsD7sgopCUVwi/TJlHH6g4LMgTVoQQlRyN23o=" -e APPINSIGHTS_INSTRUMENTATIONKEY="3d4f5adc-3705-43e3-be66-09e5c0013c84"  -e APPLICATIONINSIGHTS_CONNECTION_STRING="InstrumentationKey=3d4f5adc-3705-43e3-be66-09e5c0013c84;IngestionEndpoint=https://eastasia-0.in.applicationinsights.azure.com/;LiveEndpoint=https://eastasia.livediagnostics.monitor.azure.com/" -e AzureWebJobsStorage="DefaultEndpointsProtocol=https;AccountName=seandemofuncad30;AccountKey=Nl213l9wmp+z44NFMtGEshhi0Cpnzt5j4AT27kuMPWSqc2ymColXAjjTZTCjcx6+amjFpvODu8Wt+AStdH8zgg==;EndpointSuffix=core.windows.net" seandemoacr01.azurecr.io/seanfunctions:v1.0.0

配置了application insight的参数后,可以查看到向相关运行日志:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值