Azure Logic Apps의 워크플로에서 FTP 서버에 연결

적용 대상: Azure Logic Apps(사용량 + 표준)

이 문서에서는 FTP 커넥터를 사용하여 Azure Logic Apps의 워크플로에서 FTP(파일 전송 프로토콜) 서버에 액세스하는 방법을 보여 줍니다. 그런 다음, FTP 서버 또는 다른 시스템의 이벤트에 의해 트리거될 때 실행되는 자동화된 워크플로를 만들고 FTP 서버에서 작업을 실행하여 파일을 관리할 수 있습니다.

예를 들어 워크플로는 FTP 서버의 이벤트를 모니터링하고 응답하는 FTP 트리거로 시작할 수 있습니다. 트리거를 사용하면 워크플로의 후속 작업에 출력을 사용할 수 있습니다. 워크플로는 다음 특정 태스크를 사용하여 FTP 서버 계정을 통해 파일을 만들고, 보내고, 받고, 관리하는 FTP 작업을 실행할 수 있습니다.

  • 파일이 추가되거나 변경될 때 모니터링합니다.
  • 파일을 만들고, 복사하고, 삭제하고, 나열하고, 업데이트합니다.
  • 파일 메타데이터 및 콘텐츠를 가져옵니다.
  • 폴더를 관리합니다.

Azure Logic Apps를 처음 사용하는 경우 다음 시작 문서를 참조하세요.

커넥터 기술 참조

FTP 커넥터는 논리 앱 유형 및 호스트 환경에 따라 여러 버전이 있습니다.

논리 앱 유형(계획) 환경 커넥터 버전
소비 다중 테넌트 Azure Logic Apps 관리형 커넥터(표준 클래스)입니다. 자세한 내용은 다음 설명서를 검토하세요.

- FTP 관리형 커넥터 참조
- Azure Logic Apps의 관리형 커넥터
소비 ISE(통합 서비스 환경) 표준 클래스와 메시지 제한이 다른 관리형 커넥터(표준 클래스) 및 ISE 버전입니다. 자세한 내용은 다음 설명서를 검토하세요.

- FTP 관리형 커넥터 참조
- ISE 메시지 제한
- Azure Logic Apps의 관리형 커넥터
Standard 단일 테넌트 Azure Logic Apps 및 App Service Environment v3(Windows 플랜만 해당) 서비스 공급자 기반의 관리형 커넥터(Azure 호스팅) 및 기본 제공 커넥터입니다. 기본 제공 커넥터는 연결 문자열을 사용하여 Azure 가상 네트워크에 직접 액세스할 수 있습니다. 자세한 내용은 다음 설명서를 검토하세요.

- FTP 관리형 커넥터 참조
이 문서의 뒷부분에 있는 - FTP 기본 제공 커넥터 작업 섹션
- Azure Logic Apps의 관리형 커넥터
- Azure Logic Apps의 기본 제공 커넥터

제한 사항

  • 용량 및 처리량

    • 표준 워크플로용 기본 제공 커넥터:

      기본적으로 FTP 작업은 200MB 이하인 파일을 읽거나 쓸 수 있습니다. 현재 FTP 기본 제공 커넥터는 청크를 지원하지 않습니다.

    • 사용량 및 표준 워크플로를 위한 관리형 또는 Azure 호스팅 커넥터

      기본적으로 FTP 작업은 50MB 이하인 파일을 읽거나 쓸 수 있습니다. 50MB보다 큰 파일을 처리하기 위해 FTP 작업은 메시지 청크를 지원합니다. 파일 콘텐츠 가져오기 작업은 암시적으로 청크를 사용합니다.

  • FTP 관리형 또는 Azure 호스팅 커넥터에 대한 트리거는 “마지막으로 수정된” 타임스탬프가 유지될 때 누락되거나 불완전하거나 지연된 결과가 발생할 수 있습니다. 반면 표준 논리 앱 워크플로의 FTP 기본 제공 커넥터 트리거에는 이러한 제한이 없습니다. 자세한 내용은 FTP 커넥터의 제한 사항 섹션을 검토하세요.

  • FTP 관리형 또는 Azure 호스팅 커넥터는 논리 앱 리소스가 있는 Azure 지역의 연결 용량에 따라 FTP 서버에 대한 제한된 수의 연결을 만들 수 있습니다. 이 제한으로 소비 논리 앱 워크플로에서 문제가 발생할 경우 대신 표준 논리 앱 워크플로를 만들고 FTP 기본 제공 커넥터를 사용하는 것이 좋습니다.

