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.
Erstellen eines Build-Projekts (AWS CLI)
Weitere Informationen zur Verwendung von AWS CLI with CodeBuild finden Sie unterBefehlszeilenreferenz.
Um ein CodeBuild Build-Projekt mit dem zu erstellen AWS CLI, erstellen Sie eine Projektstruktur im JSON-Format, füllen die Struktur aus und rufen den create-project
Befehl zum Erstellen des Projekts auf.
Erstellen Sie die JSON-Datei
Erstellen Sie eine JSON-Skelettdatei mit dem create-project
Befehl und verwenden Sie die --generate-cli-skeleton
folgende Option:
aws codebuild create-project --generate-cli-skeleton >
<json-file>
Dadurch wird eine JSON-Datei mit dem von angegebenen Pfad und Dateinamen erstellt<json-file>.
Füllen Sie die JSON-Datei aus
Ändern Sie die JSON-Daten wie folgt und speichern Sie Ihre Ergebnisse.
{ "name": "
<project-name>
", "description": "<description>
", "source": { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>
", "gitCloneDepth": "<git-clone-depth>
", "buildspec": "<buildspec>
", "InsecureSsl": "<insecure-ssl>
", "reportBuildStatus": "<report-build-status>
", "buildStatusConfig": { "context": "<context>
", "targetUrl": "<target-url>
" }, "gitSubmodulesConfig": { "fetchSubmodules": "<fetch-submodules>
" }, "auth": { "type": "<auth-type>
", "resource": "<auth-resource>
" }, "sourceIdentifier": "<source-identifier>
" }, "secondarySources": [ { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>
", "gitCloneDepth": "<git-clone-depth>
", "buildspec": "<buildspec>
", "InsecureSsl": "<insecure-ssl>
", "reportBuildStatus": "<report-build-status>
", "auth": { "type": "<auth-type>
", "resource": "<auth-resource>
" }, "sourceIdentifier": "<source-identifier>
" } ], "secondarySourceVersions": [ { "sourceIdentifier": "<secondary-source-identifier>
", "sourceVersion": "<secondary-source-version>
" } ], "sourceVersion": "<source-version>"
, "artifacts": { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<artifacts-location>
", "path": "<artifacts-path>
", "namespaceType": "<artifacts-namespacetype>
", "name": "<artifacts-name>
", "overrideArtifactName": "<override-artifact-name>
", "packaging": "<artifacts-packaging>
" }, "secondaryArtifacts": [ { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<secondary-artifact-location>
", "path": "<secondary-artifact-path>
", "namespaceType": "<secondary-artifact-namespaceType>
", "name": "<secondary-artifact-name>
", "packaging": "<secondary-artifact-packaging>
", "artifactIdentifier": "<secondary-artifact-identifier>
" } ], "cache": { "type": "<cache-type>
", "location": "<cache-location>
", "mode": [ "<cache-mode>
" ] }, "environment": { "type": "LINUX_CONTAINER" | "LINUX_GPU_CONTAINER" | "ARM_CONTAINER" | "WINDOWS_SERVER_2019_CONTAINER" | "WINDOWS_SERVER_2022_CONTAINER", "image": "<image>
", "computeType": "BUILD_GENERAL1_SMALL" | "BUILD_GENERAL1_MEDIUM" | "BUILD_GENERAL1_LARGE" | "BUILD_GENERAL1_2XLARGE", "certificate": "<certificate>
", "environmentVariables": [ { "name": "<environmentVariable-name>
", "value": "<environmentVariable-value>
", "type": "<environmentVariable-type>
" } ], "registryCredential": [ { "credential": "<credential-arn-or-name>
", "credentialProvider": "<credential-provider>
" } ], "imagePullCredentialsType": "CODEBUILD" | "SERVICE_ROLE", "privilegedMode": "<privileged-mode>
" }, "serviceRole": "<service-role>
", "timeoutInMinutes":<timeout>
, "queuedTimeoutInMinutes":<queued-timeout>
, "encryptionKey": "<encryption-key>
", "tags": [ { "key": "<tag-key>
", "value": "<tag-value>
" } ], "vpcConfig": { "securityGroupIds": [ "<security-group-id>
" ], "subnets": [ "<subnet-id>
" ], "vpcId": "<vpc-id>
" }, "badgeEnabled": "<badge-enabled>
", "logsConfig": { "cloudWatchLogs": { "status": "<cloudwatch-logs-status>
", "groupName": "<group-name>
", "streamName": "<stream-name>
" }, "s3Logs": { "status": "<s3-logs-status>
", "location": "<s3-logs-location>
", "encryptionDisabled": "<s3-logs-encryption-disabled>
" } }, "fileSystemLocations": [ { "type": "EFS", "location": "<EFS-DNS-name-1>
:/<directory-path>
", "mountPoint": "<mount-point>
", "identifier": "<efs-identifier>
", "mountOptions": "<efs-mount-options>
" } ], "buildBatchConfig": { "serviceRole": "<batch-service-role>
", "combineArtifacts":<combine-artifacts>
, "restrictions": { "maximumBuildsAllowed":<max-builds>
, "computeTypesAllowed": [ "<compute-type>
" ] }, "timeoutInMins":<batch-timeout>
, "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS" }, "concurrentBuildLimit":<concurrent-build-limit>
}
Ersetzen Sie Folgendes:
Name
Erforderlich Name dieses Build-Projekts. Dieser Name muss für alle Build-Projekte in Ihrem AWS Konto eindeutig sein.
description
Optional. Beschreibung dieses Build-Projekts.
source
Erforderlich Ein ProjectSourceObjekt, das Informationen zu den Quellcodeeinstellungen dieses Build-Projekts enthält. Nachdem Sie ein source
-Objekt hinzugefügt haben, können Sie mit secondarySources bis zu zwölf weitere Quellen hinzufügen. Diese Einstellungen umfassen u. a. folgende:
- Quelle/Typ
-
Erforderlich Der Typ des Repositorys, das den zu erstellenden Quellcode enthält. Gültige Werte sind:
-
CODECOMMIT
-
CODEPIPELINE
-
GITHUB
-
GITHUB_ENTERPRISE
-
GITLAB
-
GITLAB_SELF_MANAGED
-
BITBUCKET
-
S3
-
NO_SOURCE
Wenn Sie
NO_SOURCE
verwenden, kann die Build-Spezifikation keine Datei sein, da das Projekt nicht über eine Quelle verfügt. Stattdessen müssen Sie dasbuildspec
-Attribut verwenden, um eine YAML-formatierte Zeichenfolge für Ihre Build-Spezifikation zu verwenden. Weitere Informationen finden Sie unter Beispiel für ein Projekt ohne Quelle. -
- Quelle/ Ort
-
<source-type>Erforderlich, sofern Sie nicht auf eingestellt
haben.
CODEPIPELINE
Der Speicherort des Quellcodes für den angegebenen Repository-Typ.-
Zum CodeCommit Beispiel die HTTPS-Klon-URL zum Repository, das den Quellcode und die Buildspec-Datei enthält (z. B.).
https://git-codecommit.
<region-id>
.amazonaws.com/v1/repos/<repo-name>
-
Für Amazon S3 der Name des Build-Eingabe-Buckets, gefolgt vom Pfad und Namen der ZIP-Datei, die den Quellcode und die Buildspec enthält. Beispielsweise:
-
Für eine ZIP-Datei, die sich im Stammverzeichnis des Eingabe-Buckets befindet:.
<bucket-name>
/<object-name>
.zip -
Für eine ZIP-Datei, die sich in einem Unterordner im Eingabe-Bucket befindet:
.<bucket-name>
/<subfoler-path>
/<object-name>
.zip
-
-
Für GitHub die HTTPS-Klon-URL zum Repository, das den Quellcode und die Buildspec-Datei enthält. Die URL muss „github.com“ enthalten. Sie müssen Ihr Konto mit Ihrem AWS Konto verbinden. GitHub Verwenden Sie dazu die CodeBuild Konsole, um ein Build-Projekt zu erstellen.
-
Wählen Sie Authorize application. (Nachdem Sie sich mit Ihrem GitHub Konto verbunden haben, müssen Sie die Erstellung des Build-Projekts nicht abschließen. Sie können die CodeBuild Konsole schließen.)
-
-
Für GitHub Enterprise Server die HTTP- oder HTTPS-Klon-URL zum Repository, das den Quellcode und die Buildspec-Datei enthält. Sie müssen Ihr Konto auch mit Ihrem GitHub Enterprise AWS Server-Konto verbinden. Verwenden Sie dazu die CodeBuild Konsole, um ein Build-Projekt zu erstellen.
-
Erstellen Sie ein persönliches Zugriffstoken in GitHub Enterprise Server.
-
Kopieren Sie dieses Token in Ihre Zwischenablage, damit Sie es bei der Erstellung Ihres CodeBuild Projekts verwenden können. Weitere Informationen finden Sie auf der GitHub Hilfeseite unter Erstellen eines persönlichen Zugriffstokens für die Befehlszeile
. -
Wenn Sie die Konsole verwenden, um Ihr CodeBuild Projekt zu erstellen, wählen Sie in Source für Source Provider die Option GitHubEnterprise aus.
-
Für Personal Access Token fügen Sie das Token ein, das in Ihre Zwischenablage kopiert wurde. Wählen Sie Save Token. Ihr CodeBuild Konto ist jetzt mit Ihrem GitHub Enterprise Server-Konto verbunden.
-
-
Für GitLab und GitLab selbst verwaltet, die HTTPS-Klon-URL zum Repository, das den Quellcode und die Buildspec-Datei enthält. Beachten Sie, dass die URL bei Verwendung GitLab gitlab.com enthalten muss. Wenn du GitLab Self-managed verwendest, muss die URL nicht gitlab.com enthalten. Du musst dein Konto mit deinem AWS Konto GitLab oder GitLab deinem selbst verwalteten Konto verbinden. Verwenden Sie dazu die CodeBuild Konsole, um ein Build-Projekt zu erstellen.
-
Wählen Sie im Navigationsbereich der Developer Tools die Optionen Einstellungen, Verbindungen und anschließend Verbindung erstellen aus. Erstellen Sie auf dieser Seite entweder eine GitLab oder eine GitLab selbstverwaltete Verbindung und wählen Sie dann Connect aus. GitLab
-
-
Für Bitbucket handelt es sich um die HTTPS-Klon-URL des Repositorys, das den Quellcode und die buildspec-Datei enthält. Die URL muss „bitbucket.org“ enthalten. Du musst dein Konto außerdem mit deinem AWS Bitbucket-Konto verbinden. Verwende dazu die CodeBuild Konsole, um ein Build-Projekt zu erstellen.
-
Wenn Sie die Konsole zum Verbinden (oder Wiederverbinden) mit Bitbucket verwenden, wählen Sie auf der Seite Confirm access to your account die Option Grant access. (Nachdem du dich mit deinem Bitbucket-Konto verbunden hast, musst du die Erstellung des Build-Projekts nicht abschließen. Du kannst die CodeBuild Konsole schließen.)
-
-
Für AWS CodePipeline, geben Sie keinen
location
Wert für ansource
. CodePipeline ignoriert diesen Wert CodePipeline, da Sie beim Erstellen einer Pipeline in den Quellcodepfad der Pipeline den Speicherort des Quellcodes angeben.
-
- Quelle/ gitCloneDepth
-
Optional. Die Tiefe des herunterzuladenden Verlaufs. Der Mindestwert ist 0. Ist dieser Wert 0, größer als 25 oder nicht angegeben, wird für jedes Build-Projekt der vollständige Verlauf heruntergeladen. Wenn Ihr Quelltyp Amazon S3 ist, wird dieser Wert nicht unterstützt.
- Quelle/ Buildspec
-
Optional. Die zu verwendende Build-Spezifikationsdefinition oder -datei. Wenn der Wert nicht angegeben oder eine leere Zeichenfolge ist, muss der Quellcode eine
buildspec.yml
-Datei im Stammverzeichnis enthalten. Wenn dieser Wert gesetzt ist, kann es sich entweder um eine Inline-Buildspec-Definition, den Pfad zu einer alternativen Buildspec-Datei relativ zum Stammverzeichnis Ihrer Primärquelle oder um den Pfad zu einem S3-Bucket handeln. Der Bucket muss sich in derselben Region wie das Build-Projekt befinden AWS . Geben Sie die buildspec-Datei mit ihrem ARN an (z. B.arn:aws:s3:::
). Weitere Informationen finden Sie unter Dateiname der Build-Spezifikation und Speicherort.<my-codebuild-sample2>
/buildspec.yml - Quelle/Authentifizierung
-
Nicht verwenden. Dieses Objekt wird nur von der CodeBuild Konsole verwendet.
- Quelle/ reportBuildStatus
-
Gibt an, ob Ihr Quell-Anbieter den Status eines Build-Starts und -Abschlusses sendet. Wenn Sie dies mit einem anderen Quellanbieter als GitHub GitHub Enterprise Server oder Bitbucket festlegen,
invalidInputException
wird ein ausgelöst.Um den Build-Status an den Quell-Provider melden zu können, muss der mit dem Quell-Provider verknüpfte Benutzer Schreibzugriff auf das Repo haben. Wenn der Benutzer keinen Schreibzugriff hat, kann der Build-Status nicht aktualisiert werden. Weitere Informationen finden Sie unter Zugriff auf den Quellanbieter.
- Quelle/ buildStatusConfig
-
Enthält Informationen, die definieren, wie das CodeBuild Build-Projekt den Build-Status an den Quellanbieter meldet. Diese Option wird nur verwendet, wenn der Quelltyp
GITHUB
GITHUB_ENTERPRISE
, oder istBITBUCKET
.- Quelle/buildStatusConfig/Kontext
-
Bei Bitbucket-Quellen wird dieser Parameter für den
name
Parameter im Bitbucket-Commit-Status verwendet. Bei GitHub Quellen wird dieser Parameter für dencontext
Parameter im GitHub Commit-Status verwendet.Sie können zum Beispiel die Build-Nummer
context
enthalten und den Webhook-Trigger mithilfe der CodeBuild Umgebungsvariablen auslösen:AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER
Dies führt dazu, dass der Kontext für Build #24, ausgelöst durch ein Webhook-Pull-Request-Ereignis, wie folgt aussieht:
AWS CodeBuild sample-project Build #24 - pr/8
- Quelle/ ZielURL buildStatusConfig
-
Bei Bitbucket-Quellen wird dieser Parameter für den
url
Parameter im Bitbucket-Commit-Status verwendet. Bei GitHub Quellen wird dieser Parameter für dentarget_url
Parameter im GitHub Commit-Status verwendet.Sie können beispielsweise den Wert
targetUrl
auf festlegenhttps://aws.amazon.com/codebuild/
und der Commit-Status wird auf diese URL verweisen.<path to build>
Sie können auch CodeBuild Umgebungsvariablen in die aufnehmen
targetUrl
, um der URL zusätzliche Informationen hinzuzufügen. Um beispielsweise die Build-Region zur URL hinzuzufügen, setzen Sie den WerttargetUrl
auf:"targetUrl": "https://aws.amazon.com/codebuild/
<path to build>
?region=$AWS_REGION"Wenn die Build-Region ist
us-east-2
, wird dies erweitert auf:https://aws.amazon.com/codebuild/
<path to build>
?region=us-east-2
- Quelle/ gitSubmodulesConfig
-
Optional. Informationen zur Konfiguration der Git-Submodule. Wird nur mit CodeCommit GitHub, GitHub Enterprise Server und Bitbucket verwendet.
- quelle///fetchSubmodules gitSubmodulesConfig
-
Legen Sie für
fetchSubmodules
true
fest, wenn die Git-Submodule in Ihr Repository aufgenommen werden sollen. Die einbezogenen Git-Submodule müssen als HTTPS konfiguriert werden.
- Quelle/ InsecureSsl
-
Optional. Wird nur mit GitHub Enterprise Server verwendet. Setzen Sie diesen Wert auf,
true
um TLS-Warnungen zu ignorieren, während Sie eine Verbindung zu Ihrem GitHub Enterprise Server-Projekt-Repository herstellen. Der Standardwert istfalse
.InsecureSsl
sollte nur für Testzwecke verwendet werden. Es sollte nicht in einer Produktionsumgebung verwendet werden. - Quelle/ SourceIdentifier
-
Ein benutzerdefinierter Bezeichner für die Projektquelle. Optional für die Primärquelle. Für Sekundärquellen erforderlich.
secondarySources
Optional. Eine Reihe von ProjectSourceObjekten, die Informationen zu den Sekundärquellen für ein Build-Projekt enthalten. Sie können bis zu 12 Sekundärquellen hinzufügen. Die secondarySources
Objekte verwenden dieselben Eigenschaften wie das source Objekt. In einem sekundären Quellobjekt sourceIdentifier
ist der erforderlich.
secondarySourceVersions
Optional. Ein Array von ProjectSourceVersion-Objekten. Wenn secondarySourceVersions
auf Build-Ebene angegeben ist, haben sie Vorrang vor dieser Angabe.
sourceVersion
Optional. Die Version der Build-Eingabe, die für dieses Projekt erstellt werden soll. Ist dieser Parameter nicht angegeben, wird die neueste Version verwendet. Ist er festgelegt, muss er Folgendes sein:
-
Für CodeCommit die zu verwendende Commit-ID, den Branch oder das Git-Tag.
-
Für GitHub die Commit-ID, die Pull-Request-ID, den Branch-Namen oder den Tag-Namen, der der Version des Quellcodes entspricht, den Sie erstellen möchten. Wenn eine Pull-Anforderungs-ID angegeben ist, muss diese das Format
pr/pull-request-ID
aufweisen (Beispiel:pr/25
). Wenn ein Branch-Name angegeben wird, wird die Commit-ID von HEAD verwendet. Wenn sie nicht angegeben ist, wird die Commit-ID von HEAD für den Standard-Branch verwendet. -
Für GitLab die Commit-ID, die Pull-Request-ID, den Branchennamen, den Tag-Namen oder die Referenz und eine Commit-ID. Weitere Informationen finden Sie unter Beispiel für eine Quellversion mit AWS CodeBuild.
-
Für Bitbucket, Commit-ID, Branch-Name oder Tag-Name, die/der der Version des Quellcodes entspricht, die Sie erstellen möchten. Wenn ein Branch-Name angegeben wird, wird die Commit-ID von HEAD verwendet. Wenn sie nicht angegeben ist, wird die Commit-ID von HEAD für den Standard-Branch verwendet.
-
Für Amazon S3 die Versions-ID des Objekts, das die zu verwendende Build-Eingabe-ZIP-Datei darstellt.
Wenn sourceVersion
auf Build-Ebene angegeben ist, hat jene Version Vorrang vor dieser Version sourceVersion
(auf Projektebene). Weitere Informationen finden Sie unter Beispiel für eine Quellversion mit AWS CodeBuild.
Artefakte
Erforderlich Ein ProjectArtifactsObjekt, das Informationen über die Einstellungen für das Ausgabeartefakt dieses Build-Projekts enthält. Nachdem Sie ein artifacts
-Objekt hinzugefügt haben, können Sie mit secondaryArtifacts bis zu zwölf weitere Artefakte hinzufügen. Diese Einstellungen umfassen u. a. folgende:
- Artefakte/Typ
-
Erforderlich Der Typ des Build-Ausgabeartefakts. Gültige Werte für sind:
-
CODEPIPELINE
-
NO_ARTIFACTS
-
S3
-
- Artefakte/ Standort
-
Wird nur mit dem Artefakttyp verwendet.
S3
Wird nicht für andere Artefakttypen verwendet.Der Name des Ausgabe-Buckets, den Sie erstellt oder in den Voraussetzungen identifiziert haben.
- Artefakte/Pfad
-
Wird nur mit dem Artefakttyp verwendet.
S3
Wird nicht für andere Artefakttypen verwendet.Der Pfad im Ausgabe-Bucket, in den die ZIP-Datei oder der Ordner eingefügt werden sollen. Wenn Sie keinen Wert für angeben
path
, CodeBuild verwendetnamespaceType
(falls angegeben) und,name
um den Pfad und den Namen der Build-Ausgabe-ZIP-Datei oder des Ordners zu ermitteln. Wenn Sie beispielsweise fürpath
undMyPath
MyArtifact.zip
für angebenname
, würden der Pfad und der Name wie folgt lautenMyPath/MyArtifact.zip
. - Artefakte/ namespaceType
-
Wird nur mit dem Artefakttyp verwendet.
S3
Wird nicht für andere Artefakttypen verwendet.Der Namespace der ZIP-Datei oder des Ordners für die Build-Ausgabe. Gültige Werte sind
BUILD_ID
undNONE
. Verwenden SieBUILD_ID
, um die Build-ID in den Pfad und den Namen für die ZIP-Datei oder den Ordner einzubeziehen. Verwenden Sie andernfallsNONE
. Wenn Sie keinen Wert für angebennamespaceType
, CodeBuild verwendetpath
(falls angegeben) und,name
um den Pfad und den Namen der ZIP-Datei oder des Ordners der Build-Ausgabe zu ermitteln. Wenn Sie beispielsweise für,MyPath
fürpath
undBUILD_ID
MyArtifact.zip
für angebennamespaceType
, würden der Pfad und der Name wie folgt lautenMyPath/
.build-ID
/MyArtifact.zipname
- artifacts/name
-
Wird nur mit dem
S3
Artefakttyp verwendet. Wird nicht für andere Artefakttypen verwendet.Der Name der ZIP-Datei oder des Ordners in der
location
Build-Ausgabe. Wenn Sie beispielsweise fürpath
undMyPath
MyArtifact.zip
für angebenname
, würden der Pfad und der Name wie folgt lautenMyPath/MyArtifact.zip
. - Artefakte/ overrideArtifactName
-
Wird nur mit dem Artefakttyp S3 verwendet. Wird nicht für andere Artefakttypen verwendet.
Optional. Wenn auf gesetzt
true
, hat der imartifacts
Block der Buildspec-Datei angegebene Name Vorrang.name
Weitere Informationen finden Sie unter Referenz zur Build-Spezifikation für CodeBuild. - Artefakte/ Verpackung
-
Wird nur mit dem Artefakttyp verwendet.
S3
Wird nicht für andere Artefakttypen verwendet.Optional. Gibt an, wie die Artefakte verpackt werden sollen. Die zulässigen Werte sind:
- NONE
-
Erstellen Sie einen Ordner, der die Build-Artefakte enthält. Dies ist der Standardwert.
- ZIP
-
Erstellen Sie eine ZIP-Datei, die die Build-Artefakte enthält.
secondaryArtifacts
Optional. Eine Reihe von ProjectArtifactsObjekten, die Informationen zu den Einstellungen für sekundäre Artefakte für ein Build-Projekt enthalten. Sie können bis zu zwölf sekundäre Attribute hinzufügen. secondaryArtifacts
verwendet viele der Einstellungen, die vom Artefakte-Objekt verwendet werden.
Cache
Erforderlich Ein ProjectCacheObjekt, das Informationen zu den Cache-Einstellungen dieses Build-Projekts enthält. Weitere Informationen finden Sie unter Build-Caching.
Umgebung
Erforderlich Ein ProjectEnvironmentObjekt, das Informationen über die Build-Umgebungseinstellungen dieses Projekts enthält. Diese Einstellungen umfassen Folgendes:
- Umgebung/Typ
-
Erforderlich Der Typ der Build-Umgebung. Weitere Informationen finden Sie unter type in der CodeBuild API-Referenz.
- Umgebung/Bild
-
Erforderlich Der Bezeichner des Docker-Images, den diese Build-Umgebung nutzt. Dieser Bezeichner wird normalerweise im Format
image-name
:tag
aufgeführt. In dem Docker-Repository, das zur Verwaltung seiner Docker-Images CodeBuild verwendet wird, könnte dies beispielsweise der Fall sein.aws/codebuild/standard:5.0
Im Docker Hub:maven:3.3.9-jdk-8
. In Amazon ECR,
. Weitere Informationen finden Sie unter Docker-Images bereitgestellt von CodeBuild.account-id
.dkr.ecr.region-id
.amazonaws.com/your-Amazon-ECR-repo-name
:tag
- Umgebung/ ComputeType
-
Erforderlich Gibt die Rechenressourcen an, die von dieser Build-Umgebung verwendet werden. Weitere Informationen finden Sie unter ComputeType in der CodeBuild API-Referenz.
- Umgebung/Zertifikat
-
Optional. Der ARN des Amazon S3 S3-Buckets, das Pfadpräfix und der Objektschlüssel, der das PEM-kodierte Zertifikat enthält. Der Objektschlüssel kann entweder nur die .pem-Datei oder eine .zip-Datei mit dem PEM-codierten Zertifikat sein. Wenn Ihr Amazon S3 S3-Bucket-Name beispielsweise lautet
, Ihr Pfadpräfix ist<my-bucket>
und Ihr Objektschlüsselname lautet<cert>
, dann<certificate.pem>
certificate
sind die akzeptablen Formate für
oder<my-bucket/cert/certificate.pem>
arn:aws:s3:::
.<my-bucket/cert/certificate.pem>
- Umgebung/Umgebungsvariablen
-
Optional. Ein Array von EnvironmentVariableObjekten, das die Umgebungsvariablen enthält, die Sie für diese Build-Umgebung angeben möchten. Jede Umgebungsvariable wird als Objekt ausgedrückt, das ein
name
value
, undtype
vonname
value
, und enthälttype
.Konsole und AWS CLI Benutzer können alle Umgebungsvariablen sehen. Wenn Sie keine Bedenken hinsichtlich der Sichtbarkeit Ihrer Umgebungsvariablen haben, setzen Sie
name
und undvalue
setzen Sietype
sie aufPLAINTEXT
.Wir empfehlen, Umgebungsvariablen mit sensiblen Werten wie einer AWS Zugriffsschlüssel-ID, einem AWS geheimen Zugriffsschlüssel oder einem Passwort als Parameter im Amazon EC2 Systems Manager Parameter Store oder AWS Secrets Manager zu speichern. Geben
name
Sie für diesen gespeicherten Parameter einen Bezeichner ein, CodeBuild auf den verwiesen werden soll.Wenn Sie Amazon EC2 Systems Manager Parameter Store für verwenden
value
, legen Sie den Namen des Parameters so fest, wie er im Parameter Store gespeichert ist. Setzen Sietype
aufPARAMETER_STORE
. Verwenden Sie einen/CodeBuild/dockerLoginPassword
als Beispiel benannten Parameter und setzen Sie ihnname
aufLOGIN_PASSWORD
. Setzen Sievalue
auf/CodeBuild/dockerLoginPassword
. Setzen Sietype
aufPARAMETER_STORE
.Wichtig
Wenn Sie Amazon EC2 Systems Manager Parameter Store verwenden, empfehlen wir, Parameter mit Parameternamen zu speichern, die mit
/CodeBuild/
(z. B./CodeBuild/dockerLoginPassword
) beginnen. Sie können die CodeBuild Konsole verwenden, um einen Parameter in Amazon EC2 Systems Manager zu erstellen. Wählen Sie Create a parameter (Parameter erstellen) aus und befolgen Sie dann die Anweisungen im Dialogfeld. (In diesem Dialogfeld können Sie für KMS-Schlüssel den ARN eines AWS KMS Schlüssels in Ihrem Konto angeben. Amazon EC2 Systems Manager verwendet diesen Schlüssel, um den Wert des Parameters beim Speichern zu verschlüsseln und beim Abrufen zu entschlüsseln.) Wenn Sie die CodeBuild Konsole verwenden, um einen Parameter zu erstellen, beginnt die Konsole den Parameternamen mit dem,/CodeBuild/
wie er gespeichert wird. Weitere Informationen finden Sie unter Systems Manager Parameter Store und Systems Manager Parameter Store Console Walkthrough im Amazon EC2 Systems Manager Manager-Benutzerhandbuch.Wenn sich Ihr Build-Projekt auf Parameter Store von Amazon EC2 Systems Manager bezieht, muss die Service-Rolle des Build-Projekts die
ssm:GetParameters
Aktion zulassen. Wenn Sie zuvor Neue Servicerolle ausgewählt haben, wird CodeBuild diese Aktion in die Standard-Servicerolle für Ihr Build-Projekt aufgenommen. Wenn Sie jedoch Existing service role (Vorhandene Servicerolle) ausgewählt haben, müssen Sie diese Aktion separat in Ihre Servicerolle aufnehmen.Wenn sich Ihr Build-Projekt auf Parameter bezieht, die im Amazon EC2 Systems Manager Parameter Store mit Parameternamen gespeichert sind, die nicht mit beginnen
/CodeBuild/
, und Sie Neue Servicerolle wählen, müssen Sie diese Servicerolle aktualisieren, um Zugriff auf Parameternamen zu gewähren, die nicht mit/CodeBuild/
beginnen. Dies liegt daran, dass diese Service-Rolle nur auf Parameternamen zugreift, die mit/CodeBuild/
beginnen.Wenn Sie Neue Servicerolle wählen, beinhaltet die Servicerolle die Berechtigung, alle Parameter unter dem
/CodeBuild/
Namespace im Amazon EC2 Systems Manager Parameter Store zu entschlüsseln.Von Ihnen gesetzte Umgebungsvariablen ersetzen vorhandene Umgebungsvariablen. Wenn das Docker-Image beispielsweise bereits eine Umgebungsvariable mit dem Namen
MY_VAR
und einem Wert vonmy_value
enthält und Sie eine Umgebungsvariable mit dem NamenMY_VAR
und einem Wert vonother_value
festlegen, wirdmy_value
durchother_value
ersetzt. Wenn das Docker-Image demgegenüber bereits eine Umgebungsvariable mit dem NamenPATH
und einem Wert von/usr/local/sbin:/usr/local/bin
enthält und Sie eine Umgebungsvariable mit dem NamenPATH
und einem Wert von$PATH:/usr/share/ant/bin
festlegen, wird/usr/local/sbin:/usr/local/bin
durch den Literalwert$PATH:/usr/share/ant/bin
ersetzt.Legen Sie keine Umgebungsvariable mit einem Namen fest, der mit
CODEBUILD_
beginnt. Dieses Präfix ist zur -internen Verwendung reserviert.Wenn eine Umgebungsvariable mit identischem Namen an mehreren Orten definiert ist, wird der Wert folgendermaßen bestimmt:
-
Der Wert im Aufruf zum Starten des Build-Vorgangs hat den höchsten Vorrang.
-
Der Wert in der Build-Projektdefinition folgt darauf.
-
Der Wert in der buildspec-Deklaration hat die niedrigste Priorität.
Wenn Sie Secrets Manager verwenden, geben Sie für den Namen des Parameters an
value
, wie er in Secrets Manager gespeichert ist. Setzen Sietype
aufSECRETS_MANAGER
. Verwenden Sie ein/CodeBuild/dockerLoginPassword
als Beispiel benanntes Geheimnis und legen Siename
den Wert auf festLOGIN_PASSWORD
. Setzen Sievalue
auf/CodeBuild/dockerLoginPassword
. Setzen Sietype
aufSECRETS_MANAGER
.Wichtig
Wenn Sie Secrets Manager verwenden, empfehlen wir, Secrets mit Namen zu speichern, die mit
/CodeBuild/
(z. B./CodeBuild/dockerLoginPassword
) beginnen. Weitere Informationen finden Sie unter Was ist AWS Secrets Manager? im AWS Secrets Manager -Benutzerhandbuch.Wenn sich Ihr Build-Projekt auf Geheimnisse bezieht, die in Secrets Manager gespeichert sind, muss die Service-Rolle des Build-Projekts die
secretsmanager:GetSecretValue
Aktion zulassen. Wenn Sie zuvor Neue Servicerolle ausgewählt haben, wird CodeBuild diese Aktion in die Standard-Servicerolle für Ihr Build-Projekt aufgenommen. Wenn Sie jedoch Existing service role (Vorhandene Servicerolle) ausgewählt haben, müssen Sie diese Aktion separat in Ihre Servicerolle aufnehmen.Wenn sich Ihr Build-Projekt auf Geheimnisse bezieht, die in Secrets Manager mit geheimen Namen gespeichert sind, die nicht mit beginnen
/CodeBuild/
, und Sie Neue Dienstrolle ausgewählt haben, müssen Sie die Servicerolle aktualisieren, um Zugriff auf geheime Namen zu ermöglichen, die nicht mit beginnen/CodeBuild/
. Dies liegt daran, dass die Servicerolle nur den Zugriff auf geheime Namen ermöglicht, die mit beginnen/CodeBuild/
.Wenn Sie Neue Dienstrolle wählen, beinhaltet die Dienstrolle die Berechtigung, alle Geheimnisse unter dem
/CodeBuild/
Namespace im Secrets Manager zu entschlüsseln. -
- Umgebung/RegistryCredential
-
Optional. Ein RegistryCredentialObjekt, das die Anmeldeinformationen angibt, die den Zugriff auf eine private Docker-Registrierung ermöglichen.
- Umgebung/RegistryCredential/ Credential
-
Gibt den ARN oder Namen der Anmeldeinformationen an, die mit erstellt wurden AWS Managed Services. Sie können den Namen der Anmeldeinformationen nur verwenden, wenn diese in Ihrer aktuellen Region vorhanden sind.
- Environment/RegistryCredential/ CredentialProvider
-
Der einzige gültige Wert ist
SECRETS_MANAGER
.
Wenn diese Eigenschaft festgelegt ist:
-
muss
imagePullCredentials
aufSERVICE_ROLE
festgelegt sein. -
Das Bild kann kein kuratiertes Bild oder ein Amazon ECR-Bild sein.
- Umgebung/Typ imagePullCredentials
-
Optional. Der Typ der Anmeldeinformationen, die zum Abrufen von Images in Ihrem Build CodeBuild verwendet werden. Es gibt zwei gültige Werte:
- CODEBUILD
-
CODEBUILD
gibt an, dass es seine eigenen Anmeldeinformationen CodeBuild verwendet. Sie müssen Ihre Amazon ECR-Repository-Richtlinie bearbeiten, um dem CodeBuild Service Principal zu vertrauen. - SERVICE_ROLE
-
Gibt an, dass die Servicerolle Ihres Build-Projekts CodeBuild verwendet wird.
Wenn Sie ein kontoübergreifendes oder privates Registrierungs-Image verwenden, müssen Sie
SERVICE_ROLE
-Anmeldeinformationen verwenden. Wenn Sie ein CodeBuild kuratiertes Image verwenden, müssen SieCODEBUILD
Anmeldeinformationen verwenden. - Umgebung/ PrivilegedMode
-
true
Nur festlegen, wenn Sie dieses Build-Projekt zum Erstellen von Docker-Images verwenden möchten. Andernfalls schlagen alle zugehörigen Builds fehl, die versuchen, mit dem Docker-Daemon zu interagieren. Sie müssen zudem den Docker-Daemon müssen, damit Ihre Builds interagieren können. Eine Möglichkeit besteht darin, den Docker-Daemon in derinstall
-Phase der buildspec-Datei zu initialisieren, indem Sie die folgenden Build-Befehle ausführen. Führen Sie diese Befehle nicht aus, wenn Sie ein Image für die Build-Umgebung angegeben haben, das von CodeBuild mit Docker-Unterstützung bereitgestellt wird.Anmerkung
Standardmäßig ist der Docker-Daemon für Nicht-VPC-Builds aktiviert. Wenn Sie Docker-Container für VPC-Builds verwenden möchten, lesen Sie auf der Docker Docs-Website unter Runtime Privilege and Linux Capabilities
nach und aktivieren Sie den privilegierten Modus. Außerdem unterstützt Windows den privilegierten Modus nicht. - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
serviceRole
Erforderlich Der ARN der Servicerolle, der CodeBuild verwendet wird, um im Namen des Benutzers mit Diensten zu interagieren (z. B.arn:aws:iam::
).account-id
:role/role-name
timeoutInMinutes
Optional. Die Anzahl der Minuten zwischen 5 und 2160 (36 Stunden), nach der der Build CodeBuild gestoppt wird, falls er nicht abgeschlossen ist. Wenn Sie keinen anderen Wert angeben, wird der Standardwert von 60 verwendet. Führen Sie den Befehl aus, um festzustellen, ob und wann ein Build aufgrund eines Timeouts CodeBuild gestoppt wurde. batch-get-builds
Überprüfen Sie die Ausgabe eines buildStatus
-Werts von FAILED
, um festzustellen, ob ein Build-Vorgang angehalten wurde. Überprüfen Sie die Ausgabe des endTime
-Werts in Verbindung mit einem phaseStatus
-Wert von TIMED_OUT
, um festzustellen, wann die Zeitbeschränkung bei einem Build-Vorgang überschritten wurde.
queuedTimeoutInMinuten
Optional. Die Anzahl der Minuten zwischen 5 und 480 (8 Stunden), nach denen der Build CodeBuild gestoppt wird, falls er sich noch in der Warteschlange befindet. Wenn Sie keinen anderen Wert angeben, wird der Standardwert von 60 verwendet.
encryptionKey
Optional. Der Alias oder ARN des, der von AWS KMS key verwendet wird CodeBuild , um die Build-Ausgabe zu verschlüsseln. Verwenden Sie zur Angabe eines Alias das Format arn:aws:kms:
oder (bei vorhandenem Alias) region-ID
:account-ID
:key/key-ID
alias/
. Falls nicht angegeben, wird der AWS-managed KMS-Schlüssel für Amazon S3 verwendet.key-alias
tags
Optional. Ein Array von Tag-Objekten, die die Tags bereitstellen, die Sie diesem Build-Projekt zuordnen möchten. Sie können bis zu 50 Tags angeben. Diese Tags können von jedem AWS Dienst verwendet werden, der CodeBuild Build-Projekt-Tags unterstützt. Jedes Tag wird als Objekt mit a key
und a ausgedrücktvalue
.
vpcConfig
Optional. Ein VpcConfigObjekt, das Informationsinformationen zur VPC-Konfiguration für Ihr Projekt enthält. Weitere Informationen finden Sie unter Verwendung AWS CodeBuild mit Amazon Virtual Private Cloud.
Zu diesen Eigenschaften gehören:
- vpcId
-
Erforderlich Die VPC-ID, die CodeBuild verwendet wird. Führen Sie diesen Befehl aus, um eine Liste aller VPC-IDs in Ihrer Region zu erhalten:
aws ec2 describe-vpcs --region
<region-ID>
- Subnetze
-
Erforderlich Ein Array von Subnetz-IDs, die Ressourcen enthalten, die von verwendet werden. CodeBuild Führen Sie diesen Befehl aus, um diese IDs zu erhalten:
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region
<region-ID>
- securityGroupIds
-
Erforderlich Eine Reihe von Sicherheitsgruppen-IDs, die von verwendet werden CodeBuild , um den Zugriff auf Ressourcen in der VPC zu ermöglichen. Führen Sie diesen Befehl aus, um diese IDs zu erhalten:
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=
<vpc-id>
" --<region-ID>
badgeEnabled
Optional. Gibt an, ob Build-Badges in Ihr Projekt aufgenommen werden sollen. CodeBuild Stellen Sie diese Option auf true
ein, um Build-Badges zu aktivieren, oder false
auf eine andere Einstellung. Weitere Informationen finden Sie unter Beispiel für Badges erstellen mit CodeBuild.
LogsConfig
Ein LogsConfigObjekt, das Informationen darüber enthält, wo sich die Logs dieses Builds befinden.
- LogsConfig/ cloudWatchLogs
-
Ein CloudWatchLogsConfigObjekt, das Informationen darüber enthält, wie Logs in Logs übertragen werden. CloudWatch
- LogsConfig/ S3Logs
-
Ein LogsConfigS3-Objekt, das Informationen zur Übertragung von Protokollen an Amazon S3 enthält.
fileSystemLocations
Optional. Eine Reihe von ProjectFileSystemsLocationObjekten, die Informationen über Ihre Amazon EFS-Konfiguration enthalten.
buildBatchConfig
Optional. Das buildBatchConfig
Objekt ist eine ProjectBuildBatchConfigStruktur, die die Batch-Build-Konfigurationsinformationen für das Projekt enthält.
- buildBatchConfig/serviceRole
-
Die Dienstrolle ARN für das Batch-Build-Projekt.
- buildBatchConfig/Kombiniere Artefakte
-
Ein boolescher Wert, der angibt, ob die Build-Artefakte für den Batch-Build an einem einzigen Artefakt-Speicherort kombiniert werden sollen.
- buildBatchConfig/Einschränkungen/ maximumBuildsAllowed
-
Die maximal zulässige Anzahl von Builds.
- buildBatchConfig/Einschränkungen/ computeTypesAllowed
-
Ein Array von Zeichenfolgen, die die Datenverarbeitungstypen angeben, die für den Stapel-Build zulässig sind. Informationen zu diesen Werten finden Sie unter Berechnungstypen für die Build-Umgebung.
- buildBatchConfig/timeoutInMinutes
-
Die maximale Zeitspanne in Minuten, in der der Batch-Build abgeschlossen sein muss.
- buildBatchConfig/batchReportMode
-
Gibt an, wie Build-Statusberichte an den Quellanbieter für den Batch-Build gesendet werden. Gültige Werte sind:
REPORT_AGGREGATED_BATCH
-
(Standard) Aggregieren Sie alle Erstellungsstatus in einem einzigen Statusbericht.
REPORT_INDIVIDUAL_BUILDS
-
Senden Sie für jeden einzelnen Build einen separaten Statusbericht.
concurrentBuildLimit
Die maximale Anzahl gleichzeitiger Builds, die für dieses Projekt zulässig sind.
Neue Builds werden nur gestartet, wenn die aktuelle Anzahl der Builds dieses Limit unterschreitet oder ihm entspricht. Wenn die aktuelle Build-Anzahl dieses Limit erreicht, werden neue Builds gedrosselt und nicht ausgeführt.
Erstellen des Projekts
Um das Projekt zu erstellen, führen Sie den create-project
Befehl erneut aus und übergeben Sie Ihre JSON-Datei:
aws codebuild create-project --cli-input-json file://
<json-file>
Bei Erfolg wird die JSON-Darstellung eines Projektobjekts in der Konsolenausgabe angezeigt. Ein Beispiel für diese Daten finden Sie in der CreateProject Antwortsyntax.
Abgesehen vom Namen des Build-Projekts können Sie alle Einstellungen des Build-Projekts zu einem späteren Zeitpunkt ändern. Weitere Informationen finden Sie unter Ändern der Einstellungen eines Build-Projekts (AWS CLI).
Weitere Informationen zum Starten der Build-Ausführung finden Sie in Ausführen eines Build (AWS CLI).
Wenn Ihr Quellcode in einem GitHub Repository gespeichert ist und Sie den Quellcode jedes Mal neu erstellen CodeBuild möchten, wenn eine Codeänderung in das Repository übertragen wird, finden Sie weitere Informationen unterAusführung von Builds automatisch starten (AWS CLI).