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.
Tutorial: Konfiguriere einen CodeBuild-hosted Buildkite Runner
Dieses Tutorial zeigt dir, wie du deine CodeBuild Projekte für die Ausführung von Buildkite-Jobs konfigurierst. Weitere Informationen zur Verwendung von Buildkite mit finden Sie unter. CodeBuild Self-managed Buildkite ist angelaufen AWS CodeBuild
Um dieses Tutorial abzuschließen, müssen Sie zunächst:
-
Haben Sie Zugang zu einer Buildkite-Organisation. Weitere Informationen zur Einrichtung eines Buildkite-Kontos und einer Buildkite-Organisation findest du in diesem Tutorial für die ersten Schritte.
-
Erstellen Sie eine Buildkite-Pipeline, einen Cluster und eine Warteschlange, die für die Verwendung selbst gehosteter Runner konfiguriert sind. Weitere Informationen zum Einrichten dieser Ressourcen finden Sie im Buildkite Pipeline Setup Tutorial.
Schritt 1: Generieren Sie ein Buildkite Agent-Token
In diesem Schritt generierst du in Buildkite ein Agententoken, das zur Authentifizierung der selbst gehosteten Runner verwendet wird. CodeBuild Weitere Informationen zu dieser Ressource finden Sie unter Buildkite Agent Tokens.
Um ein Buildkite Agent-Token zu generieren
-
Wählen Sie in Ihrem Buildkite-Cluster Agent Tokens und dann New Token aus.
-
Fügen Sie dem Token eine Beschreibung hinzu und klicken Sie auf Token erstellen.
-
Speichern Sie den Agententoken-Wert, da er später bei der CodeBuild Projekteinrichtung verwendet wird.
Schritt 2: Erstellen Sie ein CodeBuild Projekt mit einem Webhook
Um ein CodeBuild Projekt mit einem Webhook zu erstellen
Öffnen Sie die AWS CodeBuild Konsole unter. https://console.aws.amazon.com/codesuite/codebuild/home
-
Erstellen Sie ein selbst gehostetes Build-Projekt. Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt (Konsole) und Ausführen eines Build (Konsole).
-
Wählen Sie in der Projektkonfiguration das Runner-Projekt aus. In Runner:
-
Wählen Sie als Runner-Anbieter Buildkite aus.
-
Wählen Sie für Buildkite Agent Token die Option Create a new agent token using the create secret page aus. Sie werden aufgefordert, ein neues Secret AWS Secrets Manager mit einem Geheimwert zu erstellen, der dem Buildkite-Agenten-Token entspricht, das Sie oben generiert haben.
-
(Optional) Wenn Sie CodeBuild verwaltete Anmeldeinformationen für Ihren Job verwenden möchten, wählen Sie unter den Optionen für die Buildkite-Quellanmeldeinformationen den Quell-Repository-Anbieter Ihres Jobs aus und stellen Sie sicher, dass die Anmeldeinformationen für Ihr Konto konfiguriert sind. Stellen Sie außerdem sicher, dass Ihre Buildkite-Pipeline Checkout über HTTPS verwendet.
Anmerkung
Buildkite benötigt Quelldaten innerhalb der Build-Umgebung, um die Quelle für deinen Job abzurufen. Informationen zu Authentifizieren von Buildkite bei einem privaten Repository den verfügbaren Optionen für Quellanmeldeinformationen finden Sie unter.
-
-
(Optional) Unter Umgebung:
-
Wählen Sie ein unterstütztes Umgebungs-Image und dann Compute aus.
Beachten Sie, dass Sie die Option haben, die Image- und Instanzeinstellungen zu überschreiben, indem Sie in Ihren Buildkite YAML-Schritten ein Label verwenden. Weitere Informationen finden Sie unter Schritt 4: Aktualisieren Sie Ihre Buildkite-Pipeline-Schritte.
-
-
(Optional) In Buildspec:
-
Ihre Buildspec wird standardmäßig ignoriert, sofern
buildspec-override: "true"sie nicht als Label hinzugefügt wird. Stattdessen überschreibt es, CodeBuild um Befehle zu verwenden, die den selbst gehosteten Runner einrichten.Anmerkung
CodeBuild unterstützt keine Buildspec-Dateien für selbst gehostete Buildkite-Runner-Builds. Für Inline-Buildspecs müssen Sie git-credentials in Ihrer Buildspec aktivieren, wenn Sie die Anmeldeinformationen für verwaltete Quellen konfiguriert haben CodeBuild
-
-
-
Fahren Sie mit den Standardwerten fort und wählen Sie dann Create build project.
-
Speichern Sie die Payload-URL und die Secret-Werte aus dem Popup „Webhook erstellen“. Folgen Sie entweder den Anweisungen im Popup, um einen neuen Buildkite-Organisations-Webhook zu erstellen, oder fahren Sie mit dem nächsten Abschnitt fort.
Schritt 3: Erstelle einen Webhook in Buildkite CodeBuild
In diesem Schritt verwenden Sie die Payload-URL und die Secret-Werte aus dem Webhook, um einen neuen CodeBuild Webhook in Buildkite zu erstellen. Dieser Webhook wird verwendet, um Builds auszulösen, CodeBuild wenn ein gültiger Buildkite-Job gestartet wird.
Um einen neuen Webhook in Buildkite zu erstellen
-
Öffne die Einstellungsseite deiner Buildkite-Organisation.
-
Wähle unter Integrationen die Option Notification Services aus.
-
Wählen Sie neben dem Feld Webhook die Option Hinzufügen aus. Verwenden Sie auf der Seite „Webhook-Benachrichtigung hinzufügen“ die folgende Konfiguration:
-
Fügen Sie unter Webhook-URL den gespeicherten Payload-URL-Wert hinzu.
-
Vergewissern Sie sich, dass unter Token die Option Token senden als ausgewählt X-Buildkite-Token ist. Fügen Sie Ihren geheimen Webhook-Wert zum Feld Token hinzu.
-
Vergewissern Sie sich, dass das Token senden als ausgewählt X-Buildkite-Token ist. Fügen Sie Ihren geheimen Webhook-Wert zum Feld Token hinzu.
-
Wählen Sie unter Ereignisse das
job.scheduledWebhook-Ereignis aus. -
(Optional) Unter Pipelines können Sie optional festlegen, dass nur Builds für eine bestimmte Pipeline ausgelöst werden.
-
-
Wählen Sie „Webhook-Benachrichtigung hinzufügen“.
Schritt 4: Aktualisieren Sie Ihre Buildkite-Pipeline-Schritte
Aktualisieren Sie in diesem Schritt die Schritte Ihrer Buildkite-Pipeline, um die erforderlichen Labels und optionale Überschreibungen hinzuzufügen. Die vollständige Liste der unterstützten Label-Overrides finden Sie unter. Label-Overrides werden vom Buildkite-Runner unterstützt CodeBuild-hosted
Aktualisieren Sie Ihre Pipeline-Schritte
-
Öffnen Sie die Seite mit den Buildkite-Pipeline-Schritten, indem Sie Ihre Buildkite-Pipeline auswählen, Einstellungen und dann Schritte auswählen.
Falls Sie es noch nicht getan haben, wählen Sie In YAML-Schritte konvertieren.
-
Sie müssen mindestens ein Buildkite-Agent-Tag angeben, das auf den Namen
Ihrer Pipeline verweist. CodeBuild Der Projektname wird benötigt, um die zugehörigen Einstellungen Ihres Buildkite-Jobs AWS mit einem bestimmten Projekt zu verknüpfen. CodeBuild Durch die Aufnahme des Projektnamens in die YAML CodeBuild ist es möglich, Jobs mit den richtigen Projekteinstellungen aufzurufen. agents: project: "codebuild-<project name>"Das Folgende ist ein Beispiel für Buildkite-Pipeline-Schritte, bei denen nur das Projekt-Label-Tag verwendet wird:
agents: project: "codebuild-myProject" steps: - command: "echo \"Hello World\""Du kannst auch dein Bild und deinen Berechnungstyp im Label überschreiben. Eine Liste der verfügbaren Bilder finden Sie unter. Berechnet Bilder, die vom Buildkite-Runner unterstützt werden CodeBuild-hosted Der Berechnungstyp und das Bild im Etikett überschreiben die Umgebungseinstellungen in Ihrem Projekt. Verwenden Sie die folgende Syntax, um Ihre Umgebungseinstellungen für einen CodeBuild EC2- oder Lambda-Compute-Build zu überschreiben:
agents: project: "codebuild-<project name>" image: "<environment-type>-<image-identifier>" instance-size: "<instance-size>"Im Folgenden finden Sie ein Beispiel für Buildkite-Pipeline-Schritte mit Überschreibungen für Image- und Instance-Größe:
agents: project: "codebuild-myProject" image: "arm-3.0" instance-size: "small" steps: - command: "echo \"Hello World\""Du kannst die für deinen Build verwendete Flotte im Label überschreiben. Dadurch werden die in Ihrem Projekt konfigurierten Flotteneinstellungen überschrieben, sodass die angegebene Flotte verwendet wird. Weitere Informationen finden Sie unter Builds auf Flotten mit reservierter Kapazität ausführen.
Verwenden Sie die folgende Syntax, um Ihre Flotteneinstellungen für einen Amazon EC2-Rechenbuild zu überschreiben:
agents: project: "codebuild-<project name>" fleet: "<fleet-name>"Verwenden Sie die folgende Syntax, um sowohl die Flotte als auch das für den Build verwendete Image zu überschreiben:
agents: project: "codebuild-<project name>" fleet: "<fleet-name>" image: "<environment-type>-<image-identifier>"Im Folgenden finden Sie ein Beispiel für Buildkite-Pipeline-Schritte mit Flotten- und Image-Overrides:
agents: project: "codebuild-myProject" fleet: "myFleet" image: "arm-3.0" steps: - command: "echo \"Hello World\"" -
Sie können wählen, ob Sie während des selbst gehosteten Buildkite-Runner-Builds Inline-Buildspec-Befehle ausführen möchten (weitere Informationen finden Sie unter). Führen Sie Buildspec-Befehle für die Phasen INSTALL, PRE_BUILD und POST_BUILD aus Verwenden Sie die folgende Syntax, um anzugeben, dass der CodeBuild Build während Ihres selbst gehosteten Buildkite-Runner-Builds Buildspec-Befehle ausführen soll:
agents: project: "codebuild-<project name>" buildspec-override: "true"Das Folgende ist ein Beispiel für eine Buildkite-Pipeline mit einer Buildspec-Override:
agents: project: "codebuild-myProject" buildspec-override: "true" steps: - command: "echo \"Hello World\"" -
Optional können Sie auch Bezeichnungen angeben, die nicht unterstützt werden. CodeBuild Diese Labels werden ignoriert, um die Attribute des Builds zu überschreiben, aber die Webhook-Anforderung schlägt nicht fehl. Das Hinzufügen
myLabel: "testLabel"als Label verhindert beispielsweise nicht, dass der Build ausgeführt wird.
Schritt 5: Überprüfen Sie Ihre Ergebnisse
Immer wenn ein Buildkite-Job in Ihrer Pipeline gestartet CodeBuild wird, erhalten Sie über den job.scheduled Buildkite-Webhook ein Webhook-Event. Startet für jeden Job in deinem Buildkite-Build einen Build, um einen kurzlebigen CodeBuild Buildkite-Runner auszuführen. Der Runner ist für die Ausführung eines einzelnen Buildkite-Jobs verantwortlich. Sobald der Job abgeschlossen ist, werden der Runner und der zugehörige Build-Prozess sofort beendet.
Um Ihre Workflow-Jobprotokolle einzusehen, navigieren Sie zu Ihrer Buildkite-Pipeline und wählen Sie den neuesten Build aus (Sie können einen neuen Build auslösen, indem Sie New Build wählen). Sobald der zugehörige CodeBuild Build für jeden deiner Jobs gestartet und den Job übernommen hat, solltest du die Logs für den Job in der Buildkite-Konsole sehen
Authentifizieren von Buildkite bei einem privaten Repository
Wenn Sie in Ihrer Buildkite-Pipeline ein privates Repository konfiguriert haben, benötigt Buildkite zusätzliche Berechtigungen innerhalb der Build-Umgebung, um das Repository abzurufen, da Buildkite keine
Um sich zu authentifizieren mit CodeBuild
CodeBuild bietet die Verwaltung verwalteter Anmeldeinformationen für unterstützte Quelltypen. Um die CodeBuild Quell-Anmeldeinformationen zum Abrufen des Quell-Repositorys Ihres Jobs zu verwenden, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie in der CodeBuild Konsole zu Projekt bearbeiten oder erstellen Sie ein neues CodeBuild Projekt mithilfe der Schritte unterSchritt 2: Erstellen Sie ein CodeBuild Projekt mit einem Webhook.
-
Wählen Sie unter den Optionen für die Buildkite-Quellanmeldeinformationen den Quell-Repository-Anbieter Ihres Jobs aus.
-
Wenn Sie CodeBuild Anmeldeinformationen auf Kontoebene verwenden möchten, stellen Sie sicher, dass diese korrekt konfiguriert sind. Vergewissern Sie sich außerdem, dass git-credentials aktiviert ist, wenn für Ihr Projekt eine Inline-Buildspec konfiguriert ist. https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper
-
Wenn Sie Anmeldeinformationen auf Projektebene verwenden möchten, wählen Sie CodeBuild Override-Anmeldeinformationen nur für dieses Projekt verwenden aus und richten Sie Anmeldeinformationen für Ihr Projekt ein.
-
-
Navigiere in deinen Buildkite-Pipeline-Einstellungen zu den Repository-Einstellungen. Setze die Checkout-Einstellungen deines Quell-Repositorys auf Checkout with HTTPS
Um sich mit Buildkite Secrets zu authentifizieren
Buildkite unterhält ein SSH-Checkout-Plugin, das verwendet werden kann
-
Generieren Sie einen privaten und öffentlichen SSH-Schlüssel mit Ihrer E-Mail-Adresse, z.
ssh-keygen -t rsa -b 4096 -C "myEmail@address.com" -
Fügen Sie den öffentlichen Schlüssel zu Ihrem privaten Quell-Repository hinzu. Du kannst zum Beispiel dieser Anleitung folgen
, um einem GitHub Konto einen Schlüssel hinzuzufügen. -
Fügen Sie Ihrem Buildkite-Cluster einen neuen geheimen
SSH-Schlüssel hinzu. Wählen Sie in Ihrem Buildkite-Cluster Secrets → New Secret aus. Fügen Sie im Feld Schlüssel einen Namen für Ihr Geheimnis hinzu und fügen Sie Ihren privaten SSH-Schlüssel in das Feld Wert ein:
-
Navigiere in deiner Buildkite-Pipeline zu deinen Repository-Einstellungen und richte Checkout so ein, dass SSH verwendet wird.
-
Aktualisieren Sie Ihre Pipeline-YAML-Schritte, um das
git-ssh-checkoutPlugin zu verwenden. Die folgende Pipeline-YAML-Datei verwendet beispielsweise die Checkout-Aktion mit dem obigen geheimen Buildkite-Schlüssel:agents: project: "codebuild-myProject" steps: - command: "npm run build" plugins: - git-ssh-checkout#v0.4.1: ssh-secret-key-name: 'SOURCE_SSH_KEY' -
Wenn Sie darin einen selbst gehosteten Buildkite-Runner-Job ausführen CodeBuild, verwendet Buildkite jetzt automatisch Ihren konfigurierten geheimen Wert, wenn Sie Ihr privates Repository abrufen
Optionen zur Konfiguration des Runners
Sie können die folgenden Umgebungsvariablen in Ihrer Projektkonfiguration angeben, um die Setup-Konfiguration Ihrer selbst gehosteten Runner zu ändern:
-
CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN: CodeBuild ruft den geheimen Wert ab AWS Secrets Manager , der als Wert dieser Umgebungsvariablen konfiguriert ist, um den selbst gehosteten Buildkite-Runner-Agenten zu registrieren. Diese Umgebungsvariable muss vom Typ seinSECRETS_MANAGER, und der Wert sollte der Name Ihres Geheimnisses in Secrets Manager sein. Eine Buildkite-Agent-Token-Umgebungsvariable ist für alle Buildkite-Runner-Projekte erforderlich. -
CODEBUILD_CONFIG_BUILDKITE_CREDENTIAL_DISABLE: Lädt standardmäßig Quellzugangsdaten auf Konto- oder Projektebene in die Build-Umgebung, da diese Anmeldeinformationen vom Buildkite-Agenten verwendet werden, um das Quell-Repository des Jobs abzurufen. CodeBuild Um dieses Verhalten zu deaktivieren, können Sie Ihrem Projekt diese Umgebungsvariable mit dem Wert auf hinzufügen. Dadurch wird verhinderttrue, dass Quell-Anmeldeinformationen in die Build-Umgebung geladen werden.