Je souhaite transférer des fichiers chiffrés d'un serveur ftp
vers un conteneur de stockage blob azure
Voici le workfow en question:
Fichiers cryptés
CSV
sur le serveur Ftp ---------->Trigger
(exemple: Lors de l'ajout de fichiers ) - ---------> appel à certains programmes locaux ou API qui traitent le décryptage puis créez le fichier de sortiecsv
dans le conteneur d'objets blob
les fichiers sont structurés comme suit:
Output csv file: column1;column2;column3; value1;value2;value3;
et
Input CSV file: column1;column2;column3; encryptedvalue1;encryptedvalue2;encryptedvalue3;
Il n'y a pas de contenu de fichier transformation ici mais il y a encore une chose dont je ne sais pas si c'est faisable ou non:
Je veux ajouter le nouveau blob sous un dossier spécifique en fonction de la valeur de column1 par exemple. (par exemple, gérer la hiérarchie du conteneur d'objets blob à partir du code)
J'ai essayé de créer une application logique
et j'ai créé le déclencheur ftp
comme première étape, mais je n'ai pas pu ne trouve pas ce qui convient le mieux comme deuxième étape dans mon cas.
J'ai vu de nombreuses suggestions telles que l'utilisation d'emplois Web, d'autres pour les fonctions azure et le service d'application azure ...
Et parce que je suis un peu nouveau dans ces structures d'azur, je suis venu ici pour demander sur la meilleure façon de le faire et pourquoi?
Vaut-il mieux utiliser Web Job
? ou fonction azure
? ou simplement faire une HttpRequest
? et pourquoi?
Suis-je déjà sur la bonne voie? est-ce que l ' application logique
est le meilleur moyen de le faire?
Remarque: EDIT^
la taille des fichiers est d'environ Fichiers CSV
en Mo (pas de très grande taille) avec ";" comme séparateur
l'entrée est un fichier csv
sur le serveur ftp et la sortie est un fichier csv déchiffré sous un "dossier" spécifique sur le stockage blob azure
Toute aide sera appréciée
p >
5 Réponses :
Il y a quelques facteurs clés à prendre en compte lors du choix entre Azure Webjobs et Azure Function.
Les fonctions Azure ont deux types de schémas de facturation: Plan de consommation et plan de service d'application.
Dans la consommation, vous ne payez que pendant une période pendant laquelle votre fonction est en cours d'exécution, cependant, dans le cadre d'un plan de consommation, votre fonction ne peut pas fonctionner plus de 10 minutes. Ce qui signifie que si vos travaux durent plus de 10 minutes, le plan de consommation n'est pas pour vous.
Le plan App Service est le même que celui utilisé par Azure Web Jobs, vous n'avez pas de limite de temps ici (selon la documentation).
En général, les fonctions Azure sont utiles lorsque vous avez besoin d'une logique flexible avec différents déclencheurs, etc.
Merci pour votre réponse mais cela ne répond pas à ma question.
Vous pouvez y parvenir par application logique et application fonctionnelle comme suit:
Les applications logiques vous offrent une large utilisation des connecteurs, ce qui facilite la connexion à différents artefacts et une approche de flux de travail, vous pouvez également utiliser la transformation avec XSLT, liquide en utilisant un compte d'intégration si nécessaire.
J'espère que cela aidera Cheers !!
Merci pour la réponse, mais pourquoi est-il préférable de travailler avec la fonction azure et non avec le travail Web ici? pouvez-vous expliquer s'il vous plaît?
Les fonctions Azure sont construites sur la base de webjobs, où elles ont plus de capacités telles que beaucoup de langues prises en charge, entièrement géré, mise à l'échelle dynamique, portail facile à utiliser avec UX pour gérer les connexions, plus de connecteurs, etc., c'est rentable avec la consommation plan alors que dans les emplois Web, vous devez payer pour le plan d'application indépendamment de l'utilisation. En détail la différence est ici: docs.microsoft.com/en-us/azure/azure-functions/...
@pouvez-vous fournir un échantillon de code ou des liens utiles pour les étapes 3 et 4 que vous avez décrites ci-dessus s'il vous plaît?
@HaithemKAROUI: 1) voici un exemple de code en C # pour le déchiffrement de clé pgp que vous pouvez améliorer en une fonction azur. 2) Voici un exemple de lien pour la transformation xml: integration.team/ 2017/07/14 / working-xml-logic-apps avec des applications logiques.
Ne faites pas trop de génie.
Utilisez une application logique pour interroger le serveur FTP et détecter de nouveaux fichiers, placez-les dans le stockage blob.
Créez une fonction Azure déclenchée par blob (plan de consommation, runtime v2) et effectuez votre transformation de données dans le code (dans la v2, vous avez le choix entre TypeScript, JavaScript, C # et Python). Écrivez les résultats dans le stockage d'objets blob avec une liaison de sortie d'objets blob.
FACULTATIF Avoir un deuxième déclencheur Logic App sur les blobs résultants et les notifications par e-mail / texte.
Je recommanderais d'utiliser la (Fonction Azure) ou (Web Job)
Voici deux modèles: - Utilisation de conteneurs Docker pour effectuer une transformation (copie dans ce cas): https://azure.microsoft.com/en-us/blog/microsoft-azure-block-blob-storage-backup/ - Utilisation d'une fonction pour effectuer une opération après un événement créé par un objet blob: https://cmatskas.com/copy-azure-blob-data-between-storage-accounts-using-functions/
Veuillez me faire savoir si vous avez d'autres questions.
Merci pour votre réponse, mais l'une des questions ici était-il préférable d'utiliser Web Job? ou fonction azur? et pourquoi?
si vous vouliez une fonction légère de courte durée (Azure Function) ou quelque chose qui pourrait fonctionner plus longtemps avec plus de traitement (Web Job) en fonction de cela, vous pouvez
Après quelques recherches et sur la base de la réponse de evilSnobu
et des commentaires de Johns-305
, j'ai compris que la meilleure façon de procéder est de suivre. .
remarque: j'ai une application Azure Api
développée pour effectuer le décryptage de contenu
Sur la base de cette grille, le meilleur choix ici est évidemment les applications logiques pour concevoir mon flux de travail:
Dans mon application logique
fichiers est ajouté
sur ftp -> Créer un blob
sur le stockage Azure &
Supprimer le fichier < / code> à partir de ftp
Créer une fonction Azure
(Fonction Azure vs tâches Web dans la grille ci-dessous)
basé sur le déclencheur de création d'objets blob
, lorsqu'un objet blob est créé, une application api de déchiffrement d'appel.
par dossiers de version
en fonction du champ de version
contenu du fichier Et sur la base de la grille suivante, nous pouvons dire pourquoi les fonctions azure conviennent mieux que les emplois Web dans mon cas
Enfin, résumez ceci, je peux dire que dans mon cas, j'ai besoin d'avoir une vue développeur de mes solutions, c'est pourquoi j'avais principalement besoin de l'application logique, puis je dois faire deux tâches élémentaires qui sont déclencheurs basé non continu donc mieux adapté aux Azure Functions
et beaucoup moins cher (car les fichiers ne sont pas volumineux et le traitement sera très rapide)
Quel est le format des fichiers et quelle est leur taille?
J'ai oublié de mentionner que de petits fichiers (quelques Mo) ne modifient pas mon message pour ajouter cette information
Et quel format sont-ils?
@ Johns-305 fichiers csv avec; comme séparateur
Alors, la source et la destination sont-elles CSV? Quels sont les formats des deux?
@ Johns-305 oui, l'entrée est un fichier csv sur ftp et la sortie est un fichier déchiffré sur le stockage blob azure
OK, mais vous dites que vous voulez faire une transformation. Quel est le format de sortie? Aussi CSV? JSON? Xml? Précisément, comment les fichiers sont-ils chiffrés? Entrée et sortie.
@ Johns-305 le format restera csv. je retravaillerai la description de ma question de la manière dont elle peut être plus claire
@ Johns-305 j'espère que c'est plus clair maintenant?