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.
Verwenden von Aktionen zur Bereitstellung auf Elastic Beanstalk GitHub
GitHub Aktionen
Beispiel für einen Arbeitsablauf: Beanstalk Standard-Umgebung
Im folgenden Beispielworkflow wird jedes Mal, wenn Sie zum Branch wechseln, eine Anwendung in einer Beanstalk Standard-Umgebung bereitgestellt. main Erstellen Sie eine .yml Datei in Ihrem Repository unter. .github/workflows/ Die Aktion erstellt die Umgebung, falls sie nicht existiert. In diesem Fall wählt solution-stack-name (oderplatform-arn) die Plattform aus und option-settings muss das Instanzprofil und die Servicerolle bereitstellen, wie unter beschriebenRollen, Instanzprofile und Benutzerrichtlinien von Elastic Beanstalk Service. Wenn die Umgebung bereits vorhanden ist, sind diese Eingaben optional.
Beispiel GitHub Aktionsablauf für eine Beanstalk Standard-Umgebung
name: Deploy to Elastic Beanstalk on: push: branches: - main permissions: id-token: write contents: read jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: arn:aws:iam::123456789012:role/my-github-actions-roleaws-region:us-east-1- name: Deploy to Elastic Beanstalk uses: aws-actions/aws-elasticbeanstalk-deploy@v1 with: aws-region:us-east-1application-name:my-applicationenvironment-name:my-application-envsolution-stack-name: '64bit Amazon Linux 2023 v4.10.0 running Go 1' option-settings: | [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:elasticbeanstalk:environment", "OptionName": "ServiceRole", "Value": "aws-elasticbeanstalk-service-role" } ]
Dieser Workflow checkt Ihr Repository aus, verwendet OpenID Connect (OIDC)
Beispiel für einen Arbeitsablauf: Beanstalk Cluster-Umgebung
In einer Beanstalk Cluster-Umgebung wird ein Container-Image ausgeführt, sodass kein eigenständiges Quellpaket darauf bereitgestellt werden kann. Für die Bereitstellung in einer Beanstalk-Cluster-Umgebung müssen Sie anstelle eines Lösungsstapels oder Plattform-ARN eine der folgenden Eingaben angeben:
-
image-uri— Die URI eines Container-Images, das Ihr Workflow bereits erstellt und an eine Registrierung wie Amazon Elastic Container Registry (Amazon ECR) übertragen hat. Die Aktion erstellt die Anwendungsversion direkt aus dem Image und lädt kein Quellpaket auf Amazon S3 hoch. -
build-configuration— Ein JSON-Objekt, das Elastic Beanstalk mitteilt, wie das Image aus Ihrer Quelle erstellt werden soll, einschließlich derCodeBuildServiceRoleAWS CodeBuild davon ausgehenden Daten und des Build-Typs. Die Aktion lädt Ihr Quellpaket auf Amazon S3 hoch, erstellt die Anwendungsversion mit der Build-Konfiguration und wartet vor der Bereitstellung, bis der Build abgeschlossen ist. Die Build-Einstellungen finden Sie unter. Erstellen von Container-Images für Beanstalk Cluster-Umgebungen
Der folgende Beispiel-Workflow erstellt ein Image, überträgt es an Amazon ECR und stellt es in einer Beanstalk Cluster-Umgebung bereit. Die Aktion erstellt die Umgebung, falls sie nicht existiert. In diesem Fall option-settings muss die unter beschriebenen Cluster-, Knoten- und Observability-Rollen bereitgestellt werdenBerechtigungen für Beanstalk Cluster, und die Rolle, die GitHub Actions annimmt, muss diese übernehmen dürfen.
Beispiel GitHub Aktionsablauf für eine Beanstalk-Cluster-Umgebung
name: Deploy to Elastic Beanstalk on: push: branches: - main permissions: id-token: write contents: read jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: arn:aws:iam::123456789012:role/my-github-actions-roleaws-region:us-east-1- name: Login to Amazon ECR id: ecr uses: aws-actions/amazon-ecr-login@v2 - name: Build and push container image run: | docker build --platform linux/amd64 -t ${{ steps.ecr.outputs.registry }}/my-app:${{ github.sha }} . docker push ${{ steps.ecr.outputs.registry }}/my-app:${{ github.sha }} - name: Deploy to Elastic Beanstalk uses: aws-actions/aws-elasticbeanstalk-deploy@v1 with: aws-region:us-east-1application-name:my-cluster-appenvironment-name:my-cluster-envimage-uri: ${{ steps.ecr.outputs.registry }}/my-app:${{ github.sha }} option-settings: | [ { "Namespace": "aws:elasticbeanstalk:eks", "OptionName": "cluster-role", "Value": "${{ secrets.CLUSTER_ROLE_ARN }}" }, { "Namespace": "aws:elasticbeanstalk:eks", "OptionName": "node-role", "Value": "${{ secrets.NODE_ROLE_ARN }}" }, { "Namespace": "aws:elasticbeanstalk:eks:environment", "OptionName": "observability-role", "Value": "${{ secrets.OBSERVABILITY_ROLE_ARN }}" } ]
Wenn image-uri oder gesetzt build-configuration ist, beträgt die deployment-timeout Eingabe standardmäßig 2400 Sekunden statt 900. Die erste Beanstalk-Cluster-Umgebung auf einer Reihe von Subnetzen stellt einen Amazon EKS-Cluster bereit, was 15 bis 20 Minuten dauert. Spätere Umgebungen in denselben Subnetzen verwenden den Cluster wieder und können in wenigen Minuten bereitgestellt werden.
Die erforderlichen Berechtigungen, das build-configuration Beispiel, die vollständige Liste der Eingaben und weitere Konfigurationsoptionen für beide Umgebungstypen finden Sie in der README-Datei zur Elastic Beanstalk Deploy-Aktion unter.