Con le variabili e le espressioni, è possibile utilizzare i parametri di input e i parametri di output con le attività della pipeline. I parametri immessi associano l'attività della pipeline a una o più variabili, espressioni o condizioni e determinano il comportamento della pipeline durante l'esecuzione.

Le pipeline possono eseguire soluzioni di distribuzione del software semplici o complesse

Quando si associano le attività della pipeline tra loro, è possibile includere espressioni predefinite e complesse. Di conseguenza, la pipeline può eseguire soluzioni di distribuzione del software semplici o complesse.

Per creare i parametri nella pipeline, fare clic sulla scheda Input o Output e aggiungere una variabile immettendo il simbolo di dollaro $ e un'espressione. Ad esempio, questo parametro viene utilizzato come input di attività che richiama un URL: ${Stage0.Task3.input.URL}.

Il formato delle associazioni di variabili utilizza componenti della sintassi denominati ambiti (scope) e chiavi (key). SCOPE definisce il contesto come input o output e KEY definisce i dettagli. Nell'esempio di parametro ${Stage0.Task3.input.URL}, input è il componente SCOPE e l'URL è il componente KEY.

Le proprietà di output di qualsiasi attività possono essere risolte in un numero qualsiasi di livelli nidificati di binding di variabili.

Per ulteriori informazioni sull'utilizzo delle associazioni delle variabili nelle pipeline, vedere Come utilizzare i binding delle variabili nelle pipeline di Code Stream.

Utilizzo delle espressioni di dollaro con gli ambiti e le chiavi per associare le attività della pipeline

È possibile associare le attività della pipeline utilizzando le espressioni nelle variabili del simbolo di dollaro. Le espressioni vengono immesse come ${SCOPE.KEY.<PATH>}.

Per determinare il comportamento di un'attività di pipeline, in ogni espressione, SCOPE è il contesto utilizzato da Code Stream. L'ambito cerca un valore KEY, che definisce il dettaglio dell'azione eseguita dall'attività. Quando il valore di KEY è un oggetto nidificato, è possibile fornire un valore PATH facoltativo.

Questi esempi descrivono SCOPE e KEY, e illustrano come usarli nella pipeline.

Tabella 1. Utilizzo di SCOPE e KEY
SCOPE Scopo dell'espressione ed esempio KEY Come utilizzare SCOPE e KEY nella pipeline
input

Proprietà di input di una pipeline:

${input.input1}

Nome della proprietà di input

Per fare riferimento alla proprietà di input di una pipeline in un'attività, utilizzare il seguente formato:

tasks:
  mytask:
    type: REST
    input:
      url: ${input.url}
      action: get
input:
  url: https://www.vmware.com
output

Proprietà di output di una pipeline:

${output.output1}

Nome della proprietà di output

Per fare riferimento a una proprietà di output per l'invio di una notifica, utilizzare il seguente formato:

notifications:
 email:
 - endpoint: MyEmailEndpoint
   subject: "Deployment Successful"
   event: COMPLETED
   to:
   - [email protected]
   body: |
     Pipeline deployed the service successfully. Refer ${output.serviceURL}
task input

Input in un'attività:

${MY_STAGE.MY_TASK.input.SOMETHING}

Indica l'input di un'attività in una notifica

Quando viene avviato un processo Jenkins, può fare riferimento al nome del processo attivato dall'input dell'attività. In questo caso, inviare una notifica utilizzando il seguente formato:

notifications:
  email:
  - endpoint: MyEmailEndpoint
    stage: MY_STAGE
    task: MY_TASK
    subject: "Build Started"
    event: STARTED
    to:
    - [email protected]
    body: |
      Jenkins job ${MY_STAGE.MY_TASK.input.job} started for commit id ${input.COMMITID}.
task output

Output di un'attività:

${MY_STAGE.MY_TASK.output.SOMETHING}

Indica l'output di un'attività in un'attività successiva

