Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Crea una EventBridge regola per una CodeCommit fonte (CLI)
Chiama il comando put-rule, specificando:
-
Un nome che identifica in modo univoco la regola che stai creando. Questo nome deve essere univoco in tutte le pipeline che crei e CodePipeline associate al tuo AWS account.
-
Il modello eventi per i campi di origine e di dettaglio utilizzati dalla regola. Per ulteriori informazioni, consulta Amazon EventBridge e Event Patterns.
Per creare una EventBridge regola con CodeCommit come origine dell'evento e CodePipeline come destinazione
-
Aggiungi le autorizzazioni EventBridge da utilizzare per CodePipeline richiamare la regola. Per ulteriori informazioni, consulta Utilizzo delle politiche basate sulle risorse per Amazon. EventBridge
-
Usa l'esempio seguente per creare la politica di fiducia che consente di EventBridge assumere il ruolo di servizio. Denomina la policy di attendibilità
trustpolicyforEB.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Utilizza il seguente comando per creare il ruolo
Role-for-MyRule
e collegare la policy di attendibilità.aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json
-
Create la politica di autorizzazioneJSON, come illustrato in questo esempio, per la pipeline denominata.
MyFirstPipeline
Denomina la policy delle autorizzazionipermissionspolicyforEB.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:80398EXAMPLE:MyFirstPipeline" ] } ] }
-
Utilizza il comando seguente per collegare la policy delle autorizzazioni
CodePipeline-Permissions-Policy-for-EB
al ruoloRole-for-MyRule
.Perché occorre apportare questa modifica? L'aggiunta di questa politica al ruolo crea le autorizzazioni per. EventBridge
aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforEB.json
-
-
Richiama il comando put-rule e includi i parametri
--name
,--event-pattern
e--role-arn
.Perché occorre apportare questa modifica? Questo comando consente a AWS CloudFormation di creare l'evento.
Il seguente comando di esempio crea una regola denominata
MyCodeCommitRepoRule
.aws events put-rule --name "MyCodeCommitRepoRule" --event-pattern "{\"source\":[\"aws.codecommit\"],\"detail-type\":[\"CodeCommit Repository State Change\"],\"resources\":[\"
repository-ARN
\"],\"detail\":{\"referenceType\":[\"branch\"],\"referenceName\":[\"main
\"]}}" --role-arn "arn:aws:iam::ACCOUNT_ID
:role/Role-for-MyRule" -
Per aggiungerlo CodePipeline come destinazione, chiamate il put-targets comando e includete i seguenti parametri:
-
Il parametro
--rule
viene utilizzato con ilrule_name
che hai creato utilizzando put-rule. -
Il parametro
--targets
viene utilizzato con l'Id
elenco della destinazione nell'elenco delle destinazioni e l'ARN
della pipeline di destinazione.
Il comando di esempio seguente specifica che per la regola denominata
MyCodeCommitRepoRule
, la destinazioneId
è composta dal numero uno, per indicare che in un elenco di destinazioni per la regola questa è la destinazione 1. Il comando di esempio specifica anche un esempio diARN
per la pipeline. La pipeline si avvia quando si verifica una modifica nel repository.aws events put-targets --rule MyCodeCommitRepoRule --targets Id=1,Arn=arn:aws:codepipeline:us-west-2:80398EXAMPLE:TestPipeline
-
Per modificare il parametro della PollForSourceChanges pipeline
Importante
Quando crei una pipeline con questo metodo, il parametro PollForSourceChanges
è preimpostato su "true" se non viene impostato esplicitamente su "false". Quando aggiungi il rilevamento delle modifiche basato su eventi, devi aggiungere il parametro all'output e impostarlo su "false" per disabilitare il polling. In caso contrario, la pipeline si avvia due volte per una singola modifica dell'origine. Per informazioni dettagliate, consultare Impostazioni valide per il PollForSourceChanges parametro.
-
Esegui il get-pipeline comando per copiare la struttura della pipeline in un JSON file. Ad esempio, per una pipeline denominata
MyFirstPipeline
, esegui il seguente comando:aws codepipeline get-pipeline --name
MyFirstPipeline
>pipeline.json
Questo comando non restituisce alcun valore, ma nella directory in cui è stato eseguito dovrebbe comparire il file creato.
-
Aprite il JSON file in qualsiasi editor di testo semplice e modificate lo stadio di origine cambiando il
PollForSourceChanges
parametro infalse
, come mostrato in questo esempio.Perché occorre apportare questa modifica? La modifica di questo parametro in
false
disattiva i controlli periodici, in modo che sia possibile utilizzare solo il rilevamento delle modifiche basato su eventi."configuration": {
"PollForSourceChanges": "false",
"BranchName": "main", "RepositoryName": "MyTestRepo" }, -
Se state lavorando con la struttura della pipeline recuperata utilizzando il get-pipeline comando, rimuovete le righe dal
metadata
file. JSON In caso contrario, il comando update-pipeline non è in grado di utilizzarlo. Rimuovi le righe"metadata": { }
e i campi"created"
,"pipelineARN"
e"updated"
.Ad esempio, rimuovere dalla struttura le seguenti righe:
"metadata": { "pipelineArn": "arn:aws:codepipeline:
region
:account-ID
:pipeline-name
", "created": "date
", "updated": "date
" },Salvare il file.
-
Per applicare le modifiche, esegui il update-pipeline comando, specificando il file della pipeline: JSON
Importante
Assicurarsi di includere
file://
prima del nome del file. Questo è obbligatorio in questo comando.aws codepipeline update-pipeline --cli-input-json file://
pipeline.json
Questo comando restituisce l'intera struttura della pipeline modificata.
Nota
Il comando update-pipeline arresta la pipeline. Se è in corso di elaborazione una versione durante l'esecuzione del comando update-pipeline, tale elaborazione viene arrestata. Per elaborare tale versione utilizzando la pipeline aggiornata, devi avviare manualmente la pipeline. Utilizza il comando
start-pipeline-execution
per avviare manualmente la pipeline.