我正在使用Azure功能与GitHub部署.我想将函数放在src/server/functionName/
repo中,但只有直接放置函数时,部署才有效functionName/
如何部署放置在子目录中的函数?
该文档的状态
您的host.json文件和函数文件夹应该直接位于您部署的根目录.
但"应该"并不意味着"必须",对吗?
我尝试了什么:
host.json
我设置routePrefix
但它似乎只影响函数的URL:"http": { "routePrefix": "src/server" },
我正在尝试查看我的公司是否可以使用Azure Functions自动将TIFF文件转换为许多JPG和PNG格式和大小。我正在使用带有Node.js的功能,但是可以使用其他语言。
我的问题是,我无法让GraphicsMagick或ImageMagick来使用Functions。我使用npm install使用正常的安装步骤。
似乎安装正确,并且该模块也似乎已加载,但是当我尝试处理文件时没有任何反应。没有,也没有错误。
var fs = require('fs'); var gm = require('gm');
module.exports = function(context,req){context.log('Start ...');
Run Code Online (Sandbox Code Playgroud)try { context.log('Looking for GM...'); context.log(require.resolve("gm")); } catch(e) { console.log("GM is not found"); process.exit(e.code); } gm('D:/home/site/wwwroot/HttpTriggerJS1/input/870003-02070-main-nfh.jpg') .resize(240, 240) .noProfile() .write('D:/home/site/wwwroot/HttpTriggerJS1/output/resize.jpg', function (err) { context.log('TEST'); if (!err) { context.log('done'); } } ); context.done(null, res); };
我不确定这是否有可能,但是我还没有找到任何信息表明无法做到这一点。
那么,我可以在Function中使用ImageMagick,GraphicsMagick或第三个图像转换器吗?如果是,安装时我需要注意一些特别的事情吗?
还有C#解决方案吗?
我试图在Azure功能中使用Autofac IOC实现DI.我需要构建容器,但不确定将代码放在何处构建容器
dependency-injection inversion-of-control azure autofac azure-functions
我希望在Azure Function的集线器启动时运行代码,并确保在该集线器中调用任何Azure功能之前执行该代码.我能这样做吗?
在执行右键单击项目时获取以下消息 - >调试 - >启动新实例.
[1/7/2018 6:48:54 AM]发生ScriptHost错误[1/7/2018 6:48:54 AM]执行HTTP请求:{[1/7/2018 6:48:54 AM] Microsoft .Azure.WebJobs.Host:错误索引方法'TestFilesIngestJobs.RunScheduleAsync'.Microsoft.Azure.WebJobs.Host:无法绑定参数'log'以键入TraceWriter.确保绑定支持参数Type.如果您正在使用绑定扩展(例如ServiceBus,Timers等),请确保您已在启动代码中调用扩展的注册方法(例如config.UseServiceBus(),config.UseTimers()等).[1/7/2018 6:48:54 AM]"requestId":"dbb282d7-44e2-44b4-907e-877beac9da2d",[1/7/2018 6:48:54 AM]错误索引方法'MasterDataFilesIngestJobs.RunScheduleAsync' [1/7/2018 6:48:54 AM]"方法":"GET",
TL; DR:此示例不适用于VS2017。
我有一个蓝色的宇宙DB,想什么时候添加或更新有火一些逻辑。为此,CosmosDBTrigger应该很棒。
教程演示了如何在Azure Portal中创建触发器,它对我有用。然而,(现在15.5.4,最新的)做在Visual Studio一样的东西不。
我用的是默认的 Azure的功能模板,预定义的宇宙DB触发和近默认代码:
[FunctionName("TestTrigger")]
public static void Run(
[CosmosDBTrigger("Database", "Collection", ConnectionStringSetting = "myCosmosDB")]
IReadOnlyList<Document> input,
TraceWriter log)
{
log.Info("Documents modified " + input.Count);
log.Info("First document Id " + input[0].Id);
}
Run Code Online (Sandbox Code Playgroud)
应用程序运行没有错误,但是当我实际在数据库中进行操作时,什么也没有发生。因此,我无法调试事物并实际上实现一些必需的逻辑。
连接字符串在指定 local.settings.json和被认为是。如果我故意犯规,则触发运行时错误。
看起来连接字符串似乎连接到错误的数据库。但是,正是一个,copypasted,字符串我在通过Azure的门户网站所做的扳机。
我该怎么办?我还能检查什么?
我正在寻找一种方便的方法来为使用Octopus部署(或任何自动部署工具)部署的Azure功能部署应用程序设置。
根据Microsoft的指导,似乎azure函数不应使用传统上在部署时会转换的配置文件来设置特定于环境的应用程序配置。建议在使用azure工具进行测试时使用local.settings.json该功能在本地计算机上,但是在部署到azure功能应用程序时不使用任何文件。
Microsoft为Azure函数提供的替代方法是通过门户界面配置的一组环境变量。当您通过门户界面手动设置所有内容时,此设置可以正常工作,但是从像Octopus部署这样的自动发布管理工具进行部署时,这确实很麻烦。
到目前为止,我遇到了几种方法:
这些方法中的每一种都将替换所有应用程序设置,因为没有添加/删除的方法,而无需编写一些自定义代码来获取,比较和更新所有设置。这非常麻烦,因为有些应用程序设置不是我的应用程序专用的,而是功能主机所必需的。
我可以通过函数的转换和部署来添加自己的配置文件,这肯定比我遇到的任何其他方法都容易,但是感觉与打算如何生成函数的原理背道而驰。
有没有人有一种干净方便的方法来将应用程序设置部署到azure功能应用程序?
我使用Azure Http Trigger创建了一个开箱即用的Azure功能应用程序.这给了我下面的代码.我所更新的是我正在将HttpRequest主体转换为我的Helper类.
这是代码
public static class TriggerTest
{
[FunctionName("TriggerTest")]
public static IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequest req, TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
string name = req.Query["name"];
string requestBody = new StreamReader(req.Body).ReadToEnd();
Helper data = JsonConvert.DeserializeObject<Helper>(requestBody);
name = name ?? data?.value;
return name != null
? (ActionResult)new OkObjectResult($"Hello, {name}")
: new BadRequestObjectResult("Please pass a name on the query string or in the request body");
}
}
public class Helper
{
public string value …
Run Code Online (Sandbox Code Playgroud) 只是想知道是否有人设法使用JetBrains Rider附加和调试Azure Functions应用程序?
Azure功能似乎只有2个调试选项
--debug VS
--debug VsCode
Run Code Online (Sandbox Code Playgroud)
不确定Rider是否可以附加到这些,我在这方面找不到多少.所以如果其他人成功了,请告诉我如何/如果可以做到.
谢谢.
我从Azure门户创建了一个新的Function App(v2)。然后,借助Azure Functions核心工具v2.3在本地计算机上启动一个新应用,并将其发布到门户上的新应用中:
func init
func new
func azure functionapp publish my-app-name
Run Code Online (Sandbox Code Playgroud)
这使我的应用程序进入只读模式。但是我需要能够从门户更改应用程序,因为我需要创建代理(Core Tools无法创建代理,如果我错了,请更正我)。如何禁用只读模式?
以下是我的local.settings.json的内容:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "node",
"AzureWebJobsStorage": "{AzureWebJobsStorage}"
}
}
Run Code Online (Sandbox Code Playgroud)
仅供参考,我在macOS High Sierra上进行开发。
azure-functions ×10
azure ×8
c# ×4
autofac ×1
imagemagick ×1
json.net ×1
macos ×1
node.js ×1
nuget ×1
rider ×1