Per fare riferimento all'output dell'attività della pipeline 1 nell'attività 2, utilizzare il seguente formato:

taskOrder:
  - task1
  - task2
tasks:
 task1:
   type: REST
   input:
     action: get
     url: https://www.example.org/api/status
 task2:
   type: REST
   input:
     action: post
     url: https://status.internal.example.org/api/activity
     payload: ${MY_STAGE.task1.output.responseBody}
var

Variabile:

${var.myVariable}

Fa riferimento alla variabile in un endpoint

Per fare riferimento a una variabile segreta in un endpoint per una password, utilizzare il seguente formato:

---
project: MyProject
kind: ENDPOINT
name: MyJenkinsServer
type: jenkins
properties:
 url: https://jenkins.example.com
 username: jenkinsUser
 password: ${var.jenkinsPassword}
var

Variabile:

${var.myVariable}

Fa riferimento alla variabile in una pipeline

Per fare riferimento alla variabile in un URL della pipeline, utilizzare il seguente formato:

tasks:
 task1:
  type: REST
  input:
   action: get
   url: ${var.MY_SERVER_URL}
task status

Stato di un'attività:

${MY_STAGE.MY_TASK.status}

${MY_STAGE.MY_TASK.statusMessage}

stage status

Stato di una fase:

${MY_STAGE.status}

${MY_STAGE.statusMessage}

Espressioni predefinite

È possibile utilizzare variabili con espressioni nella pipeline. In questo riepilogo sono incluse le espressioni predefinite che è possibile utilizzare.

Espressione Descrizione
${comments} Commenti forniti quando al momento della richiesta di esecuzione della pipeline.
${duration} Durata dell'esecuzione della pipeline.
${endTime} Ora di fine dell'esecuzione della pipeline in UTC, se conclusa.
${executedOn} Come l'ora iniziale, l'ora di inizio dell'esecuzione della pipeline in UTC.
${executionId} ID dell'esecuzione della pipeline.
${executionUrl} URL che passa all'esecuzione della pipeline nell'interfaccia utente.
${name} Nome della pipeline.
${requestBy} Nome dell'utente che ha richiesto l'esecuzione.
${stageName} Nome della fase corrente, quando utilizzato nell'ambito di una fase.
${startTime} Ora di inizio dell'esecuzione della pipeline in UTC.
${status} Stato dell'esecuzione.
${statusMessage} Messaggio di stato dell'esecuzione della pipeline.
${taskName} Nome dell'attività corrente, quando utilizzata in un input o una notifica di attività.

Utilizzo di SCOPE e KEY nelle attività della pipeline

È possibile utilizzare espressioni con una qualsiasi delle attività della pipeline supportate. In questi esempi viene illustrato come definire SCOPE e KEY, quindi confermare la sintassi. Gli esempi di codice utilizzano MY_STAGE e MY_TASK come nomi della fase e dell'attività della pipeline.

Per ulteriori informazioni sulle attività disponibili, vedere Tipi di attività disponibili in Code Stream.

Tabella 2. Attività di gating
Attività Scope Key Come utilizzare SCOPE e KEY nell'attività
Operazione utente
Input

summary: riepilogo della richiesta per Operazione utente

description: descrizione della richiesta per Operazione utente

approvers: elenco degli indirizzi email degli approvatori, in cui ciascuna voce può essere una variabile con una virgola, oppure utilizzare un punto e virgola per gli indirizzi e-mail separati

approverGroups: elenco degli indirizzi del gruppo di approvatori per la piattaforma e l'identità

sendemail: facoltativamente, invia una notifica tramite e-mail su richiesta o una risposta quando è impostata su true

expirationInDays: numero di giorni che rappresenta l'ora di scadenza della richiesta

${MY_STAGE.MY_TASK.input.summary}

${MY_STAGE.MY_TASK.input.description}

${MY_STAGE.MY_TASK.input.approvers}

${MY_STAGE.MY_TASK.input.approverGroups}

