Proxyutveckling för Assets assets-proxy-development
Adobe Experience Manager Assets använder en proxy för att distribuera bearbetning för vissa uppgifter.
En proxy är en specifik (och ibland separat) Experience Manager-instans som använder proxyarbetare som processorer som hanterar ett jobb och skapar ett resultat. En proxyarbetare kan användas för en mängd olika uppgifter. Om det finns en Assets-proxy kan den användas för att läsa in resurser för återgivning inom Assets. IDS-proxyarbetaren använder till exempel en Adobe InDesign-server för att bearbeta filer som ska användas i Assets.
När proxyn är en separat Experience Manager-instans minskar detta inläsningen för Experience Manager -redigeringsinstansen. Som standard kör Assets resurshanteringsuppgifterna i samma JVM (externaliserat via Proxy) för att minska belastningen på Experience Manager-redigeringsinstansen.
Proxy (HTTP Access) proxy-http-access
En proxy är tillgänglig via HTTP-servern när den är konfigurerad att acceptera bearbetningsjobb på: /libs/dam/cloud/proxy
. Den här servern skapar ett snedjobb av de bokförda parametrarna. Detta läggs sedan till i proxyjobbkön och ansluts till lämplig proxyarbetare.
Åtgärder som stöds supported-operations
-
job
Krav: Parametern
jobevent
måste anges som en serialiserad värdekarta. Detta används för att skapa enEvent
för en jobbprocessor.Resultat: Lägger till ett nytt jobb. Om det lyckas returneras ett unikt jobb-ID.
curl -u admin:admin -F":operation=job" -F"someproperty=xxxxxxxxxxxx"
-F"jobevent=serialized value map" http://localhost:4502/libs/dam/cloud/proxy
-
result
Krav: parametern
jobid
måste anges.Resultat: Returnerar en JSON-representation av den resulterande noden som skapats av jobbprocessorn.
curl -u admin:admin -F":operation=result" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502 /libs/dam/cloud/proxy
-
resource
Krav: Parametern jobid måste anges.
Resultat: Returnerar en resurs som är associerad med det angivna jobbet.
curl -u admin:admin -F":operation=resource" -F"jobid=xxxxxxxxxxxx"
-F"resourcePath=something.pdf" http://localhost:4502/libs/dam/cloud/proxy
-
remove
Krav: Parametern jobid måste anges.
Resultat: Tar bort ett jobb om det hittas.
curl -u admin:admin -F":operation=remove" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502/libs/dam/cloud/proxy
Proxyarbetare proxy-worker
En proxyarbetare är en processor som hanterar ett jobb och skapar ett resultat. Arbetare finns på proxyinstansen och måste implementera snedande JobProcessor för att identifieras som en proxyarbetare.
Klient-API client-api
JobService
är tillgänglig som en OSGi-tjänst som tillhandahåller metoder för att skapa jobb, ta bort jobb och hämta resultat från dessa jobb. Standardimplementeringen av den här tjänsten (JobServiceImpl
) använder HTTP-klienten för att kommunicera med fjärrproxyservern.
Nedan följer ett exempel på API-användning:
@Reference
JobService proxyJobService;
// to create a job
final Hashtable props = new Hashtable();
props.put("someproperty", "some value");
props.put(JobUtil.PROPERTY_JOB_TOPIC, "myworker/job"); // this is an identifier of the worker
final String jobId = proxyJobService.addJob(props, new Asset[]{asset});
// to check status (returns JobService.STATUS_FINISHED or JobService.STATUS_INPROGRESS)
int status = proxyJobService.getStatus(jobId)
// to get the result
final String jsonString = proxyJobService.getResult(jobId);
// to remove job and cleanup
proxyJobService.removeJob(jobId);
Konfigurationer av Cloud Service cloud-service-configurations
Både proxy- och proxyarbetarkonfigurationer är tillgängliga via molntjänster som tillgängliga från Assets Tools-konsolen eller under /etc/cloudservices/proxy
. Varje proxyarbetare förväntas lägga till en nod under /etc/cloudservices/proxy
för arbetarspecifik konfigurationsinformation (till exempel /etc/cloudservices/proxy/workername
).
Nedan följer ett exempel på API-användning:
@Reference(policy = ReferencePolicy.STATIC)
ProxyConfig proxyConfig;
// to get proxy config
Configuration cloudConfig = proxyConfig.getConfiguration();
final String value = cloudConfig.get("someProperty", "defaultValue");
// to get worker config
Configuration cloudConfig = proxyConfig.getConfiguration("workername");
final String value = cloudConfig.get("someProperty", "defaultValue");
Utveckla en anpassad proxyarbetare developing-a-customized-proxy-worker
IDS-proxyarbetaren är ett exempel på en Assets-proxyarbetare som redan har tillhandahållits utanför ramarna för att lägga ut bearbetning av InDesign resurser på entreprenad.
Du kan också utveckla och konfigurera din egen Assets-proxyarbetare för att skapa en specialarbetare som skickar och lägger ut Assets-bearbetningsuppgifterna på entreprenad.
Om du konfigurerar en egen anpassad proxyarbetare måste du:
-
Konfigurera och implementera (med Sling-händelse):
- ett anpassat jobbämne
- en anpassad jobbhändelsehanterare
-
Använd sedan JobService API för att:
- skicka ditt anpassade jobb till proxyn
- hantera ditt jobb
-
Om du vill använda utkastet från ett arbetsflöde måste du implementera ett anpassat externt steg med WorkflowExternalProcess API och JobService API.
Följande diagram och steg visar hur du fortsätter:
-
Ett delningsjobb används, så du måste definiera ett jobbämne för ditt användningsfall.
Se till exempel
IDSJob.IDS_EXTENDSCRIPT_JOB
för IDS-proxyarbetaren. -
Det externa steget används för att utlösa händelsen och sedan vänta tills det är klart. Detta görs genom att avfråga ID:t. Utveckla egna steg för att implementera nya funktioner.
Implementera en
WorkflowExternalProcess
, använd sedan JobService API och ditt jobbämne för att förbereda en jobbhändelse och skicka den till JobService (en OSGi-tjänst).Se till exempel
INDDMediaExtractProcess
.java för IDS-proxyarbetaren. -
Implementera en jobbhanterare för ditt ämne. Hanteraren kräver utveckling så att den utför din specifika åtgärd och anses vara implementeringen av arbetaren.
Se till exempel
IDSJobProcessor.java
för IDS-proxyarbetaren. -
Använd
ProxyUtil.java
i dammkompositioner. På så sätt kan du skicka jobb till arbetare med dammproxyn.