diff --git a/Makefile b/Makefile index 7844cea..49964fb 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ -SWIFT_VERSION?=5.2.3 +SWIFT_VERSION?=5.3-amazonlinux2 +DOCKER_OS?=amazonlinux2 DOCKER_TAG=nio-swift:$(SWIFT_VERSION) SWIFT_DOCKER_IMAGE=$(DOCKER_TAG) diff --git a/Package.resolved b/Package.resolved index 32ebbd4..8ee78aa 100644 --- a/Package.resolved +++ b/Package.resolved @@ -6,8 +6,8 @@ "repositoryURL": "https://github.com/swift-server/async-http-client.git", "state": { "branch": null, - "revision": "037b70291941fe43de668066eb6fb802c5e181d2", - "version": "1.1.1" + "revision": "4b4d6605aa2e4f0c2ae3c7563795ae3bec259fff", + "version": "1.2.1" } }, { @@ -19,13 +19,22 @@ "version": "1.0.0" } }, + { + "package": "swift-log", + "repositoryURL": "https://github.com/apple/swift-log.git", + "state": { + "branch": null, + "revision": "173f567a2dfec11d74588eea82cecea555bdc0bc", + "version": "1.4.0" + } + }, { "package": "swift-nio", "repositoryURL": "https://github.com/apple/swift-nio.git", "state": { "branch": null, - "revision": "e876fb37410e0036b98b5361bb18e6854739572b", - "version": "2.16.0" + "revision": "96db8838be60fcbb993fa738e1120fb7f4b99c43", + "version": "2.22.1" } }, { @@ -33,8 +42,8 @@ "repositoryURL": "https://github.com/apple/swift-nio-extras.git", "state": { "branch": null, - "revision": "b4dbfacff47fb8d0f9e0a422d8d37935a9f10570", - "version": "1.4.0" + "revision": "e5b5d191a80667a14827bfeb0ae4a511f7677942", + "version": "1.7.0" } }, { @@ -42,8 +51,17 @@ "repositoryURL": "https://github.com/apple/swift-nio-ssl.git", "state": { "branch": null, - "revision": "ae213938e151964aa691f0e902462fbe06baeeb6", - "version": "2.7.1" + "revision": "ea1dfd64193bf5af4490635a4a44c4fb43b1e1ae", + "version": "2.9.1" + } + }, + { + "package": "swift-nio-transport-services", + "repositoryURL": "https://github.com/apple/swift-nio-transport-services.git", + "state": { + "branch": null, + "revision": "bb56586c4cab9a79dce6ec4738baddb5802c5de7", + "version": "1.9.0" } } ] diff --git a/README.md b/README.md index 2faeb7a..fa0451d 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,14 @@ # aws-lambda-swift-sprinter-nio-plugin -[![Swift 5](https://img.shields.io/badge/Swift-5.0-blue.svg)](https://swift.org/download/) [![Swift 5.1](https://img.shields.io/badge/Swift-5.1-blue.svg)](https://swift.org/download/) [![Swift 5.2](https://img.shields.io/badge/Swift-5.2-blue.svg)](https://swift.org/download/) ![](https://img.shields.io/badge/version-1.0.0-green) [![Build Status](https://travis-ci.com/swift-sprinter/aws-lambda-swift-sprinter-nio-plugin.svg?branch=master)](https://travis-ci.com/swift-sprinter/aws-lambda-swift-sprinter-nio-plugin) [![codecov](https://codecov.io/gh/swift-sprinter/aws-lambda-swift-sprinter-nio-plugin/branch/master/graph/badge.svg)](https://codecov.io/gh/swift-sprinter/aws-lambda-swift-sprinter-nio-plugin) +[![Swift 5](https://img.shields.io/badge/Swift-5.3-blue.svg)](https://swift.org/download/) ![](https://img.shields.io/badge/version-1.0.0-green) [![Build Status](https://travis-ci.com/swift-sprinter/aws-lambda-swift-sprinter-nio-plugin.svg?branch=master)](https://travis-ci.com/swift-sprinter/aws-lambda-swift-sprinter-nio-plugin) [![codecov](https://codecov.io/gh/swift-sprinter/aws-lambda-swift-sprinter-nio-plugin/branch/master/graph/badge.svg)](https://codecov.io/gh/swift-sprinter/aws-lambda-swift-sprinter-nio-plugin) The project implements an HTTPS client plugin for the [LambdaSwiftSprinter](https://github.com/swift-sprinter/aws-lambda-swift-sprinter-core) framework. The plugin is based on swift-nio 2.0 and uses the third part library [async-http-client](https://github.com/swift-server/async-http-client.git) -- Allow the handler to make an HTTPS call. Swift's implementation relies on ``libgnutls`` which expects to find its root certificates in ``/etc/ssl/certs/ca-certificates.crt`` directory. That directory is absent on Amazon Linux. **Currently calls to HTTPS endpoint will fail with an error** : ``error setting certificate verify locations:\n CAfile: /etc/ssl/certs/ca-certificates.crt\n CApath: /etc/ssl/certs`` -This library fix this issue by using `swift-nio 2`. +- Allow the handler to make an HTTPS call using swift-nio # Usage diff --git a/docker/5.3-amazonlinux2/Dockerfile b/docker/5.3-amazonlinux2/Dockerfile new file mode 100644 index 0000000..e113ac7 --- /dev/null +++ b/docker/5.3-amazonlinux2/Dockerfile @@ -0,0 +1,3 @@ +FROM swift:5.3-amazonlinux2 as builder + +RUN yum -y install zip \ No newline at end of file diff --git a/docker/5.3-amazonlinux2/bootstrap b/docker/5.3-amazonlinux2/bootstrap new file mode 100755 index 0000000..acdb8f3 --- /dev/null +++ b/docker/5.3-amazonlinux2/bootstrap @@ -0,0 +1,3 @@ +#!/bin/sh +EXECUTABLE=$LAMBDA_TASK_ROOT/"$(echo $_HANDLER | cut -d. -f1)" +$EXECUTABLE \ No newline at end of file diff --git a/docker/5.3-amazonlinux2/swift-shared-libraries.txt b/docker/5.3-amazonlinux2/swift-shared-libraries.txt new file mode 100644 index 0000000..921623e --- /dev/null +++ b/docker/5.3-amazonlinux2/swift-shared-libraries.txt @@ -0,0 +1,12 @@ +/usr/lib/swift/linux/libBlocksRuntime.so +/usr/lib/swift/linux/libFoundation.so +/usr/lib/swift/linux/libFoundationNetworking.so +/usr/lib/swift/linux/libFoundationXML.so +/usr/lib/swift/linux/libdispatch.so +/usr/lib/swift/linux/libicudataswift.so.65 +/usr/lib/swift/linux/libicui18nswift.so.65 +/usr/lib/swift/linux/libicuucswift.so.65 +/usr/lib/swift/linux/libswiftCore.so +/usr/lib/swift/linux/libswiftDispatch.so +/usr/lib/swift/linux/libswiftGlibc.so +/usr/lib/swift/linux/libswiftSwiftOnoneSupport.so \ No newline at end of file