${MY_STAGE.MY_TASK.input.sendemail}

${MY_STAGE.MY_TASK.input.expirationInDays}

Output

index: stringa esadecimale di sei cifre che rappresenta la richiesta

respondedBy: nome dell'account della persona che ha approvato/rifiutato l'operazione utente

respondedByEmail: indirizzo e-mail della persona che ha risposto

comments: commenti forniti durante la risposta

${MY_STAGE.MY_TASK.output.index}

${MY_STAGE.MY_TASK.output.respondedBy}

${MY_STAGE.MY_TASK.output.respondedByEmail}

${MY_STAGE.MY_TASK.output.comments}

Condizione
Input

condition: condizione da valutare. Quando la condizione viene valutata su true, contrassegna l'attività come completata, mentre le altre risposte non riescono a eseguire l'attività

${MY_STAGE.MY_TASK.input.condition}

Output

result: risultato dopo la valutazione

${MY_STAGE.MY_TASK.output.response}

Tabella 3. Attività della pipeline
Attività Scope Key Come utilizzare SCOPE e KEY nell'attività
Pipeline
Input

name: nome della pipeline da eseguire

inputProperties: proprietà di input da trasmettere all'esecuzione della pipeline nidificata

${MY_STAGE.MY_TASK.input.name}

${MY_STAGE.MY_TASK.input.inputProperties} # Fa riferimento a tutte le proprietà

${MY_STAGE.MY_TASK.input.inputProperties.input1} # Fa riferimento al valore di input1

Output

executionStatus: stato dell'esecuzione della pipeline

executionIndex: indice dell'esecuzione della pipeline

outputProperties: proprietà di output dell'esecuzione di una pipeline

${MY_STAGE.MY_TASK.output.executionStatus}

${MY_STAGE.MY_TASK.output.executionIndex}

${MY_STAGE.MY_TASK.output.outputProperties} # Fa riferimento a tutte le proprietà

${MY_STAGE.MY_TASK.output.outputProperties.output1} # Fa riferimento al valore di output1

Tabella 4. Automazione delle attività di integrazione continua
Attività Scope Key Come utilizzare SCOPE e KEY nell'attività
CI
Input

steps: un set di stringhe, che rappresentano i comandi da eseguire

export: le variabili di ambiente da conservare dopo l'esecuzione delle fasi

artifacts: percorsi degli artefatti da conservare in un percorso condiviso

process: set di elementi di configurazione per l'elaborazione JUnit, JaCoCo, Checkstyle, FindBugs

${MY_STAGE.MY_TASK.input.steps}

${MY_STAGE.MY_TASK.input.export}

${MY_STAGE.MY_TASK.input.artifacts}

${MY_STAGE.MY_TASK.input.process}

${MY_STAGE.MY_TASK.input.process[0].path} # Fa riferimento al percorso della prima configurazione

Output

exports: coppia chiave-valore, che rappresenta le variabili di ambiente esportate dal valore export di input

artifacts: percorso degli artefatti conservati correttamente

processResponse: set di risultati elaborati per l'input process

${MY_STAGE.MY_TASK.output.exports} # Fa riferimento a tutte le esportazioni

${MY_STAGE.MY_TASK.output.exports.myvar} # Fa riferimento al valore di myvar

${MY_STAGE.MY_TASK.output.artifacts}

${MY_STAGE.MY_TASK.output.processResponse}

${MY_STAGE.MY_TASK.output.processResponse[0].result} # Risultato della prima configurazione del processo

Personalizzato
Input

name: nome dell'integrazione personalizzata

version: una versione dell'integrazione personalizzata, rilasciata oppure obsoleta

properties: proprietà da inviare all'integrazione personalizzata

${MY_STAGE.MY_TASK.input.name}

${MY_STAGE.MY_TASK.input.version}

${MY_STAGE.MY_TASK.input.properties} # Fa riferimento a tutte le proprietà

