Abh*_*hek 5 azure appveyor azure-functions
需要帮助找到一种方法来部署我的应用程序的自定义应用程序设置 - 1.使用我的.funproj创建的appsettings.json(vs 2015年的工具)2.appveyor的环境变量3.任何其他技巧
我想要的是避免在门户中手动设置这些东西并让它们受源控制(更好 - 使用部署,例如 - appveyor的安全环境变量)
提前致谢!以下是我目标的门户网站设置示例 -
appveyor的环境变量设置示例 -
environment:
SolutionDir: $(APPVEYOR_BUILD_FOLDER)\
my_var1: value1
my_var2: value2
Run Code Online (Sandbox Code Playgroud)
函数应用程序中的示例用法(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);
}
Run Code Online (Sandbox Code Playgroud)
您可以通过手臂模板来做到这一点。执行此操作的示例臂模板:
{
"$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'))]"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
您可以阅读如何从 VSTS 自动化部署:use-vsts-to-deploy-functions-as-infrastructure-as-code
归档时间: |
|
查看次数: |
1681 次 |
最近记录: |