[英]Azure Logic Apps/Data Factory, getting files using FTPS
我正在尝试通过 ftps 从 ftp 服务器获取文件。 这篇文章更新了更多的测试结果和来自回复和我自己的研究的知识。 ftp 服务器在端口 990 上支持 ftps 隐式 SSL/TLS 模式,在端口 21 上支持显式模式。我尝试从逻辑应用程序和数据工厂获取文件,但均未成功。
测试隐式模式。 端口 990,启用 SSL,二进制传输 true/false 都尝试过(逻辑应用程序),禁用服务器证书验证,产生此错误:
数据工厂错误:
“无法连接到 FTP 服务器。ADF 不支持 SSL/TLS 隐式加密模式。请确保您正在通过显式加密模式进行连接。基础连接已关闭:服务器违反了协议。”
逻辑应用程序错误:
{
"error": {
"code": 502,
"source": "logic-apis-northeurope.azure-apim.net",
"clientRequestId": "c935a165-c725-4d26-824d-d1df3c82a65c",
"message": "BadGateway",
"innerError": {
"status": 502,
"message": "An FTP protocol violation was detected. This could be caused by an implicit TLS/SSL configuration of the FTP server that is not supported. Please try explicit TLS/SSL.\r\nclientRequestId: c935a165-c725-4d26-824d-d1df3c82a65c",
"error": {
"message": "An FTP protocol violation was detected. This could be caused by an implicit TLS/SSL configuration of the FTP server that is not supported. Please try explicit TLS/SSL."
},
"source": "ftp-ne.azconn-ne.p.azurewebsites.net"
}
}
}
正如下面的响应所示,数据工厂和 Logig 应用程序都支持隐式模式。
测试显式模式。 端口 21,启用 SSL,二进制传输 true/false 都尝试过(逻辑应用程序),禁用服务器证书验证,产生此错误:
数据工厂错误:
“无法连接到 FTP 服务器。请确保提供的服务器信息正确,然后重试。远程服务器返回错误:150 正在为“/”的目录列表打开数据通道。身份验证失败,因为远程方已关闭传输流”
逻辑应用程序错误:
{
"error": {
"code": 502,
"source": "logic-apis-northeurope.azure-apim.net",
"clientRequestId": "61a1cc3e-74f3-40ac-a9f3-79a1409d81cc",
"message": "The response is not in a JSON format.",
"innerError": "The specified CGI application encountered an error and the server terminated the process."
}
}
使用 FileZilla 客户端进行测试。
隐式端口 (990) 和显式模式(端口 21)都可以正常工作。 我原来的问题在哪里:有没有办法让数据工厂或逻辑应用程序中的 FTP 连接与 SSL/TLS 隐式模式一起工作? 正如下面的回复所述。 逻辑应用程序和数据工厂不支持隐式模式。
解决方法是创建一个 Function 应用程序,其中 c# 代码通过隐式模式获取文件。 并从逻辑应用程序和/或数据工厂调用 Function 应用程序。
但为什么显式模式不起作用? 有小费吗?
不幸的是,Azure 数据工厂和 Azure 逻辑应用都不支持隐式 TLS/SSL 配置。 这是一个已知的限制。
Azure 数据工厂限制:ADF FTP 连接器支持不加密或显式 SSL/TLS 加密访问 FTP 服务器; 它不支持隐式 SSL/TLS 加密。 (参考: 使用 Azure 数据工厂从 FTP 服务器复制数据)
Azure 逻辑应用程序限制:Azure 逻辑应用程序 FTP 连接器仅支持显式 FTP over SSL (FTPS),与隐式 FTPS 不兼容(参考: Azure 逻辑应用程序 FTP 连接器限制)
隐式模式 FTPS 已弃用,因此在 Azure 服务中缺少支持。
显式模式下的错误表明您实际连接并验证了服务器。 它试图打开数据通道以发送目录列表,但打开的请求已“关闭”。
此错误表明您正在使用主动模式,而您可能应该使用被动模式。 在主动模式下,FTP 服务器尝试连接回客户端以创建数据通道。 防火墙很有可能会阻止这种情况。 使用被动模式需要客户端连接到服务器以获取数据通道。 防火墙允许连接通过的机会更大。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.