${MY_STAGE.MY_TASK.input.properties.property1} # Fa riferimento al valore di property1

Output

properties: proprietà di output dalla risposta di integrazione personalizzata

${MY_STAGE.MY_TASK.output.properties} # Fa riferimento a tutte le proprietà

${MY_STAGE.MY_TASK.output.properties.property1} # Fa riferimento al valore di property1

Tabella 5. Automazione delle attività di distribuzione continua: modello cloud
Attività Scope Key Come utilizzare SCOPE e KEY nell'attività
Modello cloud
Input

action: uno di createDeployment, updateDeployment, deleteDeployment o rollbackDeployment

blueprintInputParams: utilizzato per le azioni crea distribuzione e aggiorna distribuzione

allowDestroy: le macchine possono essere distrutte nel processo di distribuzione dell'aggiornamento.

CREATE_DEPLOYMENT

  • blueprintName: nome del modello di cloud
  • blueprintVersion: versione del modello cloud

OPPURE

  • fileUrl: URL del codice YAML del modello cloud remoto, dopo aver selezionato un server GIT.

UPDATE_DEPLOYMENT

Una di queste combinazioni:

  • blueprintName: nome del modello di cloud
  • blueprintVersion: versione del modello cloud

OPPURE

  • fileUrl: URL del codice YAML del modello cloud remoto, dopo aver selezionato un server GIT.

------

  • deploymentId: ID della distribuzione

OPPURE

  • deploymentName: nome della distribuzione

------

DELETE_DEPLOYMENT

  • deploymentId: ID della distribuzione

OPPURE

  • deploymentName: nome della distribuzione

ROLLBACK_DEPLOYMENT

Una di queste combinazioni:

  • deploymentId: ID della distribuzione

OPPURE

  • deploymentName: nome della distribuzione

------

  • blueprintName: nome del modello di cloud
  • rollbackVersion: versione in cui eseguire il rollback
Output

Parametri che possono essere associati ad altre attività o all'output di una pipeline:

  • È possibile accedere al nome della distribuzione come ${Stage0.Task0.output.deploymentName}
  • È possibile accedere all'ID della distribuzione come ${Stage0.Task0.output.deploymentId}
  • Dettagli distribuzione è un oggetto complesso ed è possibile accedere ai dettagli interni utilizzando i risultati JSON.

Per accedere a qualsiasi proprietà, utilizzare l'operatore punto per seguire la gerarchia JSON. Ad esempio, per accedere all'indirizzo della risorsa Cloud_Machine_1[0], il binding $ è:

${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].address}

Analogamente, per la caratteristica, il binding $ è:

${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].flavor}

Nell'interfaccia utente di Code Stream, è possibile ottenere i binding $ per qualsiasi proprietà.

  1. Nell'area della proprietà di output dell'attività, fare clic su VISUALIZZA JSON DI OUTPUT.
  2. Per trovare il binding $, immettere una proprietà qualsiasi.
  3. Fare clic sull'icona di ricerca, che mostra il binding $ corrispondente.

Output JSON di esempio:

L'output JSON include un'opzione Trova percorso che consente di cercare termini come indirizzo e Code Stream mostra la definizione completa per il binding.

Oggetto dettagli della distribuzione di esempio:

{
	"id": "6a031f92-d0fa-42c8-bc9e-3b260ee2f65b",
	"name": "deployment_6a031f92-d0fa-42c8-bc9e-3b260ee2f65b",
	"description": "Pipeline Service triggered operation",
	"orgId": "434f6917-4e34-4537-b6c0-3bf3638a71bc",
	"blueprintId": "8d1dd801-3a32-4f3b-adde-27f8163dfe6f",
	"blueprintVersion": "1",
	"createdAt": "2020-08-27T13:50:24.546215Z",
	"createdBy": "[email protected]",
	"lastUpdatedAt": "2020-08-27T13:52:50.674957Z",
	"lastUpdatedBy": "[email protected]",
	"inputs": {},
	"simulated": false,
	"projectId": "267f8448-d26f-4b65-b310-9212adb3c455",
	"resources": {
		"Cloud_Machine_1[0]": {
			"id": "/resources/compute/1606fbcd-40e5-4edc-ab85-7b559aa986ad",
			"name": "Cloud_Machine_1[0]",
			"powerState": "ON",
			"address": "10.108.79.33",
			"resourceLink": "/resources/compute/1606fbcd-40e5-4edc-ab85-7b559aa986ad",
			"componentTypeId": "Cloud.vSphere.Machine",
			"endpointType": "vsphere",
			"resourceName": "Cloud_Machine_1-mcm110615-146929827053",
			"resourceId": "1606fbcd-40e5-4edc-ab85-7b559aa986ad",
			"resourceDescLink": "/resources/compute-descriptions/1952d1d3-15f0-4574-ae42-4fbf8a87d4cc",
			"zone": "Automation / Vms",
			"countIndex": "0",
			"image": "ubuntu",
			"count": "1",
			"flavor": "small",
			"region": "MYBU",
			"_clusterAllocationSize": "1",
			"osType": "LINUX",
			"componentType": "Cloud.vSphere.Machine",
			"account": "bha"
		}
	},
	"status": "CREATE_SUCCESSFUL",
	"deploymentURI": "https://api.yourenv.com/automation-ui/#/deployment-ui;ash=/deployment/6a031f92-d0fa-42c8-bc9e-3b260ee2f65b"
}
Tabella 6. Automazione delle attività di distribuzione continua: Kubernetes
Attività Scope Key Come utilizzare SCOPE e KEY nell'attività
Kubernetes
Input

action: uno di GET, CREATE, APPLY, DELETE, ROLLBACK

  • timeout: timeout generale per qualsiasi azione
  • filterByLabel: etichetta aggiuntiva in base a cui applicare il filtro per l'azione GET utilizzando labelSelector di K8S

GET, CREATE, DELETE, APPLY

  • yaml: YAML inline da elaborare e inviare a Kubernetes
  • parameters: coppia KEY, VALUE. Sostituire $$KEY con VALUE nell'area di input di YAML inline
  • filePath: percorso relativo dall'endpoint Git di SCM, se specificato, da cui recuperare YAML
  • scmConstants: coppia KEY, VALUE - Sostituire $${KEY} con VALUE in YAML recuperato da SCM.
  • continueOnConflict: quando è impostata su true, se è già presente una risorsa, l'attività continua.

ROLLBACK

  • resourceType: tipo di risorsa da sottoporre a rollback
  • resourceName: nome della risorsa da sottoporre a rollback
  • namespace: spazio dei nomi in cui deve essere eseguito il rollback
  • revision: revisione in cui eseguire il rollback

${MY_STAGE.MY_TASK.input.action} # Determina l'azione da eseguire.

${MY_STAGE.MY_TASK.input.timeout}

${MY_STAGE.MY_TASK.input.filterByLabel}

${MY_STAGE.MY_TASK.input.yaml}

${MY_STAGE.MY_TASK.input.parameters}

${MY_STAGE.MY_TASK.input.filePath}

${MY_STAGE.MY_TASK.input.scmConstants}

${MY_STAGE.MY_TASK.input.continueOnConflict}

${MY_STAGE.MY_TASK.input.resourceType}

${MY_STAGE.MY_TASK.input.resourceName}

${MY_STAGE.MY_TASK.input.namespace}

${MY_STAGE.MY_TASK.input.revision}

Output

response: acquisisce l'intera risposta

response.<RESOURCE>: la risorsa corrisponde a configMaps, deployments, endpoints, ingresses, jobs, namespaces, pods, replicaSets, replicationControllers, secrets, services, statefulSets, nodes, loadBalancers.

response.<RESOURCE>.<KEY>: la chiave corrisponde a uno dei valori apiVersion, kind, metadata e spec