필수 조건

  • Azure 계정 및 구독 Azure 구독이 없는 경우 체험 Azure 계정에 등록합니다.

  • SFTP 계정에 액세스하려는 논리 앱 워크플로입니다. FTP 트리거를 사용하여 워크플로를 시작하려면 빈 워크플로로 시작해야 합니다. FTP 동작을 사용하려면 되풀이 트리거와 같은 다른 트리거를 통해 워크플로를 시작합니다.

  • FTP 관리형 커넥터와 기본 제공 커넥터 모두에 적용되는 더 많은 요구 사항은 FTP 관리형 커넥터 참조 - 요구 사항을 검토하세요.

알려진 문제

기본적으로 배열을 반환하는 트리거에는 이미 사용하도록 설정된 분할 켜기 설정이 있습니다. 이 설정을 사용하도록 설정하면 트리거는 내부적으로 각 배열 항목을 처리하는 별도의 워크플로 인스턴스를 만들어 배열을 자동으로 분리합니다. 모든 워크플로 인스턴스는 병렬로 실행되므로 배열 항목이 동시에 처리됩니다.

그러나 분할 켜기 설정을 사용하도록 설정하면 관리형 커넥터 트리거는 모든 배열 항목에 대한 출력을 목록으로 반환합니다. 이러한 출력을 참조하는 후속 작업은 먼저 이러한 출력을 목록으로 처리해야 합니다. 각 배열 항목을 개별적으로 처리하기 위해 다른 작업을 추가할 수 있습니다. 예를 들어 이러한 배열 항목을 반복하려면 For each 루프를 사용할 수 있습니다. 메타데이터 또는 속성만 반환하는 트리거의 경우 먼저 배열 항목의 메타데이터를 가져오는 작업을 사용한 다음, 작업을 사용하여 항목 콘텐츠를 가져옵니다.

분할 켜기 설정을 사용할 때 한 번에 하나의 배열 항목에 대한 출력을 반환하는 기본 제공 커넥터 트리거가 아닌 관리형 커넥터 트리거에 대해서만 이 방법을 적용해야 합니다.

예를 들어 새 파일 또는 업데이트된 파일에 대한 메타데이터 또는 속성을 배열로 반환하는 파일이 추가되거나 수정될 때(속성만)라는 관리형 커넥터 트리거가 있다고 가정해 보겠습니다. 각 파일에 대해 메타데이터를 별도로 가져오기 위해 배열을 반복하는 For each 루프를 사용할 수 있습니다. 이 루프에서는 다음 관리형 커넥터 작업을 지정된 순서로 사용합니다.

  1. 각 파일의 메타데이터를 가져오는 파일 메타데이터 가져오기

  2. 각 파일의 콘텐츠를 가져오는 파일 콘텐츠 가져오기 작업

FTP 트리거 추가

사용량 논리 앱 워크플로는 FTP 관리형 커넥터만 사용할 수 있습니다. 그러나 표준 논리 앱 워크플로는 FTP 관리형 커넥터 및 FTP 기본 제공 커넥터를 사용할 수 있습니다. 표준 논리 앱 워크플로에서 관리형 커넥터는 Azure 커넥터로도 레이블이 지정됩니다.

