StefanS
Returning Observer

S3-Deployment, Teilgenerierung mit Löschen

Jump to solution

Hallo Gruppe,

in der Anleitung für das S3-Deployment findet sich ein Abschnitt, wie das Löschen von Einträgen bei einer Teilgenerierung gesteuert werden kann. Allerdings habe ich hier ein Verständnisproblem.

Dort wird beschrieben, dass vor dem S3-Deployment-Task ein Skript hinzugefügt werden muss, in dem eine Liste mit Pfaden bereitgestellt wird. Ich gehe mal davon aus, dass hier ein Skript-Task gemeint ist, und keine Skript-Datei, die irgendwo bereitgestellt werden muss. Ist das korrekt?

Es ist ein Beispiel für solch ein Skript vorhanden, in dem eine Property "fullMatching" mit einer Liste gesetzt wird. Was ich der Beschreibung nicht entnehmen kann (ich so aber aus den Release-Notes von Version 2022.11 schließe), ist, dass der Name "fullMatching" obligatorisch ist. Stimmt das so?

Die Verwirrung bezüglich Skript-Task versus Skript-Datei bzw. der Property "fullMatching" kommt von der Aussage im Text, dass das Skript einem vorgegebenen Namensschema folgen muss, damit "das S3-Deployment dieses Skript erkennt". Was genau steckt hinter dieser Aussage? Ist der Name des Skripts wirklich von Bedeutung und, wenn ja, wieso?

Danke für Aufklärung oder Hinweise
Stefan

0 Kudos
1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

Hallo Stefan,

in der Skript-Aktion (deren Name egal ist) muss eine Property "fullMatching" gesetzt werden, in der die entsprechenden Pfade definiert sind, die synchronisiert werden sollen. Ein entsprechendes Beispiel für ein solches Skript findet sich in der Doku (siehe auch unten) .

Wichtig ist nur, dass die Skript Aktion vor der S3 Deployment Aktion ausgeführt wird. Die S3 Deployment-Aktion prüft den Kontext, ob es dort die Property "fullMatching" gibt und wertet diese aus (sofern der Deploymenttyp nicht "complete sync" ist - dann wird die property ignoriert).

das Beispiel aus der Doku:

List<String> list = new ArrayList();
list.add("myBucketFolder/pl-pl");
list.add("myBucketFolder/en-pl");
context.setProperty("fullMatching", list);

Das in der Doku steht, dass der Name des Skripts einem bestimmten Schema folgen muss, habe ich mal als Bug mitgenommen - danke für den Hinweis 🙂

Viele Grüße
Holger

View solution in original post

0 Kudos
2 Replies
hoebbel
Crownpeak employee

Hallo Stefan,

in der Skript-Aktion (deren Name egal ist) muss eine Property "fullMatching" gesetzt werden, in der die entsprechenden Pfade definiert sind, die synchronisiert werden sollen. Ein entsprechendes Beispiel für ein solches Skript findet sich in der Doku (siehe auch unten) .

Wichtig ist nur, dass die Skript Aktion vor der S3 Deployment Aktion ausgeführt wird. Die S3 Deployment-Aktion prüft den Kontext, ob es dort die Property "fullMatching" gibt und wertet diese aus (sofern der Deploymenttyp nicht "complete sync" ist - dann wird die property ignoriert).

das Beispiel aus der Doku:

List<String> list = new ArrayList();
list.add("myBucketFolder/pl-pl");
list.add("myBucketFolder/en-pl");
context.setProperty("fullMatching", list);

Das in der Doku steht, dass der Name des Skripts einem bestimmten Schema folgen muss, habe ich mal als Bug mitgenommen - danke für den Hinweis 🙂

Viele Grüße
Holger

0 Kudos
StefanS
Returning Observer

Hey Holger,

ja, habe mir schon gedacht, dass die Doku das Problem ist.
Eventuell könnte man auch noch Skript-Aktion oder -Task schreiben, statt lediglich Skript. Und eventuell so umschreiben, wie du es beschreibst, dass nämlich die Property fullMatching eine Liste beinhalten muss. Aber das ist vielleicht auch ein wenig kleinlich. 😊

Besten Dank und Gruß
Stefan

0 Kudos