IRONSOFTWAREHOME

Comment lire et écrire des codes QR sur AWS Lambda

Curtis Chau
Curtis Chau
Updated: 22 avril 2026

Cet article pratique propose un guide détaillé pour configurer une fonction AWS Lambda avec IronQR. Dans ce tutoriel, vous découvrirez comment configurer IronQR pour lire et écrire des codes QR directement dans un compartiment S3.

Installation

Cet article utilisera un compartiment S3, donc le package AWSSDK.S3 est requis.

Start using IronQR in your project today with a free trial.

Première étape :
arrow pointer

Créer un projet AWS Lambda

Avec Visual Studio, créer un AWS Lambda containerisé est un processus simple :

  • Installer le AWS Toolkit pour Visual Studio
  • Sélectionnez un 'Projet AWS Lambda (.NET Core - C#)'
  • Sélectionnez un modèle '.NET 8 (Image de Conteneur)', puis sélectionnez 'Terminer'.

Sélectionner l'image du conteneur

Ajouter des dépendances de package

La bibliothèque IronQR en .NET 8 fonctionne sur AWS Lambda sans nécessiter de dépendances supplémentaires. Pour le configurer, modifiez le Dockerfile du projet comme indiqué ci-dessous :

FROM public.ecr.aws/lambda/dotnet:8

# Install necessary packages and update repositories
RUN dnf update -y

WORKDIR /var/task

# This COPY command copies the .NET Lambda project's build artifacts from the host machine into the image. 
# The source of the COPY should match where the .NET Lambda project publishes its build artifacts. If the Lambda function is being built 
# with the AWS .NET Lambda Tooling, the `--docker-host-build-output-dir` switch controls where the .NET Lambda project
# will be built. The .NET Lambda project templates default to having `--docker-host-build-output-dir`
# set in the aws-lambda-tools-defaults.json file to "bin/Release/lambda-publish".
#
# Alternatively, Docker multi-stage build could be used to build the .NET Lambda project inside the image.
# For more information on this approach, check out the project's README.md file.
COPY "bin/Release/lambda-publish"  .
Text

Modifier le code de FunctionHandler

Cet exemple crée un code QR, le télécharge dans un compartiment S3 et lit le code QR nouvellement généré.

Le chemin d'accès au fichier est spécifié dans le répertoire IronQrNuGet, avec un identifiant unique global (GUID) utilisé comme nom de fichier. La méthode Write génère le code QR basé sur la valeur fournie, et le tableau d'octets JPG résultant est ensuite transmis à la méthode Read pour lire le code QR. Cela démontre que cette fonction AWS Lambda est capable de lire les codes QR.

using Amazon.Lambda.Core;
using Amazon.S3;
using Amazon.S3.Model;
using IronQr;

// Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]

namespace IronQrNuGetAwsLambda
{
    public class Function
    {
        private static readonly IAmazonS3 _s3Client = new AmazonS3Client(Amazon.RegionEndpoint.APSoutheast1);

        /// <summary>
        /// Main handler for AWS Lambda
        /// </summary>
        /// <param name="context">The ILambdaContext that provides methods for logging and describing the Lambda environment.</param>
        /// <returns></returns>
        public async Task FunctionHandler(ILambdaContext context)
        {
            // Set the license key for IronQR
            IronQr.License.LicenseKey = "IronQR-MYLICENSE-KEY-1EF01";

            string bucketName = "deploymenttestbucket";
            string objectKey = $"IronQrNuGet/{Guid.NewGuid()}.png";

            try
            {
                // Create a QR code with the content "12345"
                var myQr = QrWriter.Write("12345");

                context.Logger.LogLine("QR created.");

                // Upload the JPG to S3
                await UploadJpgToS3Async(bucketName, objectKey, myQr.Save().ExportBytesAsJpg());

                context.Logger.LogLine($"QR uploaded successfully to {bucketName}/{objectKey}");

                // Read the QR code
                QrImageInput imageInput = new QrImageInput(myQr.Save());
                QrReader reader = new QrReader();
                var resultFromByte = reader.Read(imageInput);

                foreach (var item in resultFromByte)
                {
                    // Log the read value
                    context.Logger.LogLine($"QR value is = {item.Value}");
                }
            }
            catch (Exception e)
            {
                context.Logger.LogLine($"[ERROR] FunctionHandler: {e.Message}");
            }
        }

        // Function to upload the JPG file to S3
        private async Task UploadJpgToS3Async(string bucketName, string objectKey, byte[] jpgBytes)
        {
            using (var memoryStream = new MemoryStream(jpgBytes))
            {
                var request = new PutObjectRequest
                {
                    BucketName = bucketName,
                    Key = objectKey,
                    InputStream = memoryStream,
                    ContentType = "image/jpg",
                };

                await _s3Client.PutObjectAsync(request);
            }
        }
    }
}

Augmenter la mémoire et le délai d'expiration

