• 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的参数后,可以查看到向相关运行日志:

  • 相关阅读:
    Springboot+vue的在线试题题库管理系统(有报告),Javaee项目,springboot vue前后端分离项目。
    Java开发工具之使用cmd安装MySQL数据库
    模糊神经网络应用实例,神经网络与模糊控制
    【复杂网络】关于复杂网络中的动力学系统重构的文献资料整理
    K8S知识点(三)
    汇编层面的函数调用
    Acrobat Pro DC 2023 中文版
    【Redis】Java Spring操作redis
    AWS-GA(全球动态加速)-跨账号资源配置
    AVS3:双向梯度修正BGC
  • 原文地址:https://blog.csdn.net/yushuzhen2008/article/details/126585367