我正在尝试使用外部文件协议和FTP api连接发送文件。配置和代码是直接的,应用程序运行成功,但没有数据发送到FTP,我看不到任何跟踪,该功能甚至试图使用ftp发送数据....有什么问题?而且更重要;我在哪里可以监控外部文件api的进度?
我的代码如下(注意:我已经尝试过Stream和string作为输入和输出)
run.csx
public static void Run(Stream myBlobInput, string name, out Stream
myFTPOutput, TraceWriter log)
{
myFTPOutput = myBlobInput;
//log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Content:{myBlob}");
log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size:{myBlobInput.Length} \n Content:{myBlobInput.ToString()}");
}
function.json
"bindings": [
{
"name": "myBlobInput",
"type": "blobTrigger",
"direction": "in",
"path": "input/{name}",
"connection": "blob_STORAGE"
},
{
"name": "myFTPOutput",
"type": "apiHubFile",
"direction": "out",
"path": "/output/{name}",
"connection": "ftp_FTP"
}
],
"disabled": false
}
答案 0 :(得分:0)
我可以让它运作: 如果我们想在输出FTP服务器和相同的文件名中有相同的文件内容,那么这里是代码和函数.json
public static void Run(string myBlob, string name, TraceWriter log , out string outputFile )
{
log.Info($"2..C# Blob trigger function Processed blob\n Name:{name} \n Size:{myBlob.Length} \n Content:{myBlob.ToString()}");
outputFile=myBlob;
}
这里还有function.json
{
"bindings": [
{
"name": "myBlob",
"type": "blobTrigger",
"direction": "in",
"path": "myblobcontainer/{name}",
"connection": "AzureWebJobsDashboard"
},
{
"type": "apiHubFile",
"name": "outputFile",
"path": "LogFiles/{name}",
"connection": "ftp_FTP",
"direction": "out"
}
],
"disabled": false
}
输入绑定应该具有有效的容器名称,如blob帐户所示 - : blob container structure as path
同样在FTP的输出绑定中,路径应该是Root的FTP中的任何文件夹,您在FTP登录UI /控制台中看到的文件名,然后是文件名,在这种情况下{name},它允许我们保持相同的输出文件名作为输入blob名称。
答案 1 :(得分:0)
好的,所以我将ftp Connection更改为其他服务器,它就像魅力一样。这意味着Azure函数中有一些防火墙拒绝触发。可悲的是,没有错误消息触发我可以发现。感谢所有支持