Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Um einen AWS CloudTrail Trail zu erstellen und die Protokollierung zu aktivieren
Um mit dem einen Trail AWS CLI zu erstellen, rufen Sie den create-trail Befehl auf und geben Sie Folgendes an:
-
Den Trail-Namen.
-
Der Bucket, auf den Sie bereits die Bucket-Richtlinie für AWS CloudTrail angewendet haben.
Weitere Informationen finden Sie unter Erstellen eines Pfads mit der AWS Befehlszeilenschnittstelle.
-
Rufen Sie den Befehl create-trail auf und beziehen Sie die Parameter
--name
und--s3-bucket-name
ein.Warum nehme ich diese Änderung vor? Dadurch wird der für Ihren S3-Quell-Bucket erforderliche CloudTrail-Trail erstellt.
Der folgende Befehl verwendet
--name
und--s3-bucket-name
zum Erstellen eines Trails mit dem Namenmy-trail
und eines Buckets mit dem Namenamzn-s3-demo-source-bucket
.aws cloudtrail create-trail --name my-trail --s3-bucket-name amzn-s3-demo-source-bucket
-
Rufen Sie den Befehl start-logging auf und beziehen Sie den
--name
-Parameter ein.Warum nehme ich diese Änderung vor? Dieser Befehl startet die CloudTrail Protokollierung für Ihren Quell-Bucket und sendet Ereignisse an EventBridge.
Beispiel:
Im folgenden Befehl wird
--name
verwendet, um die Protokollierung auf einem Trail mit der Bezeichnungmy-trail
zu starten.aws cloudtrail start-logging --name my-trail
-
Rufen Sie den Befehl put-event-selectors auf und beziehen Sie die Parameter
--trail-name
und--event-selectors
ein. Verwenden Sie Event-Selektoren, um anzugeben, dass Ihr Trail Datenereignisse für Ihren Quell-Bucket protokollieren und die Ereignisse an die EventBridge Regel senden soll.Warum nehme ich diese Änderung vor? Dieser Befehl filtert Ereignisse.
Beispiel:
Im folgenden Beispielbefehl werden
--trail-name
und--event-selectors
verwendet, um die Verwaltung von Datenereignissen für einen Quell-Bucket und einen Präfix namensamzn-s3-demo-source-bucket/myFolder
anzugeben.aws cloudtrail put-event-selectors --trail-name
my-trail
--event-selectors '[{ "ReadWriteType": "WriteOnly", "IncludeManagementEvents":false, "DataResources": [{ "Type": "AWS::S3::Object", "Values": ["arn:aws:s3:::amzn-s3-demo-source-bucket/myFolder/file.zip"] }] }]'
Um eine EventBridge Regel mit Amazon S3 als Ereignisquelle und CodePipeline als Ziel zu erstellen und die Berechtigungsrichtlinie anzuwenden
-
Erteilen Sie Berechtigungen EventBridge , die CodePipeline zum Aufrufen der Regel verwendet werden können. Weitere Informationen finden Sie unter Verwenden ressourcenbasierter Richtlinien für Amazon. EventBridge
-
Verwenden Sie das folgende Beispiel, um die Vertrauensrichtlinie zu erstellen, damit EventBridge Sie die Servicerolle übernehmen können. Geben Sie ihr den Namen
trustpolicyforEB.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Verwenden Sie den folgenden Befehl, um die
Role-for-MyRule
-Rolle zu erstellen und die Vertrauensrichtlinie anzufügen.Warum nehme ich diese Änderung vor? Durch das Hinzufügen dieser Vertrauensrichtlinie zur Rolle werden Berechtigungen für erstellt EventBridge.
aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json
-
Erstellen Sie die JSON-Datei der Berechtigungsrichtlinie wie hier für die Pipeline mit dem Namen
MyFirstPipeline
gezeigt. Geben Sie der Berechtigungsrichtlinie den NamenpermissionspolicyforEB.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:80398EXAMPLE:MyFirstPipeline" ] } ] }
-
Führen Sie den folgenden Befehl aus, um der erstellten
Role-for-MyRule
-Rolle die neueCodePipeline-Permissions-Policy-for-EB
-Berechtigungsrichtlinie anzufügen.aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforEB.json
-
-
Rufen Sie den Befehl „put-rule“ auf und beziehen Sie die Parameter „
--name
“, „--event-pattern
“ und „--role-arn
“ ein.Mit dem folgenden Beispielbefehl wird eine Regel mit dem Namen „
MyS3SourceRule
“ erstellt.aws events put-rule --name "MyS3SourceRule" --event-pattern "{\"source\":[\"aws.s3\"],\"detail-type\":[\"AWS API Call via CloudTrail\"],\"detail\":{\"eventSource\":[\"s3.amazonaws.com\"],\"eventName\":[\"CopyObject\",\"PutObject\",\"CompleteMultipartUpload\"],\"requestParameters\":{\"bucketName\":[\"amzn-s3-demo-source-bucket\"],\"key\":[\"my-key\"]}}} --role-arn "arn:aws:iam::
ACCOUNT_ID
:role/Role-for-MyRule" -
Um das Objekt CodePipeline als Ziel hinzuzufügen, rufen Sie den put-targets Befehl auf und geben Sie die
--targets
Parameter--rule
und an.Der folgende Befehl legt fest, dass für die Regel mit dem Namen
MyS3SourceRule
die Ziel-Id
aus der Nummer 1 besteht. Dies bedeutet, dass in einer Liste mit Zielen für die Regel dies Ziel 1 ist. Der Befehl gibt zudem ein BeispielARN
für die Pipeline an. Die Pipeline startet, wenn Änderungen im Repository auftreten.aws events put-targets --rule MyS3SourceRule --targets Id=1,Arn=arn:aws:codepipeline:us-west-2:80398EXAMPLE:TestPipeline
-
(Optional) Um einen Eingangstransformator mit Quellüberschreibungen für eine bestimmte Bild-ID zu konfigurieren, verwenden Sie den folgenden JSON-Code in Ihrem CLI-Befehl. Im folgenden Beispiel wird eine Überschreibung konfiguriert, wobei:
-
Source
In diesem Beispiel handelt es sich um den dynamischen Wert, der bei der Pipelineerstellung definiert wurde und nicht aus dem Quellereignis abgeleitet wurde.actionName
-
S3_OBJECT_VERSION_ID
In diesem Beispiel handelt es sich um den dynamischen Wert, der bei der Pipelineerstellung definiert wurde und nicht vom Quellereignis abgeleitet wurde.revisionType
-
In diesem Beispiel wird <
revisionValue
> von der Quellereignisvariablen abgeleitet.revisionValue
{ "Rule": "my-rule", "Targets": [ { "Id": "MyTargetId", "Arn": "ARN", "InputTransformer": { "InputPathsMap": { "revisionValue": "$.detail.object.version-id" }, "InputTemplate": { "sourceRevisions": { "actionName": "
Source
", "revisionType": "S3_OBJECT_VERSION_ID
", "revisionValue": "<revisionValue
>" } } } } ] } -
Um den PollForSourceChanges Parameter Ihrer Pipeline zu bearbeiten
Wichtig
Wenn Sie eine Pipeline mit dieser Methode erstellen, ist der Parameter PollForSourceChanges
standardmäßig „true“, wenn er nicht ausdrücklich auf „false“ gesetzt wird. Wenn Sie ereignisbasierte Erkennung hinzufügen, müssen Sie den Parameter Ihrer Ausgabe hinzufügen und Ihn auf „false“ setzen, um die Abfrage zu deaktivieren. Andernfalls wird Ihre Pipeline bei einer einzigen Quelländerung zweimal gestartet. Details hierzu finden Sie unter Gültige Einstellungen für den PollForSourceChanges Parameter.
-
Führen Sie den Befehl get-pipeline zum Kopieren der Pipeline-Struktur in eine JSON-Datei aus. Geben Sie für eine Pipeline mit dem Namen
MyFirstPipeline
den folgenden Befehl ein:aws codepipeline get-pipeline --name
MyFirstPipeline
>pipeline.json
Dieser Befehl gibt nichts zurück. Die erstellte Datei sollte jedoch in dem Verzeichnis auftauchen, in dem Sie den Befehl ausgeführt haben.
-
Öffnen Sie die JSON-Datei in einem Texteditor und bearbeiten Sie die Quellphase, indem Sie den Parameter
PollForSourceChanges
für einen Bucket mit dem Namenamzn-s3-demo-source-bucket
infalse
ändern wie in diesem Beispiel gezeigt.Warum nehme ich diese Änderung vor? Durch Festlegen dieses Parameters in
false
werden periodische Prüfungen deaktiviert. Sie können daher nur die ereignisbasierte Erkennung von Änderungen verwenden."configuration": { "S3Bucket": "amzn-s3-demo-source-bucket",
"PollForSourceChanges": "false",
"S3ObjectKey": "index.zip" }, -
Wenn Sie mit einer Pipeline-Struktur arbeiten, die Sie mit dem Befehl get-pipeline abgerufen haben, müssen Sie die
metadata
-Zeilen aus der JSON-Datei entfernen. Andernfalls kann der update-pipeline-Befehl sie nicht nutzen. Entfernen Sie die"metadata": { }
-Zeilen und die Felder"created"
,"pipelineARN"
und"updated"
.Entfernen Sie z. B. die folgenden Zeilen aus der Struktur:
"metadata": { "pipelineArn": "arn:aws:codepipeline:
region
:account-ID
:pipeline-name
", "created": "date
", "updated": "date
" },Speichern Sie die Datei.
-
Um Ihre Änderungen zu übernehmen, führen Sie den Befehl update-pipeline aus und geben Sie die Pipeline-JSON-Datei an:
Wichtig
Achten Sie darauf, dass
file://
vor dem Dateinamen steht. Dies ist bei diesem Befehl erforderlich.aws codepipeline update-pipeline --cli-input-json file://
pipeline.json
Dieser Befehl gibt die gesamte Struktur der bearbeiteten Pipeline zurück.
Anmerkung
Der Befehl update-pipeline stoppt die Pipeline. Wenn eine Revision über die Pipeline ausgeführt wird, wenn Sie den Befehl update-pipeline ausführen, wird diese Ausführung gestoppt. Sie müssen die Ausführung der Pipeline manuell starten, um die Revision über die aktualisierte Pipeline auszuführen. Verwenden Sie den start-pipeline-execution-Befehl, um Ihre Pipeline manuell zu starten.