${MY_STAGE.MY_TASK.output.response}

${MY_STAGE.MY_TASK.output.response.}

Tabella 7. Integrare applicazioni di sviluppo, test e distribuzione
Attività Scope Key Come utilizzare SCOPE e KEY nell'attività
Bamboo
Input

plan: nome del piano

planKey: chiave del piano

variables: variabili da trasmettere al piano

parameters: parametri da trasmettere al piano

${MY_STAGE.MY_TASK.input.plan}

${MY_STAGE.MY_TASK.input.planKey}

${MY_STAGE.MY_TASK.input.variables}

${MY_STAGE.MY_TASK.input.parameters} # Fa riferimento a tutti i parametri

${MY_STAGE.MY_TASK.input.parameters.param1} # Fa riferimento al valore di param1

Output

resultUrl: URL della creazione risultante

buildResultKey: chiave della creazione risultante

buildNumber: numero della creazione

buildTestSummary: riepilogo dei test eseguiti

successfulTestCount: risultato del test trasmesso

failedTestCount: risultato del test non riuscito

skippedTestCount: risultato del test ignorato

artifacts: artefatti dalla creazione

${MY_STAGE.MY_TASK.output.resultUrl}

${MY_STAGE.MY_TASK.output.buildResultKey}

${MY_STAGE.MY_TASK.output.buildNumber}

${MY_STAGE.MY_TASK.output.buildTestSummary} # Fa riferimento a tutti i risultati

${MY_STAGE.MY_TASK.output.successfulTestCount} # Fa riferimento al numero di test specifico

${MY_STAGE.MY_TASK.output.buildNumber}

Jenkins
Input

job: nome del processo Jenkins

parameters: parametri da trasmettere al processo

${MY_STAGE.MY_TASK.input.job}

${MY_STAGE.MY_TASK.input.parameters} # Fa riferimento a tutti i parametri

${MY_STAGE.MY_TASK.input.parameters.param1} # Fa riferimento al valore di un parametro

Output

job: nome del processo Jenkins

jobId: ID del processo risultante, ad esempio 1234

jobStatus: stato in Jenkins

jobResults: raccolta dei risultati di test/code coverage

jobUrl: URL del processo eseguito risultante

${MY_STAGE.MY_TASK.output.job}

${MY_STAGE.MY_TASK.output.jobId}

${MY_STAGE.MY_TASK.output.jobStatus}

${MY_STAGE.MY_TASK.output.jobResults} # Fa riferimento a tutti i risultati

${MY_STAGE.MY_TASK.output.jobResults.junitResponse} # Fa riferimento ai risultati di JUnit

${MY_STAGE.MY_TASK.output.jobResults.jacocoRespose} # Fa riferimento ai risultati di JaCoCo

${MY_STAGE.MY_TASK.output.jobUrl}

TFS
Input

projectCollection: raccolta di progetti da TFS

teamProject: progetto selezionato dalla raccolta disponibile

buildDefinitionId: ID di definizione della creazione da eseguire

${MY_STAGE.MY_TASK.input.projectCollection}

${MY_STAGE.MY_TASK.input.teamProject}

${MY_STAGE.MY_TASK.input.buildDefinitionId}

Output

buildId: ID della creazione risultante

buildUrl: URL per visitare il riepilogo della creazione

logUrl: URL per visitare i registri

dropLocation: posizione di rilascio degli artefatti, se presenti

${MY_STAGE.MY_TASK.output.buildId}

${MY_STAGE.MY_TASK.output.buildUrl}

${MY_STAGE.MY_TASK.output.logUrl}

${MY_STAGE.MY_TASK.output.dropLocation}

vRO
Input

workflowId: ID del workflow da eseguire

parameters: parametri da trasmettere al workflow

${MY_STAGE.MY_TASK.input.workflowId}

${MY_STAGE.MY_TASK.input.parameters}

