Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shelfio/libreoffice-lambda-layer
https://github.com/shelfio/libreoffice-lambda-layer
aws aws-lambda lambda-layer libreoffice
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/shelfio/libreoffice-lambda-layer
- Owner: shelfio
- License: mit
- Created: 2019-06-12T09:06:27.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-02-28T22:53:02.000Z (11 months ago)
- Last Synced: 2024-08-02T06:14:09.451Z (5 months ago)
- Topics: aws, aws-lambda, lambda-layer, libreoffice
- Language: Shell
- Size: 89.1 MB
- Stars: 109
- Watchers: 25
- Forks: 21
- Open Issues: 24
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
- awesome-layers - `shelfio/libreoffice-lambda-layer` - version/us-east-1/764866452798/libreoffice) | (Layers / Utilities)
README
# LibreOffice for AWS Lambda as a layer
> 95 MB LibreOffice to fit inside AWS Lambda Layer compressed with Brotli or gzip
Based on the [serverless-libreoffice](https://github.com/vladgolubev/serverless-libreoffice) project.
## Getting Started
Click on Layers and choose "Add a layer", and "Provide a layer version ARN" and enter the following ARN.
```
arn:aws:lambda:us-east-1:764866452798:layer:libreoffice-brotli:1
```See the table below for the list of supported regions and runtimes.
Works well with [aws-lambda-libreoffice npm package](https://github.com/shelfio/aws-lambda-libreoffice)
## What's inside this layer?
`libreoffice-brotli` layer contains `lo.tar.br` file which is [LibreOffice v6.4.0.1](https://github.com/vladgolubev/serverless-libreoffice/releases/tag/v6.4.0.1). Node.js has native Brotli unpacking support since version 10 so it's easy to unpack this file natively. Alternatively, you can use [aws-lambda-libreoffice npm package](https://github.com/shelfio/aws-lambda-libreoffice) to simplify this task.
`libreoffice-gzip` layer contains `lo.tar.gz` file which is [LibreOffice v6.4.0.1](https://github.com/vladgolubev/serverless-libreoffice/releases/tag/v6.4.0.1).
## How do I use this layer to launch LibreOffice?
If you don't use [aws-lambda-libreoffice npm package](https://github.com/shelfio/aws-lambda-libreoffice), then these steps are roughly what you need to do.
1. This layer just adds `/opt/lo.tar.br` or `/opt/lo.tar.gz` file to your Lambda runtime
2. Unpack `/opt/lo.tar.br` or `/opt/lo.tar.gz` file during Lambda execution into `/tmp` folder which has 512 MB of free space. Make sure to do this OUTSIDE function handler code.
This is an expensive task, so better to make it once on a warm start.
3. LibreOffice binary will be located available at `/opt/instdir/program/soffice.bin`
4. Check out `/test/index.js` for CLI arguments needed to run LibreOffice to convert a `.txt` file to `.pdf` for more details## Version ARNs
### LibreOffice v6.4.0.1 (Amazon Linux 2)
Works with the following [AWS Lambda runtimes](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html) which run on Amazon Linux 2:
- nodejs16.x
- nodejs14.x
- nodejs12.x
- nodejs10.x
- python3.8
- java11| AWS Region | Layer ARN (brotli) |
|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
| us-east-1 | `arn:aws:lambda:us-east-1:764866452798:layer:libreoffice-brotli:1` or
`arn:aws:lambda:us-east-1:764866452798:layer:libreoffice-gzip:1` |
| eu-west-1 | `arn:aws:lambda:eu-west-1:764866452798:layer:libreoffice-brotli:1` or
`arn:aws:lambda:eu-west-1:764866452798:layer:libreoffice-gzip:1` |
| eu-central-1 | `arn:aws:lambda:eu-central-1:764866452798:layer:libreoffice-brotli:1` or
`arn:aws:lambda:eu-central-1:764866452798:layer:libreoffice-gzip:1` |
| us-west-2 | `arn:aws:lambda:us-west-2:764866452798:layer:libreoffice-brotli:1` or
`arn:aws:lambda:us-west-2:764866452798:layer:libreoffice-gzip:1` |
| us-east-2 | `arn:aws:lambda:us-east-2:764866452798:layer:libreoffice-brotli:1` or
`arn:aws:lambda:us-east-2:764866452798:layer:libreoffice-gzip:1` |
| ap-southeast-2 | `arn:aws:lambda:ap-southeast-2:764866452798:layer:libreoffice-brotli:1` or
`arn:aws:lambda:ap-southeast-2:764866452798:layer:libreoffice-gzip:1` |
| eu-west-2 | `arn:aws:lambda:eu-west-2:764866452798:layer:libreoffice-brotli:1` or
`arn:aws:lambda:eu-west-2:764866452798:layer:libreoffice-gzip:1` |
| eu-west-3 | `arn:aws:lambda:eu-west-3:764866452798:layer:libreoffice-brotli:1` or
`arn:aws:lambda:eu-west-3:764866452798:layer:libreoffice-gzip:1` |
| ap-southeast-1 | `arn:aws:lambda:ap-southeast-1:764866452798:layer:libreoffice-brotli:1` or
`arn:aws:lambda:ap-southeast-1:764866452798:layer:libreoffice-gzip:1` |
| ap-south-1 | `arn:aws:lambda:ap-south-1:764866452798:layer:libreoffice-brotli:1` or
`arn:aws:lambda:ap-south-1:764866452798:layer:libreoffice-gzip:1` |
| ca-central-1 | `arn:aws:lambda:ca-central-1:764866452798:layer:libreoffice-brotli:1` or
`arn:aws:lambda:ca-central-1:764866452798:layer:libreoffice-gzip:1` |
| sa-east-1 | `arn:aws:lambda:sa-east-1:764866452798:layer:libreoffice-brotli:1` or
`arn:aws:lambda:sa-east-1:764866452798:layer:libreoffice-gzip:1` |### LibreOffice 6.1.0.0.alpha0 (Amazon Linux 1)
Works with the following [AWS Lambda runtimes](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html) which run on Amazon Linux 2:
- nodejs8.10
- python3.7
- python3.6
- python2.7
- ruby2.5
- java8
- go1.x
- dotnetcore2.1| AWS Region | LibreOffice Version | Layer ARN |
| -------------- | ------------------- | ---------------------------------------------------------------- |
| us-east-1 | 6.1.0.0.alpha0 | `arn:aws:lambda:us-east-1:764866452798:layer:libreoffice:8` |
| eu-west-1 | 6.1.0.0.alpha0 | `arn:aws:lambda:eu-west-1:764866452798:layer:libreoffice:1` |
| eu-central-1 | 6.1.0.0.alpha0 | `arn:aws:lambda:eu-central-1:764866452798:layer:libreoffice:1` |
| us-west-2 | 6.1.0.0.alpha0 | `arn:aws:lambda:us-west-2:764866452798:layer:libreoffice:1` |
| us-east-2 | 6.1.0.0.alpha0 | `arn:aws:lambda:us-east-2:764866452798:layer:libreoffice:1` |
| ap-southeast-2 | 6.1.0.0.alpha0 | `arn:aws:lambda:ap-southeast-2:764866452798:layer:libreoffice:1` |
| eu-west-2 | 6.1.0.0.alpha0 | `arn:aws:lambda:eu-west-2:764866452798:layer:libreoffice:1` |
| ap-southeast-1 | 6.1.0.0.alpha0 | `arn:aws:lambda:ap-southeast-1:764866452798:layer:libreoffice:1` |
| ap-south-1 | 6.1.0.0.alpha0 | `arn:aws:lambda:ap-south-1:764866452798:layer:libreoffice:1` |## License
MIT © [Shelf](https://shelf.io)