2017-10-19 29 views
2

Quelqu'un peut-il s'il vous plaît recommander la meilleure façon de le faire en utilisant Azure App Logic:Azure Logic App obtient un fichier csv de serveur SFTP et insère dans la table SQL Azure Database

Le scénario que j'ai est à:

i) Connectez-vous à SFTP

ii) Obtenir fichier csv à partir du serveur SFTP

iii) Parse le fichier csv et déplacer la charge à une table de base de données SQL Azure

Après avoir récupéré le fichier csv à partir du serveur SFTP à l'aide du connecteur SFTP, devrais-je transmettre le contenu du fichier à une fonction Azure?

Ensuite, dans la fonction Azure, analyser le contenu du fichier, puis utiliser une procédure stockée dans la fonction?

Ou de renvoyer le contenu du fichier transformé à l'application logique pour exécuter la procédure stockée afin d'insérer les enregistrements dans Azure SQL?

ou toute autre recommandation

Répondre

2

Cette vidéo et walkthrough est un peu daté mais toujours d'actualité et ce que cela presque exactement. Remplacez simplement "API App" par Function.

video here

Pour garder une fonction faire une seule chose que je serais probablement aller:

  1. SFTP déclencheur
  2. passe au format CSV pour fonctionner et ont le retourner JSON
  3. appel a stocké proc dans Logic Apps et transmettre la sortie Function JSon. Attendez-vous OPENJSON dans SQL jouait bien ici

Faites-nous savoir si vous avez d'autres? S

+0

merci pour votre solution, je suis juste mise en œuvre – Kojof

+0

Quand je reçois le fichier à partir du connecteur SFTP dans la première étape, j'ai créé un hook Web générique C# pour envoyer le contenu du fichier à une fonction Azure. Mais je reçois cette erreur - "La requête WebHook doit contenir un corps d'entité formaté en JSON.". Dois-je utiliser le hook Web générique C# pour l'envoyer à la fonction Azure? Ou comment puis-je convertir le contenu du fichier plat en JSON avant qu'il soit envoyé à la fonction Azure? – Kojof

+0

Le contenu de FTP n'a pas initialement un type de contenu, que ce soit binaire ou simple/texte. Vous devez donc le lancer en JSON en premier (soit en utilisant la fonction HttpTrigger au lieu de Generic Webhook et en acceptant le format plain/text, soit en conservant la même fonction et en la castant en JSON d'abord). Le plus simple est probablement de le lancer dans l'application logique. Si vous modifiez l'entrée de la fonction du "Contenu" au contenu enveloppé dans une expression @json(), cela fonctionnera. L'expression est probablement quelque chose comme '@json (triggerBody())' en mode Code, ou 'json (triggerBody())' dans l'éditeur d'expression dans le concepteur – jeffhollan