L'allocation de mémoire pour la fonction Lambda dépend de la taille des documents et du nombre de documents traités simultanément. Comme point de départ, définissez la mémoire à 512 Mo et le délai d'attente à 300 secondes dans le aws-lambda-tools-defaults.json.

"function-memory-size" : 512,
"function-timeout" : 300
JSON

Si la mémoire est insuffisante, le programme générera l'erreur : " L'exécution s'est terminée avec l'erreur : signal : tué ". Augmenter la taille de la mémoire peut aider à résoudre ce problème. Pour plus d'informations, consultez l'article de dépannage : AWS Lambda - Signal de sortie du runtime : Tué .

Publier

Pour publier dans Visual Studio, il suffit de cliquer avec le bouton droit sur le projet et de choisir " Publier sur AWS Lambda… ". Ensuite, configurez les paramètres requis. Pour plus d'informations, consultez le site web d'AWS .

Essayez-le!

Vous pouvez activer la fonction Lambda soit via la console Lambda soit via Visual Studio.

Questions Fréquemment Posées

Comment puis-je intégrer une bibliothèque de codes QR dans mon projet C# sur AWS Lambda ?

Vous pouvez intégrer une bibliothèque de codes QR comme IronQR dans votre projet C# sur AWS Lambda en téléchargeant la bibliothèque IronQR, en créant un projet AWS Lambda conteneurisé en utilisant Visual Studio et en configurant votre environnement pour prendre en charge les opérations de code QR.

Quelles sont les étapes pour configurer IronQR pour AWS Lambda ?

Configurez IronQR pour AWS Lambda en mettant en place un modèle de projet conteneurisé dans Visual Studio, en modifiant le Dockerfile, en mettant à jour le FunctionHandler et en ajustant les paramètres de mémoire et de temporisation pour assurer un bon fonctionnement.

Comment gérer les codes QR avec AWS S3 en utilisant une bibliothèque C# ?

Avec IronQR, vous pouvez gérer les codes QR en les créant, les téléchargeant et les lisant à partir de compartiments Amazon S3. Cela implique d'utiliser la bibliothèque IronQR en combinaison avec le package AWSSDK.S3 pour gérer les opérations avec les compartiments S3.

Que dois-je faire si ma fonction AWS Lambda utilisant IronQR ne fonctionne pas bien ?

Si votre fonction AWS Lambda ne fonctionne pas bien, envisagez d'augmenter les paramètres de mémoire et de temporisation dans votre fichier aws-lambda-tools-defaults.json pour allouer plus de ressources à la fonction.

Comment puis-je déployer une fonction Lambda C# sur AWS ?

Déployez une fonction Lambda C# sur AWS en utilisant l'option 'Publier vers AWS Lambda...' de Visual Studio, en configurant les paramètres nécessaires et en utilisant AWS Toolkit pour le déploiement.

Est-il possible de tester ma fonction AWS Lambda dans Visual Studio ?

Oui, vous pouvez tester votre fonction AWS Lambda dans Visual Studio en utilisant AWS Toolkit pour invoquer la fonction et vérifier directement la sortie dans votre environnement de développement.

Comment puis-je résoudre les problèmes de mémoire avec ma fonction AWS Lambda ?

Pour résoudre les problèmes de mémoire, augmentez l'allocation de mémoire dans le fichier aws-lambda-tools-defaults.json et surveillez les performances de la fonction après le redéploiement.

Quelle est l'importance de modifier le Dockerfile dans un projet AWS Lambda ?

La modification du Dockerfile dans un projet AWS Lambda est cruciale pour configurer correctement l'environnement, y compris la mise à jour des référentiels et la copie des artefacts de construction nécessaires pour que la fonction s'exécute correctement.

Comment puis-je m'assurer que ma fonction AWS Lambda gère efficacement les opérations de code QR ?

Assurez-vous que votre fonction AWS Lambda gère efficacement les opérations de code QR en optimisant les paramètres de mémoire et de temporisation, en utilisant les bibliothèques appropriées comme IronQR et en configurant correctement le Dockerfile et les paramètres du projet.

Puis-je automatiser la génération et la récupération des codes QR dans AWS Lambda ?

Oui, vous pouvez automatiser la génération et la récupération des codes QR dans AWS Lambda en utilisant IronQR. La bibliothèque vous permet de créer des codes QR par programmation, de les télécharger vers S3 et de les lire au besoin.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Prêt à commencer?

Nuget Downloads 74,386Version :2026.9vient de sortir

Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronQR
nuget.org/packages/IronQR/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronQR »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

  1. Téléchargez et décompressez IronQR à un emplacement tel que ~/Libs dans votre répertoire de Solution
  2. Dans Visual Studio Solution Explorer, cliquez avec le bouton droit sur Références. Sélectionnez Parcourir, « IronQR.dll »

Licences à partir de 749 $

Vous avez une question ? Contactez notre équipe de développement.

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise