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.
Mit Aktionstypen arbeiten
Aktionstypen sind vorkonfigurierte Aktionen, die Sie als Anbieter mithilfe eines der unterstützten Integrationsmodelle für Kunden erstellen. AWS CodePipeline
Sie können Aktionstypen anfordern, anzeigen und aktualisieren. Wenn der Aktionstyp für Ihr Konto als Eigentümer erstellt wurde, können Sie ihn verwenden, AWS CLI um die Eigenschaften und die Struktur Ihres Aktionstyps anzuzeigen oder zu aktualisieren. Wenn Sie der Anbieter oder Eigentümer des Aktionstyps sind, können Ihre Kunden die Aktion auswählen und sie ihren Pipelines hinzufügen, sobald sie verfügbar ist. CodePipeline
Anmerkung
Sie erstellen Aktionen custom im owner Feld, die mit einem Jobworker ausgeführt werden. Sie erstellen sie nicht mit einem Integrationsmodell. Hinweise zu benutzerdefinierten Aktionen finden Sie unterErstellen Sie eine benutzerdefinierte Aktion und fügen Sie sie hinzu in CodePipeline.
Komponenten vom Aktionstyp
Die folgenden Komponenten bilden einen Aktionstyp.
-
Aktionstyp-ID — Die ID besteht aus Kategorie, Besitzer, Anbieter und Version. Das folgende Beispiel zeigt eine Aktionstyp-ID mit einem Besitzer von
ThirdParty, einer Kategorie vonTest, einem NamenTestProvidereines Anbieters und einer Version von1.{ "Category": "Test", "Owner": "ThirdParty", "Provider": "TestProvider", "Version": "1" }, -
Executor-Konfiguration — Das Integrationsmodell oder die Action Engine, das bei der Erstellung der Aktion angegeben wurde. Wenn Sie den Executor für einen Aktionstyp angeben, wählen Sie einen von zwei Typen:
-
Lambda: Der Eigentümer des Aktionstyps schreibt die Integration als Lambda-Funktion, die immer dann aufgerufen wird, CodePipeline wenn ein Job für die Aktion verfügbar ist.
-
JobWorker: Der Eigentümer des Aktionstyps schreibt die Integration als Job-Worker, der in den Kunden-Pipelines nach verfügbaren Jobs fragt. Der Job-Worker führt dann den Job aus und sendet das Auftragsergebnis mithilfe CodePipeline CodePipeline von APIs an ihn zurück.
Anmerkung
Das Jobworker-Integrationsmodell ist nicht das bevorzugte Integrationsmodell.
-
-
Eingabe- und Ausgabeartefakte: Grenzwerte für die Artefakte, die der Eigentümer des Aktionstyps den Kunden der Aktion zuweist.
-
Berechtigungen: Die Berechtigungsstrategie, die Kunden festlegt, die auf den Aktionstyp des Drittanbieters zugreifen können. Die verfügbaren Berechtigungsstrategien hängen vom ausgewählten Integrationsmodell für den Aktionstyp ab.
-
URLs: Deep-Links zu Ressourcen, mit denen der Kunde interagieren kann, z. B. zur Konfigurationsseite des Eigentümers des Aktionstyps.
Themen
Fordern Sie einen Aktionstyp an
Wenn ein neuer CodePipeline Aktionstyp von einem Drittanbieter angefordert wird, wird der Aktionstyp für den Eigentümer des Aktionstyps erstellt CodePipeline, und der Eigentümer kann den Aktionstyp verwalten und anzeigen.
Ein Aktionstyp kann entweder eine private oder eine öffentliche Aktion sein. Wenn Ihr Aktionstyp erstellt wird, ist er privat. Um zu beantragen, dass ein Aktionstyp in eine öffentliche Aktion geändert wird, wenden Sie sich an das CodePipeline Serviceteam.
Bevor Sie Ihre Aktionsdefinitionsdatei, die Executor-Ressourcen und die Aktionstyp-Anfrage für das CodePipeline Team erstellen, müssen Sie ein Integrationsmodell auswählen.
Schritt 1: Wählen Sie Ihr Integrationsmodell
Wählen Sie Ihr Integrationsmodell aus und erstellen Sie dann die Konfiguration für dieses Modell. Nachdem Sie das Integrationsmodell ausgewählt haben, müssen Sie Ihre Integrationsressourcen konfigurieren.
-
Für das Lambda-Integrationsmodell erstellen Sie eine Lambda-Funktion und fügen Berechtigungen hinzu. Fügen Sie Ihrer Integrator-Lambda-Funktion Berechtigungen hinzu, um dem CodePipeline Dienst die Berechtigungen zu geben, ihn mithilfe des Dienstprinzips aufzurufen:. CodePipeline
codepipeline.amazonaws.com.rproxy.govskope.caDie Berechtigungen können mithilfe der Befehlszeile CloudFormation oder über die Befehlszeile hinzugefügt werden.-
Beispiel für das Hinzufügen von Berechtigungen mithilfe von CloudFormation:
CodePipelineLambdaBasedActionPermission: Type: 'AWS::Lambda::Permission' Properties: Action: 'lambda:invokeFunction' FunctionName: {"Fn::Sub": "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:function-name"} Principal: codepipeline.amazonaws.com
-
-
Für das Jobworker-Integrationsmodell erstellen Sie eine Integration mit einer Liste zulässiger Konten, in denen der Jobworker mithilfe der CodePipeline APIs nach Jobs fragt.
Schritt 2: Erstellen Sie eine Definitionsdatei für den Aktionstyp
Sie definieren einen Aktionstyp in einer Aktionstyp-Definitionsdatei mithilfe von JSON. In der Datei enthalten Sie die Aktionskategorie, das Integrationsmodell, das zur Verwaltung des Aktionstyps verwendet wird, und Konfigurationseigenschaften.
Anmerkung
Nachdem Sie eine öffentliche Aktion erstellt haben, können Sie die Aktionstypeigenschaft unter properties von optional bis nicht ändernrequired. Sie können das auch nicht ändernowner.
Weitere Informationen zu den Parametern der Aktionstyp-Definitionsdatei finden Sie unter ActionTypeDeclaration und UpdateActionType in der CodePipeline API-Referenz.
Die Aktionstyp-Definitionsdatei besteht aus acht Abschnitten:
-
description: Die Beschreibung für den Aktionstyp, der aktualisiert werden soll. -
executor: Informationen über den Executor für einen Aktionstyp, der mit einem unterstützten Integrationsmodell erstellt wurde, entweder oderLambda.job workerSie können je nachlambdaExecutorConfigurationExecutor-Typ nur entwederjobWorkerExecutorConfigurationoder angeben.-
configuration: Ressourcen für die Konfiguration des Aktionstyps, basierend auf dem ausgewählten Integrationsmodell. Verwenden Sie für das Lambda-Integrationsmodell den ARN der Lambda-Funktion. Verwenden Sie für das Jobworker-Integrationsmodell das Konto oder die Liste der Konten, von denen aus der Job Worker ausgeführt wird. -
jobTimeout: Der Timeout in Sekunden für den Job. Eine Aktionsausführung kann aus mehreren Jobs bestehen. Dies ist der Timeout für einen einzelnen Job und nicht für die gesamte Aktionsausführung.Anmerkung
Für das Lambda-Integrationsmodell beträgt der maximale Timeout 15 Minuten.
-
policyStatementsTemplate: Die Richtlinienerklärung, die die Berechtigungen im CodePipeline Kundenkonto angibt, die für die erfolgreiche Ausführung einer Aktion erforderlich sind. -
type: Das Integrationsmodell, das zum Erstellen und Aktualisieren des Aktionstyps verwendet wird, entwederLambdaoderJobWorker.
-
-
id: Die Kategorie, der Besitzer, der Anbieter und die Versions-ID für den Aktionstyp:-
category: Die Art der Aktion kann in der Phase ausgeführt werden: Quelle, Build, Deploy, Test, Invoke oder Approval. -
provider: Der Anbieter des aufgerufenen Aktionstyps, z. B. der Name des Anbieters, das Unternehmen oder das Produkt. Der Anbietername wird angegeben, wenn der Aktionstyp erstellt wird. -
owner: Der Ersteller des Aktionstyps, der aufgerufen wird:AWSoderThirdParty. -
version: Eine Zeichenfolge, die zur Versionierung des Aktionstyps verwendet wird. Setzen Sie für die erste Version die Versionsnummer auf 1.
-
-
inputArtifactDetails: Die Anzahl der Artefakte, die in der vorherigen Phase der Pipeline zu erwarten sind. -
outputArtifactDetails: Die Anzahl der Artefakte, die aufgrund des Ergebnisses der Aktionstyp-Phase zu erwarten sind. -
permissions: Details zur Identifizierung der Konten mit Berechtigungen zur Verwendung des Aktionstyps. -
properties: Die Parameter, die für die Ausführung Ihrer Projektaufgaben erforderlich sind.-
description: Die Beschreibung der Eigenschaft, die Benutzern angezeigt wird. -
optional: Ob die Konfigurationseigenschaft optional ist. -
noEcho: Ob der vom Kunden eingegebene Feldwert aus dem Protokoll weggelassen wird. Wenntrue, dann wird der Wert geschwärzt, wenn er mit einer GetPipeline API-Anfrage zurückgegeben wird. -
key: Ob die Konfigurationseigenschaft ein Schlüssel ist. -
queryable: Ob die Eigenschaft beim Polling verwendet wird. Ein Aktionstyp kann bis zu eine abfragbare Eigenschaft haben. Wenn dies der Fall ist, muss diese Eigenschaft erforderlich und nicht geheim sein. -
name: Der Eigenschaftsname, der Benutzern angezeigt wird.
-
-
urls: Eine Liste der URLs CodePipeline wird Ihren Benutzern angezeigt.-
entityUrlTemplate: URL zu den externen Ressourcen für den Aktionstyp, z. B. eine Konfigurationsseite. -
executionUrlTemplate: URL zu den Details für die letzte Ausführung der Aktion. -
revisionUrlTemplate: In der CodePipeline Konsole angezeigte URL zu der Seite, auf der Kunden die Konfiguration der externen Aktion aktualisieren oder ändern können. -
thirdPartyConfigurationUrl: URL einer Seite, auf der sich Benutzer für einen externen Dienst registrieren und die Erstkonfiguration der von diesem Dienst bereitgestellten Aktion durchführen können.
-
Der folgende Code zeigt ein Beispiel für eine Definitionsdatei für einen Aktionstyp.
{ "actionType": { "description": "string", "executor": { "configuration": { "jobWorkerExecutorConfiguration": { "pollingAccounts": [ "string" ], "pollingServicePrincipals": [ "string" ] }, "lambdaExecutorConfiguration": { "lambdaFunctionArn": "string" } }, "jobTimeout": number, "policyStatementsTemplate": "string", "type": "string" }, "id": { "category": "string", "owner": "string", "provider": "string", "version": "string" }, "inputArtifactDetails": { "maximumCount": number, "minimumCount": number }, "outputArtifactDetails": { "maximumCount": number, "minimumCount": number }, "permissions": { "allowedAccounts": [ "string" ] }, "properties": [ { "description": "string", "key": boolean, "name": "string", "noEcho": boolean, "optional": boolean, "queryable": boolean } ], "urls": { "configurationUrl": "string", "entityUrlTemplate": "string", "executionUrlTemplate": "string", "revisionUrlTemplate": "string" } } }
Schritt 3: Registrieren Sie Ihre Integration bei CodePipeline
Um Ihren Aktionstyp zu registrieren CodePipeline, wenden Sie sich mit Ihrer Anfrage an das CodePipeline Serviceteam.
Das CodePipeline Serviceteam registriert die Integration des neuen Aktionstyps, indem es Änderungen an der Service-Codebasis vornimmt. CodePipeline registriert zwei neue Aktionen: eine öffentliche Aktion und eine private Aktion. Sie verwenden die private Aktion zum Testen, und wenn Sie bereit sind, aktivieren Sie die öffentliche Aktion, um den Kundenverkehr zu bedienen.
Um eine Anfrage für eine Lambda-Integration zu registrieren
-
Senden Sie mithilfe des folgenden Formulars eine Anfrage an das CodePipeline Serviceteam.
This issue will track the onboarding of [Name] in CodePipeline. [Contact engineer] will be the primary point of contact for this integration. Name of the action type as you want it to appear to customers:Example.com TestingInitial onboard checklist: 1. Attach an action type definition file in JSON format. This includes the schema for the action type 2. A list of test accounts for the allowlist which can access the new action type [{account, account_name}] 3. The Lambda function ARN 4. List of AWS-Regionen where your action will be available 5. Will this be available as a public action?
Um eine Anfrage für eine Integration von Arbeitnehmern zu registrieren
-
Senden Sie mit dem folgenden Formular eine Anfrage an das CodePipeline Serviceteam.
This issue will track the onboarding of [Name] in CodePipeline. [Contact engineer] will be the primary point of contact for this integration. Name of the action type as you want it to appear to customers:Example.com TestingInitial onboard checklist: 1. Attach an action type definition file in JSON format. This includes the schema for the action type. 2. A list of test accounts for the allowlist which can access the new action type [{account, account_name}] 3. URL information: Website URL:https://www.example.com/%TestThirdPartyName%/%TestVersionNumber%Example URL pattern where customers will be able to review their configuration information for the action:https://www.example.com/%TestThirdPartyName%/%customer-ID%/%CustomerActionConfiguration%Example runtime URL pattern:https://www.example.com/%TestThirdPartyName%/%customer-ID%/%TestRunId%4. List of AWS-Regionen where your action will be available 5. Will this be available as a public action?
Schritt 4: Aktivieren Sie Ihre neue Integration
Wenden Sie sich an das CodePipeline Serviceteam, wenn Sie bereit sind, die neue Integration öffentlich zu nutzen.
Fügen Sie einer Pipeline (Konsole) einen verfügbaren Aktionstyp hinzu
Sie fügen Ihren Aktionstyp einer Pipeline hinzu, damit Sie ihn testen können. Sie können dies tun, indem Sie eine neue Pipeline erstellen oder eine vorhandene bearbeiten.
Anmerkung
Wenn es sich bei Ihrem Aktionstyp um eine Aktion der Kategorie Quell, Build oder Deploy handelt, können Sie sie hinzufügen, indem Sie eine Pipeline erstellen. Wenn sich Ihr Aktionstyp in der Testkategorie befindet, müssen Sie ihn hinzufügen, indem Sie eine vorhandene Pipeline bearbeiten.
Um Ihren Aktionstyp von der CodePipeline Konsole aus zu einer vorhandenen Pipeline hinzuzufügen
Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CodePipeline Konsole unter http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Wählen Sie in der Liste der Pipelines die Pipeline aus, zu der Sie den Aktionstyp hinzufügen möchten.
-
Wählen Sie auf der Übersichtsseite der Pipeline die Option Bearbeiten aus.
-
Wählen Sie, ob Sie die Phase bearbeiten möchten. Wählen Sie in der Phase, in der Sie Ihren Aktionstyp hinzufügen möchten, Aktionsgruppe hinzufügen aus. Die Seite „Aktion bearbeiten“ wird angezeigt.
-
Geben Sie auf der Seite Aktion bearbeiten im Feld Aktionsname einen Namen für die Aktion ein. Dies ist der Name, der für die Phase in Ihrer Pipeline angezeigt wird.
-
Wählen Sie unter Aktionsanbieter Ihren Aktionstyp aus der Liste aus.
Beachten Sie, dass der Wert in der Liste auf dem in der Aktionstyp-Definitionsdatei
providerangegebenen Wert basiert. -
Geben Sie im Feld Eingabeartefakte den Namen des Artefakts in diesem Format ein:
Artifactname::FileNameBeachten Sie, dass die zulässigen Mindest- und Höchstmengen auf der Grundlage der in der Definitionsdatei für den Aktionstyp
inputArtifactDetailsangegebenen Werte definiert werden. -
Wählen Sie Verbinden mit < Action_Name >.
Ein Browserfenster wird geöffnet und stellt eine Verbindung zu der Website her, die Sie für Ihren Aktionstyp erstellt haben.
-
Melden Sie sich als Kunde auf Ihrer Website an und führen Sie die Schritte aus, die ein Kunde unternimmt, um Ihren Aktionstyp zu verwenden. Deine Schritte variieren je nach Aktionskategorie, Website und Konfiguration, beinhalten aber in der Regel eine Abschlussaktion, die den Kunden zur Seite „Aktion bearbeiten“ zurückbringt.
-
Auf der Seite CodePipeline „Aktion bearbeiten“ werden die zusätzlichen Konfigurationsfelder für die Aktion angezeigt. Bei den angezeigten Feldern handelt es sich um die Konfigurationseigenschaften, die Sie in der Aktionsdefinitionsdatei angegeben haben. Geben Sie die Informationen in die Felder ein, die für Ihren Aktionstyp angepasst sind.
Wenn in der Aktionsdefinitionsdatei beispielsweise eine Eigenschaft mit dem Namen angegeben wurde
Host, wird auf der Seite „Aktion bearbeiten“ für Ihre Aktion ein Feld mit der Bezeichnung Host angezeigt. -
Geben Sie im Feld Ausgabeartefakte den Namen des Artefakts in diesem Format ein:
Artifactname::FileNameBeachten Sie, dass die zulässigen Mindest- und Höchstmengen auf der Grundlage der in der Definitionsdatei für den Aktionstyp
outputArtifactDetailsangegebenen Werte definiert werden. -
Wählen Sie Fertig, um zur Seite mit den Pipeline-Details zurückzukehren.
Anmerkung
Ihre Kunden können optional die CLI verwenden, um den Aktionstyp zu ihrer Pipeline hinzuzufügen.
-
Um Ihre Aktion zu testen, übernehmen Sie eine Änderung an der in der Quellphase der Pipeline angegebenen Quelle oder folgen Sie den Schritten unter Manuelles Starten einer Pipeline.
Um eine Pipeline mit Ihrem Aktionstyp zu erstellen, folgen Sie den Schritten unter Erstellen Sie eine Pipeline, Stufen und Aktionen und wählen Sie Ihren Aktionstyp aus so vielen Phasen aus, wie Sie testen möchten.
Zeigen Sie einen Aktionstyp an
Sie können die CLI verwenden, um Ihren Aktionstyp anzuzeigen. Verwenden Sie den get-action-type Befehl, um Aktionstypen anzuzeigen, die mithilfe eines Integrationsmodells erstellt wurden.
Um einen Aktionstyp anzuzeigen
-
Erstellen Sie eine JSON-Eingabedatei und benennen Sie die Datei
file.json. Fügen Sie Ihre Aktionstyp-ID im JSON-Format hinzu, wie im folgenden Beispiel gezeigt.{ "category": "Test", "owner": "ThirdParty", "provider": "TestProvider", "version": "1" } -
Führen Sie den Befehl in einem Terminalfenster oder in der get-action-type Befehlszeile aus.
aws codepipeline get-action-type --cli-input-json file://file.jsonDieser Befehl gibt die Ausgabe der Aktionsdefinition für einen Aktionstyp zurück. Dieses Beispiel zeigt einen Aktionstyp, der mit dem Lambda-Integrationsmodell erstellt wurde.
{ "actionType": { "executor": { "configuration": { "lambdaExecutorConfiguration": { "lambdaFunctionArn": "arn:aws:lambda:us-west-2:<account-id>:function:my-function" } }, "type": "Lambda" }, "id": { "category": "Test", "owner": "ThirdParty", "provider": "TestProvider", "version": "1" }, "inputArtifactDetails": { "minimumCount": 0, "maximumCount": 1 }, "outputArtifactDetails": { "minimumCount": 0, "maximumCount": 1 }, "permissions": { "allowedAccounts": [ "<account-id>" ] }, "properties": [] } }
Aktualisieren Sie einen Aktionstyp
Sie können die CLI verwenden, um Aktionstypen zu bearbeiten, die mit einem Integrationsmodell erstellt wurden.
Bei einem öffentlichen Aktionstyp können Sie den Besitzer nicht aktualisieren, Sie können optionale Eigenschaften nicht in erforderliche Eigenschaften ändern und Sie können nur neue optionale Eigenschaften hinzufügen.
-
Verwenden Sie den
get-action-typeBefehl, um die Struktur für Ihren Aktionstyp abzurufen. Kopieren Sie die Struktur. -
Erstellen Sie eine JSON-Eingabedatei und benennen Sie sie
action.json. Fügen Sie die Aktionstyp-Struktur ein, die Sie im vorherigen Schritt kopiert haben. Aktualisieren Sie alle Parameter, die Sie ändern möchten. Sie können auch optionale Parameter hinzufügen.Weitere Informationen zu den Parametern für die Eingabedatei finden Sie in der Beschreibung der Aktionsdefinitionsdatei unterSchritt 2: Erstellen Sie eine Definitionsdatei für den Aktionstyp.
Das folgende Beispiel zeigt, wie ein Beispiel-Aktionstyp aktualisiert wird, der mit dem Lambda-Integrationsmodell erstellt wurde. In diesem Beispiel werden die folgenden Änderungen vorgenommen:
-
Ändert den
providerNamen inTestProvider1. -
Fügen Sie ein Job-Timeout-Limit von 900 Sekunden hinzu.
-
Fügt eine Aktionskonfigurationseigenschaft mit dem Namen hinzu
Host, die dem Kunden angezeigt wird, der die Aktion verwendet.{ "actionType": { "executor": { "configuration": { "lambdaExecutorConfiguration": { "lambdaFunctionArn": "arn:aws:lambda:us-west-2:<account-id>:function:my-function" } }, "type": "Lambda","jobTimeout": 900}, "id": { "category": "Test", "owner": "ThirdParty", "provider": "TestProvider1", "version": "1" }, "inputArtifactDetails": { "minimumCount": 0, "maximumCount": 1 }, "outputArtifactDetails": { "minimumCount": 0, "maximumCount": 1 }, "permissions": { "allowedAccounts": [ "account-id" ] },"properties": { "description": "} }Owned build action parameter description", "optional": true, "noEcho": false, "key": true, "queryable": false, "name": "Host" }
-
-
Führen Sie im Terminal oder in der Befehlszeile den update-action-type Befehl aus
aws codepipeline update-action-type --cli-input-json file://action.jsonDieser Befehl gibt die Ausgabe des Aktionstyps zurück, die Ihren aktualisierten Parametern entspricht.