Output

workflowExecutionId: ID dell'esecuzione del workflow

properties: proprietà di output dall'esecuzione del workflow

${MY_STAGE.MY_TASK.output.workflowExecutionId}

${MY_STAGE.MY_TASK.output.properties}

Tabella 8. Integrare altre applicazioni tramite un'API
Attività Scope Key Come utilizzare SCOPE e KEY nell'attività
REST
Input

url: URL da chiamare

action: metodo HTTP da utilizzare

headers: intestazioni HTTP da trasmettere

payload: payload della richiesta

fingerprint: l'impronta digitale da abbinare per un URL HTTPS

allowAllCerts: se impostata su true, può essere qualsiasi certificato con un URL di HTTPS

${MY_STAGE.MY_TASK.input.url}

${MY_STAGE.MY_TASK.input.action}

${MY_STAGE.MY_TASK.input.headers}

${MY_STAGE.MY_TASK.input.payload}

${MY_STAGE.MY_TASK.input.fingerprint}

${MY_STAGE.MY_TASK.input.allowAllCerts}

Output

responseCode: codice di risposta HTTP

responseHeaders: intestazioni di risposta HTTP

responseBody: formato stringa della risposta ricevuta

responseJson: risposta attraversabile se content-type è application/json

${MY_STAGE.MY_TASK.output.responseCode}

${MY_STAGE.MY_TASK.output.responseHeaders}

${MY_STAGE.MY_TASK.output.responseHeaders.header1} # Fa riferimento all'intestazione della risposta 'header1'

${MY_STAGE.MY_TASK.output.responseBody}

${MY_STAGE.MY_TASK.output.responseJson} # Fa riferimento alla risposta come JSON

${MY_STAGE.MY_TASK.output.responseJson.a.b.c} # Fa riferimento all'oggetto nidificato che segue il percorso a. b. c JSON in risposta

Polling
Input

url: URL da chiamare

headers: intestazioni HTTP da trasmettere

exitCriteria: criteri da soddisfare affinché l'attività abbia esito positivo o negativo. Una coppia chiave-valore di 'success' → Expression, 'failure' → Expression

pollCount: numero di iterazioni da eseguire. Un amministratore di Code Stream può impostare il conteggio di polling fino a un massimo di 10000.

pollIntervalSeconds: numero di secondi da attendere tra ciascuna iterazione. L'intervallo di polling deve essere maggiore o uguale a 60 secondi.

ignoreFailure: quando impostata su true, ignora gli errori di risposta intermedi

fingerprint: l'impronta digitale da abbinare per un URL HTTPS

allowAllCerts: se impostata su true, può essere qualsiasi certificato con un URL di HTTPS

${MY_STAGE.MY_TASK.input.url}

${MY_STAGE.MY_TASK.input.headers}

${MY_STAGE.MY_TASK.input.exitCriteria}

${MY_STAGE.MY_TASK.input.pollCount}

${MY_STAGE.MY_TASK.input.pollIntervalSeconds}

${MY_STAGE.MY_TASK.input.ignoreFailure}

${MY_STAGE.MY_TASK.input.fingerprint}

${MY_STAGE.MY_TASK.input.allowAllCerts}

Output

responseCode: codice di risposta HTTP

responseBody: formato stringa della risposta ricevuta

responseJson: risposta attraversabile se content-type è application/json

${MY_STAGE.MY_TASK.output.responseCode}

${MY_STAGE.MY_TASK.output.responseBody}

${MY_STAGE.MY_TASK.output.responseJson} # Refer to response as JSON

Tabella 9. Eseguire script remoti e definiti dall'utente
Attività Scope Key Come utilizzare SCOPE e KEY nell'attività
PowerShell

Per eseguire un'attività di PowerShell, è necessario:

  • Avere una sessione attiva in un host Windows remoto.
  • Se si desidera immettere un comando PowerShell base64, calcolare prima la lunghezza complessiva del comando. Per i dettagli, vedere Tipi di attività disponibili in Code Stream.
