Fonctions Serverless en Swift : AWS Lambda de A à Z

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction au Serverless en Swift avec AWS Lambda



L'architecture serverless devient la norme du développement cloud moderne. Grâce à AWS Lambda, les développeurs peuvent exécuter du code sans gérer de serveurs, en ne payant que pour le temps d'exécution réel. Jusqu'à récemment, Swift restait à l'écart du monde serverless, mais avec l'arrivée du support officiel de Swift sur AWS Lambda, la situation a radicalement changé.



Dans cet article, nous allons parcourir le cycle complet de travail avec les fonctions serverless en Swift : de la configuration de l'environnement au déploiement en production. Vous apprendrez à utiliser votre expérience de développement iOS/macOS pour créer des solutions cloud efficaces.



Pourquoi Swift pour le Serverless ?



Swift n'est pas seulement un langage pour applications mobiles. Ses points forts en font un excellent choix pour le serverless :



  • Sécurité des types — le compilateur détecte les erreurs dès la phase de compilation
  • Haute performance — le code natif est plus rapide que les langages interprétés
  • Syntaxe moderne — le code est facile à lire et à maintenir
  • Base de code partagée — possibilité de réutiliser les modèles et la logique des projets iOS/macOS


Pour exécuter Swift sur AWS Lambda, on utilise l'image officielle Amazon Linux 2 avec Swift 5.10 préinstallé. Cela garantit une compatibilité totale et un démarrage à froid minimal.



Configuration de l'environnement et création de la première fonction



Installation des outils nécessaires



Avant de commencer, assurez-vous d'avoir installé :



  • Swift 5.10 ou plus récent
  • Docker (pour la compilation dans un environnement Linux)
  • AWS CLI avec des credentials configurés
  • Homebrew (pour macOS)


# Installation de Swift via Homebrewbrew install swift

# Vérification de la versionswift --version

# Installation d'AWS CLIbrew install awscli

# Configuration d'AWSaws configure


Création du projet Swift Package



Créons un nouveau package Swift exécutable :



mkdir MyLambdaFunctioncd MyLambdaFunctionswift package init --type executable


Mettons maintenant à jour Package.swift pour fonctionner avec AWS Lambda Runtime :



// swift-tools-version:5.10import PackageDescription

let package = Package( name: "MyLambdaFunction", platforms: [.macOS(.v13)], dependencies: [ .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "1.0.0") ], targets: [ .executableTarget( name: "MyLambdaFunction", dependencies: [ .product(name: "AWSLambdaRuntime", package: "swift-aws-lambda-runtime") ]), .testTarget( name: "MyLambdaFunctionTests", dependencies: ["MyLambdaFunction"]), ])


Code de la fonction de gestion



Remplaçons le contenu de Sources/MyLambdaFunction/main.swift :



import AWSLambdaRuntime

// Définition de la structure de la requêtestruct Request: Codable { let name: String let age: Int}

// Définition de la structure de la réponsestruct Response: Codable { let message: String let isAdult: Bool}

// Gestionnaire principal@mainstruct MyHandler: SimpleLambdaHandler { typealias Event = Request typealias Output = Response

func handle(_ event: Request, context: LambdaContext) async throws -> Response { let isAdult = event.age >= 18 return Response( message: "Bonjour, \\(event.name) !", isAdult: isAdult ) }}


Compilation et déploiement sur AWS Lambda



Compilation pour Linux



Puisque Swift sur macOS compile des binaires pour macOS, nous devons utiliser Docker :



# Création du Dockerfilecat << EOF > DockerfileFROM swift:5.10-amazonlinux2 AS buildWORKDIR /appCOPY . .RUN swift build -c release --                

Blogs

Book Recommendations