FTP 관리형 커넥터와 기본 제공 커넥터에는 각각 하나의 트리거만 사용할 수 있습니다.

  • 관리형 커넥터 트리거: FTP 서버의 폴더에서 하나 이상의 파일이 추가되거나 변경될 때 파일이 추가되거나 수정될 때(속성만)라는 FTP 트리거가 소비 또는 표준 논리 앱 워크플로를 실행합니다. 이 트리거는 파일 콘텐츠가 아닌 파일 속성 또는 메타데이터만 가져옵니다. 그러나 파일 콘텐츠를 가져오기 위해 워크플로는 다른 FTP 작업과 함께 이 트리거를 따를 수 있습니다.

    이 트리거에 대한 자세한 내용은 파일이 추가되거나 수정될 때(속성만)를 참조하세요.

  • 기본 제공 커넥터 트리거: FTP 서버의 폴더에서 하나 이상의 파일이 추가되거나 변경될 때 파일이 추가되거나 업데이트되는 경우라는 FTP 트리거가 소비 또는 표준 논리 앱 워크플로를 실행합니다. 이 트리거는 파일 콘텐츠가 아닌 파일 속성 또는 메타데이터만 가져옵니다. 그러나 콘텐츠를 가져오기 위해 워크플로는 다른 FTP 작업과 함께 이 트리거를 따를 수 있습니다. 이 트리거에 대한 자세한 내용은 파일이 추가되거나 업데이트되는 경우를 참조하세요.

다음 단계에서는 Azure Portal을 사용합니다. 그러나 적절한 Azure Logic Apps 확장이 있으면 다음 도구를 사용하여 논리 앱 워크플로를 만들고 편집할 수도 있습니다.

  1. Azure Portal에서 빈 논리 앱 워크플로를 디자이너에서 엽니다.

  2. 디자이너의 검색 상자 아래에서 표준을 선택합니다. 검색 상자에 ftp를 입력합니다.

  3. 트리거 목록에서 파일이 추가되거나 수정된 경우(속성만)라는 트리거를 선택합니다.

    Screenshot shows Azure portal, Consumption workflow designer, and FTP trigger selected.

  4. 연결 정보를 제공합니다. 완료되면 만들기를 선택합니다.

    참고 항목

    기본적으로 이 커넥터는 파일을 텍스트 형식으로 전송합니다. 예를 들어 파일을 이진 형식으로 전송하려면 인코딩을 사용하는 경우에 이진 전송 옵션을 선택합니다.

    Screenshot shows Consumption workflow designer and FTP connection profile.

  5. 트리거 정보 상자가 나타나면 새 파일 또는 편집된 파일을 모니터링할 폴더를 찾습니다.

    1. 폴더 상자에서 폴더 아이콘을 선택하여 폴더 디렉터리를 봅니다.

    2. 오른쪽 각도 화살표(>)를 선택합니다. 복사할 폴더를 찾은 다음, 해당 폴더를 선택합니다.

    Screenshot shows Consumption workflow designer, FTP trigger, and

    선택한 폴더가 폴더 상자에 나타납니다.

    Screenshot shows Consumption workflow designer, FTP trigger, and

  6. 완료되면 워크플로를 저장합니다.

워크플로를 저장하면 이 단계는 Azure에 있는 배포된 논리 앱에 업데이트 내용을 자동으로 게시합니다. 트리거만 있으면 워크플로는 지정된 일정에 따라 FTP 서버를 확인합니다. 트리거에 응답하고 트리거 출력을 사용하여 수행하는 작업을 추가해야 합니다.

FTP 작업 추가

사용량 논리 앱 워크플로는 FTP 관리형 커넥터만 사용할 수 있습니다. 그러나 표준 논리 앱 워크플로는 FTP 관리형 커넥터 및 FTP 기본 제공 커넥터를 사용할 수 있습니다. 각 버전에는 여러 작업이 있습니다. 예를 들어 관리형 커넥터 버전과 기본 제공 커넥터 버전에는 각각 파일 메타데이터를 가져오고 파일 콘텐츠를 가져오는 고유한 작업이 있습니다.

  • 관리형 커넥터 작업: 이러한 작업은 사용량 또는 표준 논리 앱 워크플로에서 실행됩니다.

  • 기본 제공 커넥터 작업: 이러한 작업은 표준 논리 앱 워크플로에서만 실행됩니다.

다음 단계에서는 Azure Portal을 사용합니다. 그러나 적절한 Azure Logic Apps 확장이 있으면 다음 도구를 사용하여 논리 앱 워크플로를 만들고 편집할 수도 있습니다.

FTP 작업을 사용하려면 먼저 워크플로가 이미 트리거로 시작해야 합니다. 이 트리거는 원하는 종류일 수 있습니다. 예를 들어 일반 되풀이 기본 제공 트리거를 사용하여 특정 일정에 따라 워크플로를 시작할 수 있습니다.

  1. Azure Portal의 디자이너에서 논리 앱 워크플로를 엽니다.

  2. 사용하려는 FTP 작업을 찾아 선택합니다.

    이 예제에서는 파일 메타데이터 가져오기라는 작업을 계속하여 단일 배열 항목에 대한 메타데이터를 가져올 수 있습니다.

    1. 디자이너의 트리거 또는 다른 작업에서 새 단계를 선택합니다.

    2. 작업 선택 검색 상자에서 표준을 선택합니다.

    3. 검색 상자에 ftp 파일 메타데이터 가져오기를 입력합니다.

    4. 작업 목록에서 파일 메타데이터 가져오기라는 작업을 선택합니다.

    Screenshot shows the Azure portal, Consumption workflow designer, search box with

  3. 필요한 경우 연결 정보를 제공합니다. 완료되면 만들기를 선택합니다.

    참고 항목

    기본적으로 이 커넥터는 파일을 텍스트 형식으로 전송합니다. 예를 들어 파일을 이진 형식으로 전송하려면 인코딩을 사용하는 경우에 이진 전송 옵션을 선택합니다.

    Screenshot shows Consumption workflow designer and FTP connection profile for an action.

  4. 파일 메타데이터 가져오기 작업 정보 상자가 표시된 후 파일 상자 내부를 클릭하여 동적 콘텐츠 목록이 열리도록 합니다.

    이제 이전 트리거 출력을 선택할 수 있습니다.

  5. 동적 콘텐츠 목록의 파일을 추가하거나 수정할 때에서 파일 ID 목록을 선택합니다.

    Screenshot shows Consumption workflow designer,

    이제 파일 속성은 파일 ID 목록 트리거 출력을 참조합니다.

  6. 디자이너의 파일 메타데이터 가져오기 작업에서 새 단계를 선택합니다.

  7. 작업 선택 검색 상자에서 표준을 선택합니다.

  8. 검색 상자에 ftp 파일 콘텐츠 가져오기를 입력합니다.

  9. 작업 목록에서 파일 콘텐츠 가져오기라는 작업을 선택합니다.

    Screenshot shows the Azure portal, Consumption workflow designer, search box with

  10. 파일 콘텐츠 가져오기 작업 정보 상자가 표시된 후 파일 상자 내부를 클릭하여 동적 콘텐츠 목록이 열리도록 합니다.

    이제 이전 트리거 및 기타 작업에서 출력을 선택할 수 있습니다.

  11. 동적 콘텐츠 목록의 파일 메타데이터 가져오기에서 추가 또는 업데이트된 파일을 참조하는 ID를 선택합니다.

    Screenshot shows Consumption workflow designer,

    이제 파일 속성은 ID 작업 출력을 참조합니다.

    Screenshot shows Consumption workflow designer,

  12. 완료되면 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

워크플로 테스트

워크플로에서 원하는 콘텐츠가 반환되는지 확인하려면 추가 또는 업데이트된 파일의 콘텐츠를 전송하는 다른 작업을 추가합니다. 이 예제에서는 메일 보내기라는 Office 365 Outlook 작업을 사용합니다.

  1. 파일 콘텐츠 가져오기 작업에서 메일 보내기라는 Office 365 Outlook 작업을 추가합니다. 대신 Outlook.com 계정이 있는 경우 Outlook.com 메일 보내기 작업을 추가하고 그에 따라 다음 단계를 조정합니다.

    1. 디자이너의 파일 콘텐츠 가져오기 작업에서 새 단계를 선택합니다.

    2. 작업 선택 검색 상자에서 표준을 선택합니다.

    3. 검색 상자에 Office 365 Outlook 메일 보내기를 입력합니다. 작업 목록에서 메일 보내기라는 Office 365 Outlook 작업을 선택합니다.

    Screenshot shows Consumption workflow designer and

  2. 필요한 경우 메일 계정에 로그인합니다.

  3. 작업 정보 상자에 필요한 값을 제공하고 테스트하려는 다른 매개 변수 또는 속성을 포함합니다.

    예를 들어 파일 콘텐츠 가져오기 작업의 파일 콘텐츠 출력을 포함할 수 있습니다. 이 출력을 찾으려면 다음 단계를 수행합니다.

    1. 파일 콘텐츠 가져오기 작업에서 본문 상자 내부를 클릭하여 동적 콘텐츠 목록을 엽니다.

    2. 동적 콘텐츠 목록의 파일 콘텐츠 가져오기 옆에 있는 자세히 보기를 선택합니다.

      Screenshot shows Consumption workflow designer,

    3. 동적 콘텐츠 목록의 파일 콘텐츠 가져오기에서 파일 콘텐츠를 선택합니다.

      이제 본문 속성은 파일 콘텐츠 작업 출력을 참조합니다.

      Screenshot shows Consumption workflow designer,

  4. 논리 앱 워크플로 저장

  5. 워크플로를 실행하고 트리거하려면 디자이너 도구 모음에서 트리거 실행>실행을 선택합니다. 워크플로가 모니터링하는 FTP 폴더에 파일을 추가합니다.

FTP 기본 제공 커넥터 작업

FTP 기본 제공 커넥터는 표준 논리 앱 워크플로에만 사용할 수 있으며 다음 작업을 제공합니다.

트리거 설명
파일이 추가되거나 업데이트되는 경우 FTP 서버의 지정된 폴더에 파일이 추가되거나 업데이트되면 논리 앱 워크플로를 시작합니다.

참고: 이 트리거는 파일 콘텐츠가 아닌 파일 메타데이터 또는 속성만 가져옵니다. 그러나 콘텐츠를 가져오기 위해 워크플로는 파일 콘텐츠 가져오기 작업과 함께 이 트리거를 따를 수 있습니다.

작업 설명
파일 만들기 지정된 파일 경로 및 파일 콘텐츠를 사용하여 파일을 만듭니다.
파일 삭제 지정된 파일 경로를 사용하여 파일을 삭제합니다.
파일 콘텐츠 가져오기 지정된 파일 경로를 사용하여 파일의 콘텐츠를 가져옵니다.
파일 메타데이터 가져오기 지정된 파일 경로를 사용하여 파일의 메타데이터 또는 속성을 가져옵니다.
폴더의 파일 및 하위 폴더 나열 지정된 폴더의 파일 및 하위 폴더 목록을 가져옵니다.
파일 업데이트 지정된 파일 경로 및 파일 콘텐츠를 사용하여 파일을 업데이트합니다.

파일이 추가되거나 업데이트되는 경우

작업 ID: whenFtpFilesAreAddedOrModified

이 트리거는 FTP 서버의 지정된 폴더에 파일이 추가되거나 업데이트되면 논리 앱 워크플로 실행을 시작합니다. 트리거는 파일 콘텐츠가 아닌 파일 메타데이터 또는 속성만 가져옵니다. 그러나 콘텐츠를 가져오기 위해 워크플로는 파일 콘텐츠 가져오기 작업과 함께 이 트리거를 따를 수 있습니다.

매개 변수

속성 필요함 Type 설명
폴더 경로 folderPath True string 루트 디렉터리를 기준으로 하는 폴더 경로입니다.
반환할 파일 수 maxFileCount False integer 단일 트리거 실행에서 반환할 최대 파일 수입니다. 유효한 값의 범위는 1~100입니다.

참고: 기본적으로 분할 켜기 설정을 사용하도록 설정하고 이 트리거가 각 파일을 개별적으로 병렬로 처리하도록 강제합니다.
이전 파일을 무시하도록 타임스탬프 차단 oldFileCutOffTimestamp False dateTime 이전 파일을 무시하는 데 사용할 컷오프 시간입니다. YYYY-MM-DDTHH:MM:SS 타임스탬프 형식을 사용합니다. 이 기능을 사용하지 않도록 설정하려면 이 속성을 비워 둡니다.

반환

트리거의 분할 켜기 설정을 사용하도록 설정하면 트리거는 한 번에 하나의 파일에 대한 메타데이터 또는 속성을 반환합니다. 그렇지 않으면, 트리거는 각 파일의 메타데이터를 포함하는 배열을 반환합니다.

이름 Type
파일 목록 BlobMetadata

파일 만들기

작업 ID: createFile

이 작업은 지정된 파일 경로 및 파일 콘텐츠를 사용하여 파일을 만듭니다. 파일이 이미 있는 경우 이 작업은 해당 파일을 덮어씁니다.

Important

동일한 워크플로 내에서 만든 직후 FTP 서버에서 파일을 삭제하거나 이름을 바꾸는 경우 작업에서 의도적으로 HTTP 404 오류를 반환할 수 있습니다. 이 문제를 방지하려면 새로 만든 파일을 삭제하거나 이름을 바꾸기 전에 1분 지연을 포함합니다. 지연 작업을 사용하여 이 지연을 워크플로에 추가할 수 있습니다.

매개 변수

속성 필요함 Type 설명
파일 경로 filePath True string 루트 디렉터리를 기준으로 파일 이름 확장명(있는 경우)을 포함한 파일 경로입니다.
파일 콘텐츠 fileContent True string 파일 콘텐츠입니다.

반환

이 작업은 Body라는 BlobMetadata 개체를 반환합니다.

이름 Type
파일 메타데이터 파일 이름 string
파일 메타데이터 파일 경로 string
파일 메타데이터 파일 크기 string
파일 메타데이터 BlobMetadata

파일 삭제

작업 ID: deleteFtpFile

이 작업은 지정된 파일 경로를 사용하여 파일을 삭제합니다.

매개 변수

속성 필요함 Type 설명
파일 경로 filePath True string 루트 디렉터리를 기준으로 파일 이름 확장명(있는 경우)을 포함한 파일 경로입니다.

반환

없음

파일 콘텐츠 가져오기

작업 ID: getFtpFileContent

이 작업은 지정된 파일 경로를 사용하여 파일의 콘텐츠를 가져옵니다.

매개 변수

속성 필요함 Type 설명
파일 경로 path True string 루트 디렉터리를 기준으로 파일 이름 확장명(있는 경우)을 포함한 파일 경로입니다.

반환

이 작업은 파일 콘텐츠라는 이진 값으로 파일의 콘텐츠를 반환합니다.

이름 Type
파일 콘텐츠 이진

파일 메타데이터 가져오기

작업 ID: getFileMetadata

이 작업은 지정된 파일 경로를 사용하여 파일의 메타데이터 또는 속성을 가져옵니다.

매개 변수

속성 필요함 Type 설명
파일 경로 path True string 루트 디렉터리를 기준으로 파일 이름 확장명(있는 경우)을 포함한 파일 경로입니다.

반환

이 작업에서는 다음과 같은 결과를 반환합니다.

이름 Type
파일 이름 string
파일 경로 string
파일 크기 string
마지막 업데이트 시간 string
파일 메타데이터 BlobMetadata

폴더의 파일 및 하위 폴더 나열

작업 ID: listFilesInFolder

이 작업은 지정된 폴더의 파일 및 하위 폴더 목록을 가져옵니다.

매개 변수

속성 필요함 Type 설명
폴더 경로 folderPath True string 루트 디렉터리를 기준으로 하는 폴더 경로입니다.
파일 콘텐츠 fileContent True string 파일의 콘텐츠

반환

이 작업은 Response라는 배열을 반환하고 BlobMetadata 개체를 포함합니다.

이름 Type
Response BlobMetadata 개체가 있는 배열

파일 업데이트

작업 ID: updateFile

이 작업은 지정된 파일 경로 및 파일 콘텐츠를 사용하여 파일을 업데이트합니다.

Important

동일한 워크플로 내에서 만든 직후 FTP 서버에서 파일을 삭제하거나 이름을 바꾸는 경우 작업에서 의도적으로 HTTP 404 오류를 반환할 수 있습니다. 이 문제를 방지하려면 새로 만든 파일을 삭제하거나 이름을 바꾸기 전에 1분 지연을 포함합니다. 지연 작업을 사용하여 이 지연을 워크플로에 추가할 수 있습니다.

매개 변수

속성 필요함 Type 설명
파일 경로 filePath True string 루트 디렉터리를 기준으로 파일 이름 확장명(있는 경우)을 포함한 파일 경로입니다.
파일 콘텐츠 fileContent True string 파일의 콘텐츠

반환

이 작업은 Body라는 BlobMetadata 개체를 반환합니다.

이름 Type
본문 BlobMetadata

다음 단계