• 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)

    依次执行:

    1. az login
    2. //seandemoacr01 是云端 容器注册表的名称
    3. az acr login --name seandemoacr01
    4. // 编译容器
    5. docker build --tag seandemoacr01.azurecr.io/seanfunctions:v1.0.0 .
    6. //推送到云端
    7. docker push seandemoacr01.azurecr.io/seanfunctions:v1.0.0

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

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

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

    1. // 参数只有service bus 连接字符串
    2. 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
    3. //参数包含application insight, webjob等
    4. 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的参数后,可以查看到向相关运行日志:

  • 相关阅读:
    vue-cli脚手架创建项目时报错Error: command failed: npm install --loglevel error
    推荐 9 个 yyds 前后端分离项目
    Python datetime,try-except-else-finally
    漏电继电器HLJ-400FS
    HTML静态网页成品作业(HTML+CSS)——电影网首页网页设计制作(1个页面)
    【FLASH存储器系列十】ONFI数据接口的时序参数与时序图
    windows服务器和linux服务器的ssh免密登录失败的解决方案
    基本数据类型在内存中存储形式
    纹波类型及纹波抑制措施
    HttpServletRequest详解
  • 原文地址:https://blog.csdn.net/yushuzhen2008/article/details/126585367