2
votes

ftp vers un objet blob de stockage Azure (traitement déclenché)

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 sortie csv 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 >


9 commentaires

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?


5 Réponses :


0
votes

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.


1 commentaires

Merci pour votre réponse mais cela ne répond pas à ma question.



0
votes

Vous pouvez y parvenir par application logique et application fonctionnelle comme suit:

  1. créer un déclencheur ftp (lorsque le fichier arrive)
  2. Si c'est simple Encode Decode, vous pouvez utiliser la forme correspondante ou bien vous pouvez créer une fonction Azure sous le plan de consommation (pour la tarification en fonction de l'utilisation) qui dispose d'une fonctionnalité de chiffrement et de déchiffrement où les données seront transmises à partir de la forme de déclencheur FTP. Cela nécessite un codage que vous pouvez développer par VS Code ou Visual Studio.
  3. Ensuite, vous pouvez effectuer une analyse à partir de la sortie de la fonction Azure à l'aide de l'analyse ou vous pouvez utiliser la forme de transformation pour vos formats de données (XML, JSON, etc.) et vous pouvez utiliser à nouveau décrypter à l'aide de la fonction Azure que vous avez écrite ci-dessus, juste différentes méthodes dans le même fonction.
  4. Enfin, utilisez la forme Blob pour pousser la sortie du décryptage vers le conteneur de stockage d'objets blob.

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 !!


4 commentaires

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.



0
votes

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.


0 commentaires

0
votes

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.


2 commentaires

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



0
votes

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:

 Logic App vs MS Flow

Dans mon application logique

  1. Créer un déclencheur ftp: lorsqu'un fichiers est ajouté sur ftp -> Créer un blob sur le stockage Azure & Supprimer le fichier < / code> à partir de ftp
  2. 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.

  3. Pour des raisons de granularité et pour que la fonction azure ne fasse qu'un seul travail élémentaire, i devez créer une deuxième fonction Azure pour effectuer l'analyse du fichier et création de 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

 Fonctions Azure vs tâches Web

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)


0 commentaires