Input

host: indirizzo IP o nome host della macchina

username: nome utente da utilizzare da utilizzare per la connessione

password: password da utilizzare per la connessione

useTLS: tentativo di connessione https

trustCert: quando è impostata su true, considera attendibili i certificati autofirmati

script: script da eseguire

workingDirectory: percorso della directory a cui passare prima di eseguire lo script

environmentVariables: una coppia chiave-valore della variabile di ambiente da impostare

arguments: argomenti di trasmettere allo script

${MY_STAGE.MY_TASK.input.host}

${MY_STAGE.MY_TASK.input.username}

${MY_STAGE.MY_TASK.input.password}

${MY_STAGE.MY_TASK.input.useTLS}

${MY_STAGE.MY_TASK.input.trustCert}

${MY_STAGE.MY_TASK.input.script}

${MY_STAGE.MY_TASK.input.workingDirectory}

${MY_STAGE.MY_TASK.input.environmentVariables}

${MY_STAGE.MY_TASK.input.arguments}

Output

response: contenuto del file $SCRIPT_RESPONSE_FILE

responseFilePath: valore di $SCRIPT_RESPONSE_FILE

exitCode: codice di uscita del processo

logFilePath: percorso del file che contiene stdout

errorFilePath: percorso del file che contiene stderr

${MY_STAGE.MY_TASK.output.response}

${MY_STAGE.MY_TASK.output.responseFilePath}

${MY_STAGE.MY_TASK.output.exitCode}

${MY_STAGE.MY_TASK.output.logFilePath}

${MY_STAGE.MY_TASK.output.errorFilePath}

SSH
Input

host: indirizzo IP o nome host della macchina

username: nome utente da utilizzare da utilizzare per la connessione

password: password da utilizzare per la connessione (facoltativamente può utilizzare privateKey)

privateKey: PrivateKey da utilizzare per la connessione

passphrase: passphrase facoltativa per sbloccare privateKey

script: script da eseguire

workingDirectory: percorso della directory a cui passare prima di eseguire lo script

environmentVariables: coppia chiave-valore della variabile di ambiente da impostare

${MY_STAGE.MY_TASK.input.host}

${MY_STAGE.MY_TASK.input.username}

${MY_STAGE.MY_TASK.input.password}

${MY_STAGE.MY_TASK.input.privateKey}

${MY_STAGE.MY_TASK.input.passphrase}

${MY_STAGE.MY_TASK.input.script}

${MY_STAGE.MY_TASK.input.workingDirectory}

${MY_STAGE.MY_TASK.input.environmentVariables}

Output

response: contenuto del file $SCRIPT_RESPONSE_FILE

responseFilePath: valore di $SCRIPT_RESPONSE_FILE

exitCode: codice di uscita del processo

logFilePath: percorso del file che contiene stdout

errorFilePath: percorso del file che contiene stderr

${MY_STAGE.MY_TASK.output.response}

${MY_STAGE.MY_TASK.output.responseFilePath}

${MY_STAGE.MY_TASK.output.exitCode}

${MY_STAGE.MY_TASK.output.logFilePath}

${MY_STAGE.MY_TASK.output.errorFilePath}

Come utilizzare un binding di variabili tra le attività

In questo esempio viene illustrato come utilizzare le associazioni di variabili nelle attività della pipeline.

Tabella 10. Formati di sintassi di esempio
Esempio Sintassi
Per utilizzare un valore di output dell'attività per le notifiche della pipeline e le proprietà di output della pipeline ${<Stage Key>.<Task Key>.output.<Task output key>}
Per fare riferimento al valore di output dell'attività precedente come input per l'attività corrente ${<Previous/Current Stage key>.<Previous task key not in current Task group>.output.<task output key>}

Ulteriori informazioni

Per ulteriori informazioni sulle variabili di binding nelle attività, vedere: