Utilizzare le pipeline di configurazione config-pipelines
Scopri come utilizzare le pipeline di configurazione per distribuire diverse configurazioni in AEM as a Cloud Service, ad esempio le impostazioni di inoltro del registro, le attività di manutenzione relative all’eliminazione e varie configurazioni CDN.
Panoramica overview
Una pipeline di configurazione di Cloud Manager distribuisce i file di configurazione (creati in formato YAML) in un ambiente di destinazione. È possibile configurare in questo modo diverse funzioni in AEM as a Cloud Service, tra cui l’inoltro del registro, le attività di manutenzione relative all’eliminazione e diverse funzioni CDN.
Per i progetti Distribuzione pubblicazione, le pipeline di configurazione possono essere distribuite tramite Cloud Manager ai tipi di ambiente di sviluppo, staging e produzione. I file di configurazione possono essere distribuiti in ambienti di sviluppo rapido (RDE) utilizzando strumenti della riga di comando.
Le pipeline di configurazione possono essere distribuite anche tramite Cloud Manager per progetti Edge Delivery.
Nelle sezioni seguenti di questo documento viene fornita una panoramica di informazioni importanti su come utilizzare le pipeline di configurazione e su come strutturare le relative configurazioni. Descrive i concetti generali condivisi tra tutte le funzionalità o un sottoinsieme di quelle supportate dalle pipeline di configurazione.
- Configurazioni supportate - Elenco di configurazioni che possono essere distribuite con le pipeline di configurazione.
- Creare e gestire le pipeline di configurazione - Creare una pipeline di configurazione
- Sintassi comune - Sintassi condivisa tra le configurazioni.
- Struttura cartella - Descrive la struttura prevista dalle pipeline di configurazione per le configurazioni.
- Variabili di ambiente segrete - Esempi di utilizzo delle variabili di ambiente per non divulgare i segreti nelle configurazioni.
- Variabili pipeline segrete - Esempi di utilizzo delle variabili di ambiente per non divulgare i segreti nelle configurazioni prima dei progetti Edge Delivery Services.
Configurazioni supportati configurations
La tabella seguente offre un elenco completo di tali configurazioni, con collegamenti alla documentazione dedicata che descrive la sintassi di configurazione specifica e altre informazioni.
kind
YAMLCDN
CDN
CDN
CDN
CDN
CDN
MaintenanceTasks
MaintenanceTasks
LogForwarding
API
Creare e gestire le pipeline di configurazione creating-and-managing
Per informazioni su come creare e configurare Pipeline di configurazione della distribuzione di pubblicazione, consulta Pipeline CI/CD. Durante la creazione di una pipeline di configurazione in Cloud Manager, assicurati di selezionare una distribuzione di destinazione anziché codice full stack durante la configurazione della pipeline. Come indicato in precedenza, la configurazione per gli RDE viene distribuita utilizzando strumenti della riga di comando anziché una pipeline.
Per informazioni su come creare e configurare pipeline di configurazione di Edge Delivery, consulta l'articolo Aggiungere una pipeline di Edge Delivery.
Sintassi comune common-syntax
Ogni file di configurazione inizia con proprietà simili al seguente snippet di esempio:
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
kind
version
envTypes
metadata
. Per Distribuzione pubblicazione, i valori possibili sono dev, stage, prod o qualsiasi combinazione e determina per quali tipi di ambiente viene elaborata la configurazione. Ad esempio, se l'array include solo dev
, la configurazione non viene caricata negli ambienti di staging o di produzione, anche se la configurazione è distribuita lì. Per Edge Delivery, deve essere utilizzato solo un valore di prod
.È possibile utilizzare l'utilità yq
per convalidare localmente la formattazione YAML del file di configurazione (ad esempio, yq cdn.yaml
).
Struttura delle cartelle folder-structure
Una cartella denominata /config
o simile deve trovarsi nella parte superiore della struttura, con uno o più file YAML in una struttura al di sotto di essa.
Ad esempio:
/config
cdn.yaml
Oppure
/config
/dev
cdn.yaml
I nomi delle cartelle e dei file sotto /config
sono arbitrari. Il file YAML, tuttavia, deve includere un valore di proprietà kind
valido.
In genere, le configurazioni vengono distribuite in tutti gli ambienti. Se tutti i valori delle proprietà sono identici per ciascun ambiente, è sufficiente un singolo file YAML. Tuttavia, è comune che i valori delle proprietà differiscano tra gli ambienti, ad esempio durante il test di un ambiente inferiore.
Le sezioni seguenti illustrano alcune strategie per strutturare i file.
Un singolo file di configurazione per tutti gli ambienti single-file
La struttura del file è simile alla seguente:
/config
cdn.yaml
logForwarding.yaml
Utilizza questa struttura quando la stessa configurazione è sufficiente per tutti gli ambienti e per tutti i tipi di configurazione (CDN, inoltro registro e così via). In questo scenario, la proprietà dell'array envTypes
includerebbe tutti i tipi di ambiente.
kind: "cdn"
version: "1"
metadata:
envTypes: ["dev", "stage", "prod"]
Utilizzando variabili di ambiente (o pipeline) di tipo segreto, è possibile che proprietà segrete varino in base all'ambiente, come illustrato dal seguente riferimento a ${{SPLUNK_TOKEN}}
.
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
token: "${{SPLUNK_TOKEN}}"
index: "AEMaaCS"
Un file separato per tipo di ambiente file-per-env
La struttura del file è simile alla seguente:
/config
cdn-dev.yaml
cdn-stage.yaml
cdn-prod.yaml
logForwarding-dev.yaml
logForwarding-stage.yaml
logForwarding-prod.yaml
Utilizza questa struttura quando possono esserci differenze nei valori delle proprietà. Nei file, ci si aspetta che il valore dell'array envTypes
corrisponda al suffisso. Ad esempio, cdn-dev.yaml
e logForwarding-dev.yaml
con valore di ["dev"]
, cdn-stage.yaml
e logForwarding-stage.yaml
con valore di ["stage"]
e così via.
Una cartella per ambiente folder-per-env
In questa strategia, esiste una cartella config
separata per ogni ambiente, con una pipeline separata dichiarata in Cloud Manager per ogni ambiente.
Questo approccio è particolarmente utile se disponi di più ambienti di sviluppo, ciascuno dei quali ha valori di proprietà univoci.
La struttura del file è simile alla seguente:
/config/dev1
cdn.yaml
logForwarding.yaml
/config/dev2
cdn.yaml
logForwarding.yaml
/config/prod
cdn.yaml
logForwarding.yaml
Una variazione di questo approccio consiste nel mantenere un ramo separato per ogni ambiente.
Edge Delivery Services yamls-for-eds
Le pipeline di configurazione di Edge Delivery non dispongono di ambienti di sviluppo, staging e produzione separati. Negli ambienti di distribuzione della pubblicazione, le modifiche progrediscono attraverso i livelli di sviluppo, stage e produzione. Al contrario, una pipeline di configurazione di Edge Delivery applica la configurazione direttamente a tutte le mappature di dominio registrate in Cloud Manager per un sito Edge Delivery.
Di conseguenza, distribuisci una struttura di file semplice come:
/config
cdn.yaml
logForwarding.yaml
Se una regola deve essere diversa per ogni sito Edge Delivery, utilizza la sintassi when per distinguere le regole tra loro. Ad esempio, il dominio corrisponde a dev.example.com nello snippet seguente, che può essere distinto dal dominio www.example.com.
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
# Block simple path
- name: block-path
when:
allOf:
- reqProperty: domain
equals: "dev.example.com"
- reqProperty: path
equals: '/block/me'
action: block
Se si include il campo di metadati envTypes, deve essere utilizzato solo il valore prod (anche omettendo il campo di metadati envTypes va bene). Per il livello reqProperty, deve essere utilizzato solo il valore publish.
Variabili di ambiente segrete secret-env-vars
Per evitare che le informazioni riservate vengano archiviate nel controllo del codice sorgente, i file di configurazione supportano variabili di ambiente Cloud Manager di tipo secret. Per alcune configurazioni, incluso l’inoltro del registro, le variabili di ambiente segrete sono obbligatorie per alcune proprietà.
Tieni presente che le variabili di ambiente segrete vengono utilizzate per i progetti di distribuzione della pubblicazione; consulta la sezione Variabili segrete della pipeline per i progetti Edge Delivery Services.
Il frammento seguente è un esempio dell'utilizzo della variabile di ambiente segreta ${{SPLUNK_TOKEN}}
nella configurazione.
kind: "LogForwarding"
version: "1"
metadata:
envTypes: ["dev"]
data:
splunk:
default:
enabled: true
host: "splunk-host.example.com"
token: "${{SPLUNK_TOKEN}}"
index: "AEMaaCS"
Per informazioni dettagliate sull'utilizzo delle variabili di ambiente, vedere Variabili di ambiente Cloud Manager.
Variabili segrete della pipeline secret-pipeline-vars
Per i progetti Edge Delivery Services, utilizzare le variabili della pipeline Cloud Manager di tipo secret in modo che non sia necessario archiviare le informazioni riservate nel controllo del codice sorgente. La casella di selezione Passaggio applicato deve utilizzare l'opzione distribuisci.
La sintassi è identica al frammento mostrato nella sezione precedente.
Per informazioni dettagliate sull'utilizzo delle variabili di pipeline, vedere Variabili di pipeline in Cloud Manager.