Schritt 5: Erstellen des Build-Projekts - AWS CodeBuild

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.

Schritt 5: Erstellen des Build-Projekts

(Vorheriger Schritt: Schritt 4: Hochladen des Quellcodes und der Build-Spezifikationsdatei)

In diesem Schritt erstellen Sie ein Build-Projekt, das AWS CodeBuild zum Ausführen des Builds verwendet. Ein Build-Projekt enthält Informationen zum Ausführen eines Builds, einschließlich des Quellcodes, der zu verwendenden Build-Umgebung, der auszuführenden Build-Befehle und des Speicherorts der Build-Ausgabe. Eine Build-Umgebung stellt eine Kombination aus Betriebssystem, Laufzeit der Programmiersprache und Tools dar, die zum Ausführen eines Builds CodeBuild verwendet. Die Build-Umgebung wird als Docker-Image ausgedrückt. Weitere Informationen finden Sie unter Docker Overview auf der Docker Docs-Website.

Für diese Build-Umgebung weisen Sie an, ein Docker-Image CodeBuild zu verwenden, das eine Version des Java Development Kit (JDK) und Apache Maven enthält.

So erstellen Sie ein Build-Projekt
  1. Verwenden Sie die AWS CLI zum Ausführen des create-project-Befehls:

    aws codebuild create-project --generate-cli-skeleton

    Daten im JSON-Format werden in der Ausgabe angezeigt. Kopieren Sie die Daten in eine Datei namens create-project.json auf dem lokalen Computer oder einer lokalen Instance, auf der die AWS CLI installiert ist. Wenn Sie einen anderen Dateinamen verwenden, muss dieser Name im gesamten Tutorial verwendet werden.

    Ändern Sie die kopierten Daten entsprechend dem nachfolgenden Format und speichern Sie die Ergebnisse:

    { "name": "codebuild-demo-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "serviceIAMRole" }

    Ersetzen Sie serviceIAMRole durch den Amazon-Ressourcennamen (ARN) einer CodeBuild Servicerolle (z. B. arn:aws:iam::account-ID:role/role-name). Informationen zum Erstellen finden Sie unter Erstellen Sie eine CodeBuild Servicerolle.

    In diesen Daten:

    • name stellt eine erforderliche ID für dieses Build-Projekt dar (in diesem Beispiel codebuild-demo-project). Build-Projektnamen müssen in allen Build-Projekten in Ihrem Konto eindeutig sein.

    • Für type ist ein erforderlicher Wertsource, der den Repository-Typ des Quellcodes darstellt (in diesem Beispiel S3 für einen Amazon S3-Bucket).

    • Für source stellt location den Pfad zum Quellcode dar (in diesem Beispiel der Name des Empfangs-Buckets gefolgt vom ZIP-Dateinamen).

    • Für type ist ein erforderlicher Wertartifacts, der den Repository-Typ des Build-Ausgabeartefakts darstellt (in diesem Beispiel S3 für einen Amazon S3-Bucket).

    • Für artifacts stellt location den Namen des Ausgabe-Buckets dar, den Sie zuvor erstellt oder definiert haben (in diesem Beispiel codebuild-region-ID-account-ID-output-bucket).

    • Für type ist ein erforderlicher Wertenvironment, der den Typ der Build-Umgebung darstellt (in diesem Beispiel LINUX_CONTAINER).

    • Für image ist ein erforderlicher Wertenvironment, der die Kombination aus Docker-Image-Name und Tag darstellt, die dieses Build-Projekt verwendet, wie durch den Docker-Image-Repository-Typ angegeben (in diesem Beispiel aws/codebuild/standard:5.0 für ein Docker-Image im CodeBuild Docker-Image-Repository). aws/codebuild/standard ist der Name des Docker-Images. 5.0 ist das Tag des Docker-Images.

      Weitere Docker-Images, die Sie in Ihren Szenarien verwenden können, finden Sie unter Build-Umgebungsreferenz.

    • Für computeType ist ein erforderlicher Wertenvironment, der die CodeBuild von verwendeten Rechenressourcen darstellt (in diesem Beispiel BUILD_GENERAL1_SMALL).

    Anmerkung

    Andere verfügbare Werte in den ursprünglichen JSON-formatierten Daten wie description, buildspec, auth (einschließlich type und resource), path, namespaceType, name (für artifacts), packaging, environmentVariables (einschließlich name und value), timeoutInMinutes, encryptionKey und tags (einschließlich key und value) sind optional. Sie werden in diesem Tutorial nicht verwendet und deshalb hier nicht aufgelistet. Weitere Informationen finden Sie unter Erstellen eines Build-Projekts (AWS CLI).

  2. Wechseln Sie in das Verzeichnis, das die soeben gespeicherte Datei enthält, und führen Sie den Befehl create-project erneut aus.

    aws codebuild create-project --cli-input-json file://create-project.json

    Ist der Befehl erfolgreich, gibt er als Ausgabe Daten zurück, die wie folgt aussehen sollten.

    { "project": { "name": "codebuild-demo-project", "serviceRole": "serviceIAMRole", "tags": [], "artifacts": { "packaging": "NONE", "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "name": "message-util.zip" }, "lastModified": 1472661575.244, "timeoutInMinutes": 60, "created": 1472661575.244, "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:5.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "encryptionKey": "arn:aws:kms:region-ID:account-ID:alias/aws/s3", "arn": "arn:aws:codebuild:region-ID:account-ID:project/codebuild-demo-project" } }
    • project enthält Informationen zu diesem Build-Projekt.

      • tags stellt alle deklarierten Tags dar.

      • packaging gibt an, wie die Build-Ausgabeartefakte im Ausgabe-Bucket gespeichert werden. NONE bedeutet, dass ein Ordner im Ausgabe-Bucket erstellt wird. Das Build-Ausgabeartefakt wir in diesem Ordner gespeichert.

      • lastModified zeigt die Uhrzeit der letzten Änderung des Build-Projekts im Unix-Zeitformat an.

      • timeoutInMinutes stellt die Anzahl der Minuten dar, nach denen den Build CodeBuild stoppt, wenn der Build nicht abgeschlossen wurde. (Der Standardwert ist 60 Minuten.)

      • created zeigt die Uhrzeit der Erstellung des Build-Projekts im Unix-Zeitformat an.

      • environmentVariables repräsentiert alle Umgebungsvariablen, die deklariert wurden und für CodeBuild die Verwendung während des Builds verfügbar sind.

      • encryptionKey stellt den ARN des vom Kunden verwalteten Schlüssels dar, mit dem das Build-Ausgabeartefakt verschlüsselt CodeBuild wurde.

      • arn zeigt den ARN des Build-Projekts an.

Anmerkung

Nachdem Sie den create-project Befehl ausgeführt haben, wird möglicherweise eine Fehlermeldung ähnlich der folgenden ausgegeben: User: user-ARN is not authorized to perform: codebuild:CreateProject. Dies liegt höchstwahrscheinlich daran, dass Sie die AWS CLI mit den Anmeldeinformationen eines -Benutzers konfiguriert haben, der nicht über ausreichende Berechtigungen zum Erstellen von Build CodeBuild -Projekten verfügt. Um dies zu beheben, konfigurieren Sie mit AWS CLI Anmeldeinformationen, die zu einer der folgenden IAM-Entitäten gehören:

  • Ein Administratorbenutzer in Ihrem AWS Konto. Weitere Informationen finden Sie unter Erstellen Ihres ersten AWS-Konto Stammbenutzers und Ihrer ersten Stammgruppe im -Benutzerhandbuch.

  • Ein -Benutzer in Ihrem AWS Konto mit den IAMFullAccess verwalteten Richtlinien AWSCodeBuildAdminAccess, und AmazonS3ReadOnlyAccess, die diesem Benutzer oder einer IAM-Gruppe zugeordnet sind, zu der der Benutzer gehört. Wenn Sie in Ihrem AWS Konto keinen -Benutzer oder keine -Gruppe mit diesen Berechtigungen haben und diese Berechtigungen Ihrem Benutzer oder Ihrer Gruppe nicht hinzufügen können, wenden Sie sich an Ihren AWS Kontoadministrator, um Unterstützung zu erhalten. Weitere Informationen finden Sie unter AWS verwaltete (vordefinierte) Richtlinien für AWS CodeBuild.

Nächster Schritt

Schritt 6: Ausführen des Builds