当前位置: 首页 > 知识库问答 >
问题:

将应用设置部署到azure功能应用

闻人鸿飞
2023-03-14

需要帮助找到通过-1或使用appsettings部署应用程序自定义应用程序设置的方法。由my.funproj创建的json(vs工具2015)2.appveyor的环境变量3.任何其他技巧

我想要的只是避免在门户中手动设置这些东西并让它们受到源代码控制(更好地使用部署,例如-appveyer的安全环境变量)

提前感谢!下面是我针对的门户设置的示例-

应用程序的环境变量设置示例-

environment:
    SolutionDir: $(APPVEYOR_BUILD_FOLDER)\
    my_var1: value1
    my_var2: value2

函数应用程序(run.csx)中的示例用法-

using System;
using System.Runtime.InteropServices;
using System.Runtime.Remoting.Messaging;

public static void Run(string input, TraceWriter log)
{
    log.Info($"C# manually triggered function called with input: {input}");
    log.Info($"This is a custom setting: {GetEnvironmentVariable("my_var1")}");
}

public static string GetEnvironmentVariable(string name)
{
    return name + ": " +
        System.Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Process);
}

共有1个答案

侯和惬
2023-03-14

您可以通过arm模板来执行此操作。执行此操作的示例arm模板:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "functionappname": {
      "type": "string"
    }
  },
  "variables": {
    "serviceplanname": "[concat('functionserviceplan-',parameters('functionappname'),'-', uniqueString(resourceGroup().id))]",
    "functionstoragename": "[substring(toLower(concat('st',parameters('functionappname'), uniqueString(resourceGroup().id))),0,24)]"
  },
  "resources": [
    {
        "name": "[variables('serviceplanname')]",
        "type": "Microsoft.Web/serverfarms",
        "kind": "functionapp",
        "sku": {
            "name": "Y1",
            "tier": "Dynamic",
            "size": "Y1",
            "family": "Y",
            "capacity": 0
        },
        "apiVersion": "2015-08-01",
        "location": "[resourceGroup().location]",
        "properties": { "name": "[variables('serviceplanname')]" }
    },
    {
      "type": "Microsoft.Storage/storageAccounts",
      "name": "[variables('functionstoragename')]",
      "apiVersion": "2016-01-01",
      "sku": { "name": "Standard_LRS" },
      "location": "[resourceGroup().location]",
      "kind": "Storage"
    },
    {
        "type": "Microsoft.Web/sites",
        "kind": "functionapp",
        "name": "[parameters('functionappname')]",
        "apiVersion": "2015-08-01",
        "location": "[resourceGroup().location]",
        "properties": {
            "name": "[parameters('functionappname')]",
            "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('serviceplanname'))]",
            "hostNames": [ "[concat(parameters('functionappname'),'.azurewebsites.net')]" ],
            "enabledHostNames": [
                "[concat(parameters('functionappname'),'.azurewebsites.net')]",
                "[concat(parameters('functionappname'),'.scm.azurewebsites.net')]"
            ],
            "siteConfig": {
                "appSettings": [
                    { "name": "FUNCTIONS_EXTENSION_VERSION", "value": "~1" },
                    { "name": "AzureWebJobsDashboard", "value": "[concat('DefaultEndpointsProtocol=https;AccountName=',variables('functionstoragename'),';AccountKey=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('functionstoragename')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value)]" },
                    { "name": "AzureWebJobsStorage", "value": "[concat('DefaultEndpointsProtocol=https;AccountName=',variables('functionstoragename'),';AccountKey=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('functionstoragename')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value)]" },
                    { "name": "WEBSITE_NODE_DEFAULT_VERSION", "value": "6.5.0" }
                ]
            }
        },
        "dependsOn": [
            "[resourceId('Microsoft.Web/serverfarms', variables('serviceplanname'))]",
            "[resourceId('Microsoft.Storage/storageAccounts', variables('functionstoragename'))]"
        ]
    }
  ]
}

您可以阅读VSTS的《如何自动化部署:使用-vsts-to-deploy-functions-as-infra structure-as-code》

 类似资料:
  • 是否有更好的方法使用Azure DevOps而不是不可变映像将web应用程序(托管在IIS windows上)部署到Azure Scaleset?我假设对于每次部署,如果管道需要创建映像,那么创建映像和部署将花费太多时间,尤其是在需要部署热修复程序的情况下。 如果部署组使用azure Scaleset,是否有人尝试过?

  • 我想通过创建遥测初始化器为azure函数定制application insight配置。我当前的工作范围是确定一种方法,将从HTTP触发的azure函数发送的消息与另一个HTTP触发的azure函数相关联,为此,我试图遵循dzimchuk.net上的帮助。但是,我在我的azure函数项目中没有看到ApplicationInsights.config。我找到了包含app insight配置文件的Gi

  • 我在这里讨论一下文档:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-output?tabs=python 以下是我目前掌握的代码: function.json 初始化。py 如果我理解正确,当一个Blob被添加到容器中时,这个函数应该被触发,并且它可以在同一个容器中保存该

  • 我无法让我的Spring Boot站点在Azure Web实例上响应。我遵循了Java应用程序说明和上传说明。IIS服务器似乎正在接收请求,但战争中的servlet没有响应。根据留档,有几个问题。特别是,web.config应该部署到www root,并指定java路径和转发端口。我相信我已经涵盖了这些基础——我的web.config贴在下面。 我确实尝试过从市场上部署tomcat服务器,效果很好

  • 我想将一个Angular应用程序部署到一个Azure静态Web应用程序.构建部分工作正常,但发布错误并说它找不到构建项目:目录位置:'dist'无效。无法检测到此目录。请验证您的部署配置文件是否反映了您的存储库结构。 这是用于发布应用程序的YAML,下面是屏幕截图。 静态Web App模板 因此,似乎我们没有使用正确的发布位置,但不确定使用什么。 以下是来自管道的 YAML: 构建的安格应用程式的