Wie erstelle ich mithilfe von AWS CloudFormation ein AWS CodeCommit-Repository, das einen bestimmten Standard-Filialnamen verwendet?

Lesedauer: 4 Minute
0

Ich möchte mithilfe von AWS CloudFormation ein AWS CodeCommit-Repository erstellen, das einen bestimmten Standard-Filialnamen verwendet?

Kurzbeschreibung

Am 19. Januar 2021 änderte AWS den Namen des Standard-Branches in CodeCommit von master in main. Diese Namensänderung wirkt sich auf das Standardverhalten von CodeCommit aus, wenn Sie mit einem neuen Repository, das Sie erstellen, wie folgt vorgehen:

  • Verwenden Sie die CodeCommit-Konsole, APIs oder die AWS-Befehlszeilenschnittstelle (AWS CLI) für ein Repository.
  • Erstellen Sie ein Repository mit einer AWS CloudFormation-Vorlage und fügen Sie Code hinzu, wenn Sie die Vorlage erstellen.
    Wichtig: Diese Auswirkung betrifft AWS CloudFormation-Vorlagen nach dem 8. Februar 2021.
  • Erstellen Sie ein Repository und übertragen Sie es mit dem AWS Cloud Development Kit (AWS CDK).
    Wichtig: Diese Auswirkung betrifft AWS CDK-Vorlagen nach dem 8. Februar 2021.

Um Auswirkungen der Namensänderung zu vermeiden, können Sie einen der folgenden Schritte ausführen:

  • Verwenden Sie die Eigenschaft branchName der Ressource AWS::CodeCommit::Repository Code in Ihren AWS CloudFormation-Vorlagen, um den Namen des Standard-Branches anzugeben, den Ihr Code erwartet.
  • Ändern Sie Ihren Code so, dass er den neuen Standardnamen der Hauptzweige erwartet.

Wichtig: Die Namensänderung betrifft nur Repositorys, die nach dem 8. Februar 2021 mit AWS CloudFormation- oder AWS CDK-Vorlagen erstellt wurden.

Hinweis: Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.

Behebung

Wählen Sie eine der folgenden Auflösungen, je nachdem, ob Sie AWS CloudFormation oder das AWS CDK verwenden.

Aktualisieren Sie Ihre AWS CloudFormation-Vorlagen, um einen Standard-Branch mit einem bestimmten Namen zu erstellen

1.    Aktualisieren Sie Ihre Stack-Vorlage und legen Sie die Eigenschaft branchName des CodeCommit-Repositorys auf Ihren Branchnamen fest. Sehen Sie sich die folgenden YAML- und JSON-Beispiele an:

YAML:

  MyRepoResource:
    Type: AWS::CodeCommit::Repository
    Properties:
      RepositoryName: MyRepo
      Code:
        BranchName: DefaultBranchName
        S3: 
          Bucket: MySourceCodeBucket,
          Key: MyKey

JSON:

 {
    "MyRepoResource": {
        "Type": "AWS::CodeCommit::Repository",
        "Properties": {
            "RepositoryName": "MyRepo",
            "Code": {
                "BranchName": "DefaultBranchName",
                "S3": {
                    "Bucket": "MySourceCodeBucket",
                    "Key": "MyKey"
                }
            }
        }
    }
}

Wichtig: Nehmen Sie in Ihren YAML- und JSON-Vorlagen die folgenden Aktualisierungen vor:

Stellen Sie myRepo auf den Namen des CodeCommit-Repositorys ein, das Sie erstellen. Setzen Sie defaultBranchName auf den Standard-Branch, den Sie verwenden, um Code in ein Repository zu importieren. Stellen Sie mySourceCodeBucket auf den Namen oder Amazon Resource Name (ARN) des Amazon Simple Storage Service (Amazon S3) -Buckets ein, der die ZIP-Datei mit dem Inhalt enthält, den Sie in das neue Repository übertragen. Stellen Sie myKey auf den Schlüssel ein, der das Objekt in Amazon S3 identifiziert.

2.    Verwenden Sie die aktualisierte Vorlage, wenn Sie einen neuen AWS CloudFormation-Stack erstellen.

Wenn Sie jetzt einen neuen Stack erstellen, erstellt Ihre AWS CloudFormation-Vorlage ein neues Repository für Sie. Anschließend leitet CodeCommit Ihren Code an einen Standardzweig mit dem spezifischen Namen weiter, den Sie in Ihrer Vorlage definiert haben.

Aktualisieren Sie Ihren AWS CDK-Code, um ein CodeCommit-Repository mit einem angegebenen Standard-Branchnamen zu erstellen

Aktualisieren Sie Ihren AWS CDK-Code, um mithilfe der Eigenschaft cfnRepository.CodeProperty.BranchName einen BranchName anzugeben. BranchName wird dann zum Namen für den Standard-Branch des Repositorys, wenn Ihr Code den ersten Commit erstellt und an dieses Repository weiterleitet.

Das folgende TypeScript-Beispiel zeigt, wie Sie den BranchName festlegen, wenn Sie ein CodeCommit-Repository erstellen:

import * as cdk from '@aws-cdk/core';
import codecommit = require('@aws-cdk/aws-codecommit');
export class CdkCodecommitStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);
    // The code creates a new CodeCommit repository with Branch name DefaultBranchName
      new codecommit.CfnRepository(this, 'MyRepoResource', {
            repositoryName: "MyRepo",
            code: {
              "branchName": "DefaultBranchName",
              "s3": {
                "bucket": "MySourceCodeBucket",
                "key": "MyKey"
              }
            },
        });
  }
}

Wichtig: Nehmen Sie im vorherigen TypeScript-Beispiel die folgenden Aktualisierungen vor:

Stellen Sie myRepo auf den Namen des CodeCommit-Repositorys ein, das Sie erstellen. Setzen Sie defaultBranchName auf den Standard-Branch, den Sie verwenden, um Code in ein Repository zu importieren. Geben Sie mySourceCodeBucket den Namen oder ARN des S3-Buckets an, der die ZIP-Datei mit dem Inhalt enthält, den Sie in das neue Repository übertragen. Stellen Sie myKey auf den Schlüssel ein, der das Objekt in Amazon S3 identifiziert.

Hinweis: Informationen zur Konvertierung des Beispiels in eine andere vom AWS CDK unterstützte Sprache finden Sie unter Translating TypeScript AWS CDK code to other languages.

2.    Verwenden Sie den aktualisierten AWS CDK-Code, wenn Sie AWS CloudFormation-Stacks bereitstellen.

Jetzt erstellt AWS CloudFormation ein neues Repository für Sie. Anschließend leitet CodeCommit den Code im S3-Objekt an einen Standard-Branch mit dem spezifischen Namen weiter, den Sie in Ihrer AWS CDK-App definiert haben.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren