• Stars
    star
    109
  • Rank 319,005 (Top 7 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 5 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

What's inside this layer?

libreoffice-brotli layer contains lo.tar.br file which is LibreOffice 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 to simplify this task.

libreoffice-gzip layer contains lo.tar.gz file which is LibreOffice v6.4.0.1.

How do I use this layer to launch LibreOffice?

If you don't use aws-lambda-libreoffice npm package, 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 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 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

More Repositories

1

chrome-aws-lambda-layer

58 MB Google Chrome to fit inside AWS Lambda Layer compressed with Brotli
627
star
2

jest-mongodb

Jest preset for MongoDB in-memory server
TypeScript
588
star
3

aws-lambda-libreoffice

Utility to work with Docker version of LibreOffice in Lambda
TypeScript
221
star
4

jest-dynamodb

Jest preset for DynamoDB local server
TypeScript
179
star
5

ghostscript-lambda-layer

Ghostscript AWS Lambda layer
Shell
93
star
6

aws-lambda-tesseract

6 MB Tesseract (with English training data) to fit inside AWS Lambda
Shell
86
star
7

dynamodb-parallel-scan

Scan large DynamoDB tables faster with parallelism
TypeScript
65
star
8

libreoffice-lambda-base-image

26
star
9

fast-chunk-string

Chunk string into equal substrings with unicode support
TypeScript
18
star
10

tika-text-extract

Extract text from a document by Apache Tika
TypeScript
15
star
11

dynamodb-query-optimized

TypeScript
13
star
12

apache-tika-lambda-layer

AWS Lambda layer containing latest version of Apache Tika
Shell
13
star
13

winston-datadog-logs-transport

Winston transport for Datadog Logs (not events)
JavaScript
13
star
14

java-lambda-layer

AWS Lambda layer with Java 8
Shell
12
star
15

jest-postgres

Jest preset for running tests with local Postgres
TypeScript
10
star
16

aws-ddb-with-xray

AWS DynamoDB Document Client initialized with X-Ray
TypeScript
9
star
17

jest-elasticsearch

Jest preset for running tests with local ElasticSearch
TypeScript
9
star
18

aws-lambda-brotli-unpacker

Unpacks large Lambda binaries to /tmp
TypeScript
9
star
19

fast-natural-order-by

Lightweight (< 2.3kB gzipped) and performant natural sorting of arrays and collections by differentiating between unicode characters, numbers, dates, etc.
TypeScript
8
star
20

es-painless-fields

Generate Painless Elasticsearch script to set / unset fields on document from JavaScript Object
TypeScript
7
star
21

serverless-simplify-default-exec-role-plugin

Fixes "IamRoleLambdaExecution - Maximum policy size of 10240 bytes exceeded" error
JavaScript
7
star
22

fast-normalize-spaces

A faster (by 16-70%) implementation of "normalize-space-x" package that uses at least 3x less RAM
TypeScript
6
star
23

elasticsearch-local

Run any version of ElasticSearch locally
TypeScript
6
star
24

eslint-config

JavaScript
6
star
25

array-chunk-by-size

Chunk array of objects by their size in JSON
TypeScript
4
star
26

postgres-local

Run Postgres locally
TypeScript
4
star
27

jest-testrail-reporter

Simple package to submit jest test results to TestRail
TypeScript
3
star
28

aws-ssm-get-param-cli

Get value of SSM parameter
JavaScript
3
star
29

pspdfkit-ssr

Utilities to work with PSPDFKit's server-side rendering
TypeScript
2
star
30

gh-sdk

Convenient wrapper for GitHub API for automation tasks
TypeScript
2
star
31

react-outside-click

React library for handling outside clicks of a specified element
TypeScript
2
star
32

renovate-config-public

1
star
33

is-string-in-quotes

Check if string is inside quotation marks (21 styles)
TypeScript
1
star
34

fast-normalize-spaces-as

TypeScript
1
star
35

trim-around-tag

Trims text to max length around any HTML tag w/o breaking words
TypeScript
1
star
36

evaluate-expressions

Evaluate expressions that consist of multiple rules and joiners.
TypeScript
1
star
37

datetime

Shelf dates library
TypeScript
1
star
38

text-normalizer

Clone of openai Whisperer text normalization done and tested on Typescript!
TypeScript
1
star
39

table-of-contents

Linkify HTML headers and generate a TOC
TypeScript
1
star
40

image-preview-overlay

TypeScript
1
star