puppeteer
Für die Verwendung von Puppeteer zum Rendern von mehrseitigen HTML-Dokumenten wurde ein Runtime-Image bereitgestellt:
registry.brandbox.host/runtime/puppeteer:1.0.0
registry.brandbox.host/runtime/puppeteer:1.1.0
registry.brandbox.host/runtime/puppeteer:1.2.0
Enthaltene Software
Software | Version |
---|---|
Debian | 10 |
Node.js | 14.21.3 |
Konfiguration für docker-compose.yml
Das Image kann in einer docker-compose.yml
wie folgt eingebunden werden:
puppeteer:
image: registry.brandbox.host/runtime/puppeteer:[Version]
domainname: local.brandbox.de
volumes:
- /mnt/nfsstorage/${COMPOSE_PROJECT_NAME}/temp:/var/www/temp/
- /mnt/nfsstorage/${COMPOSE_PROJECT_NAME}/share:/var/www/share/
env_file:
- brandbox.docker.env
working_dir: /var/www
networks:
internal:
aliases:
- puppeteer.${COMPOSE_PROJECT_NAME}
labels:
traefik.enable: "false"
ports:
- "8080"
Die Umgebungsvariablen PUPPETEER_HOST
und PUPPETEER_PROTOCOL
müssen wie folgt befüllt werden:
Umgebungsvariable | Wert |
---|---|
|
Die Definition dieser Umgebungsvariable sollte über die |
|
|
Cluster-Konfiguration (Kubernetes)
Es muss ein Deployment mit dem Image
registry.brandbox.host/runtime/puppeteer:1.0.0
eingerichtet werdenEs muss ein Service mit dem Namen
service-puppeteer
eingerichtet werden, der auf dieses Deployment verweist
Die Umgebungsvariablen PUPPETEER_HOST
und PUPPETEER_PROTOCOL
müssen wie folgt befüllt werden
Umgebungsvariable | Wert |
---|---|
|
|
|
|
Diese Standardwerte existieren bereits im Rancher-Manager und werden beim Redeploy über die Gitlab-Pipeline automatisch gesetzt.
Verwendung
Das Image stellt verschiedene HTTP-Schnittstellen zur Verarbeitung von HTML-Dokumenten zur Verfügung.
GET https://[HOSTNAME]:8080/puppeteer?source=[SOURCE]&target=[TARGET]
Mit dieser Schnittstelle kann ein HTML-Dokument auf einzelne Seiten verteilt und abgelegt werden.
Parameter (GET
)
Bezeichnung | Beschreibung |
---|---|
| Das zu verarbeitende HTML-Dokument. Die Angabe erfolgt als URL und kann entweder ein Dateipfad oder eine Webadresse darstellen.
|
| Ein Ordnerpfad für die Ablage des verarbeiteten HTML-Dokuments. Es wird immer ein Gesamtdokument sowie die Einzelseiten abgelegt. |
| Die Anzahl an Millisekunden, die der Verarbeitungsprozess auf eine Reaktion wartet. Standardmäßig wird hier |
| Die Anzahl an Millisekunden, die der Verarbeitungsprozess auf das Quelldokument ( |
| Wird dieser Parameter definiert und enthält den Wert |
Rückgabewerte (JSON
)
Bezeichnung | Beschreibung | |
---|---|---|
| Im Erfolgsfall | |
| Eine Zusammenfassung des Verarbeitungsprozesses sowie Zusatzinformationen für eine Protokollierung. Diese Information wird als JSON-Objekt übergeben. | |
|
| Die im |
|
| Der im |
|
| Die innerhalb des Verarbeitungsprozesses ausgeführten HTTP-Anfragen und deren Ergebnisse (Status oder Fehlertext). |
|
| Die innerhalb des Verarbeitungsprozesses eingesammelten Logmeldungen sowie deren Typ. |
|
| Laufzeit des Verarbeitungsprozesses in Sekunden. |
|
| Zusatzinformationen aus der Anfrage oder dem Verarbeitungsprozess. |
Beispiel
// GET http://[HOSTNAME]:8080/puppeteer?source=https%3A%2F%2Fexample.com%2Fsomething%2Fsomething.html&target=%2Fvar%2Fwww%2Fshare%2Fprivate%2Fexample
{
"result": true,
"log": {
"source": "https://example.com/something/something.html",
"target": "/var/www/share/private/example",
"requests": {
"https://example.com/something/something.html": 200,
"https://example.com/style.css": 200,
// ...
},
"messages": {
{
"type": "info",
"text": "[document] waiting for document"
},
{
"type": "info",
"text": "[document] creating page 1"
},
// ...
{
"type": "info",
"text": "[document] finished document"
},
// ...
},
"duration": 37.4,
"additional": {/* ... */},
}
}
POST https://[HOSTNAME]:8080/pdf
Diese Schnittstelle verteilt ein HTML-Dokument auf mehrere Seite und speichert das Ergebnis als PDF-Dokument.
Das erzeugte PDF-Dokument erfüllt nicht die Anforderungen eines Druck-PDF-Dokuments.
Anfrageinhalt (JSON
)
Bezeichnung | Typ | Beschreibung | ||
---|---|---|---|---|
|
| Das zu verarbeitende HTML-Dokument. Die Angabe erfolgt als URL und kann entweder ein Dateipfad oder eine Webadresse darstellen.
| ||
|
| Ein Ordnerpfad für die Ablage des verarbeiteten HTML-Dokuments. Es wird immer ein Gesamtdokument sowie die Einzelseiten abgelegt. | ||
|
|
| ||
|
|
|
| |
|
|
|
| Wird diese Option auf |
|
|
|
| Wird diese Option auf |
|
|
|
| |
|
|
|
| Die maximale Wartezeit in Millisekunden die zum Aufrufen der Dokumentenquelle verstreichen darf. |
|
|
|
| Die maximale Wartezeit in Millisekunden die zwischen „Lebenszeichen“ des Verarbeitungsprozesses verstreichen darf. |
Rückgabewerte (JSON
)
Bezeichnung | Typ | Beschreibung |
---|---|---|
|
| Wird auf den Wert |
|
| Die Dauer in Millisekunden, welche für die Verarbeitung benötigt wurde. |
|
| Die gesammelten Logmitteilungen aus der Verarbeitungsprozess. |
|
| Die angeforderten Ressourcen aus dem Verarbeitungsprozess. |
Versionshistorie
Version 1.0.0 (veraltet)