gpt4 book ai didi

azure - 将应用程序设置部署到 azure 函数应用程序

转载 作者:行者123 更新时间:2023-12-02 09:39:51 25 4
gpt4 key购买 nike

需要帮助找到通过以下任一方式部署我的应用程序的自定义应用程序设置的方法 -1.使用我的.funproj创建的appsettings.json(与2015年的工具相比)2.appveyor的环境变量3.任何其他技巧

我想要的只是避免在门户中手动设置这些内容并对其进行源代码控制(更好 - 使用部署,例如 - appveyor 的安全环境变量)

提前致谢!以下是我要定位的门户设置示例 -

enter image description here

appveyor的环境变量设置示例-

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);
}

最佳答案

您可以通过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 自动化部署:use-vsts-to-deploy-functions-as-infrastructure-as-code

关于azure - 将应用程序设置部署到 azure 函数应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42727569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com