Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Führen Sie ereignisgesteuerte und geplante Workloads in großem Umfang mit AWS Fargate aus

Fokusmodus
Führen Sie ereignisgesteuerte und geplante Workloads in großem Umfang mit AWS Fargate aus - AWS Prescriptive Guidance

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.

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.

Erstellt von HARI OHM PRASATH RAJAGOPAL (AWS)

Übersicht

Hinweis: AWS CodeCommit ist für Neukunden nicht mehr verfügbar. Bestandskunden von AWS CodeCommit können den Service weiterhin wie gewohnt nutzen. Weitere Informationen

Dieses Muster beschreibt, wie geplante und ereignisgesteuerte Workloads mithilfe von AWS Fargate in großem Umfang in der Amazon Web Services (AWS) -Cloud ausgeführt werden.

In dem Anwendungsfall, den dieses Muster einrichtet, wird der Code immer dann nach sensiblen AWS-Informationen wie der AWS-Kontonummer und den Anmeldeinformationen durchsucht, wenn eine Pull-Anfrage eingereicht wird. Die Pull-Anfrage initiiert eine Lambda-Funktion. Die Lambda-Funktion ruft eine Fargate-Aufgabe auf, die sich um den Codescan kümmert. Lambda wird immer dann initiiert, wenn eine neue Pull-Anfrage gestellt wird. Wenn beim Scan vertrauliche Informationen gefunden werden, sendet Amazon Simple Notification Service (Amazon SNS) die Scanergebnisse in einer E-Mail-Nachricht.

Dieses Muster ist in den folgenden Geschäftsanwendungsfällen hilfreich:

  • Wenn Ihr Unternehmen viele geplante und ereignisgesteuerte Workloads ausführen muss, die aufgrund von Einschränkungen in Bezug auf Laufzeit (15-Minuten-Limit) oder Arbeitsspeicher nicht von AWS Lambda ausgeführt werden können

  • Wenn Sie möchten, dass AWS die für diese Workloads bereitgestellten Instances verwaltet

Wenn Sie dieses Muster verwenden, haben Sie die Möglichkeit, eine neue Virtual Private Cloud (VPC) zu erstellen. Dieses Muster verwendet AWS CodeCommit auch.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktives AWS-Konto

  • AWS CodeCommit für das Hosten der Codebasis und das Erstellen von Pull-Requests

  • AWS-Befehlszeilenschnittstelle (AWS CLI) Version 1.7 oder höher, installiert und konfiguriert auf macOS, Linux oder Windows

  • Workloads, die in Containern ausgeführt werden

  • Ausführbare Apache Maven-Datei, die im Klassenpfad eingerichtet ist

Architektur

Pull-Request-Prozess, der zu einer Fargate-Aufgabe im Container und einem SNS-Thema führt, das E-Mails sendet.

Der gesamte Ablauf umfasst die folgenden Schritte.

  1. Immer wenn eine neue Pull-Anfrage eingereicht wird CodeCommit, wird eine Lambda-Funktion initiiert. Die Lambda-Funktion überwacht das CodeCommit Pull Request State Change Ereignis über Amazon. EventBridge

  2. Die Lambda-Funktion sendet eine neue Fargate-Aufgabe mit den folgenden Umgebungsparametern zum Auschecken und Scannen des Codes.

    RUNNER → <<TaskARN>> SNS_TOPIC → <<SNSTopicARN>> SUBNET → <<Subnet in which Fargate task gets launched>>

    Findet der Scan vertrauliche Informationen im Code, leitet Fargate eine neue Nachricht an das Amazon SNS SNS-Thema weiter.

  3. Ein SNS-Abonnent liest die Nachricht aus dem Thema und sendet eine E-Mail-Nachricht.

Technologie

  • AWS CodeCommit

  • Amazon Elastic Container Registry (Amazon ECR)

  • Amazon Elastic Container Service (Amazon ECS)

  • Amazon EventBridge

  • AWS Fargate

  • AWS Lambda

  • Amazon SNS

  • Docker

Tools

Tools

  • AWS CLI — Die AWS-Befehlszeilenschnittstelle (CLI) ist ein einheitliches Tool zur Verwaltung Ihrer AWS-Services.

  • AWS CodeCommit — AWS CodeCommit ist ein vollständig verwalteter Quellcodeverwaltungsservice, der sichere Git-basierte Repositorys hostet. Auf diese CodeCommit Weise können Teams in einer sicheren und hochgradig skalierbaren Umgebung gemeinsam an Code arbeiten.

  • Amazon ECR — Amazon Elastic Container Registry (Amazon ECR) ist eine vollständig verwaltete Registry, die Entwickler zum Speichern, Verwalten und Bereitstellen von Docker-Container-Images verwenden können.

  • Amazon ECS — Amazon Elastic Container Service (Amazon ECS) ist ein hoch skalierbarer, schneller Container-Management-Service. Sie können Amazon ECS verwenden, um Container in einem Cluster auszuführen, zu stoppen und zu verwalten.

  • AWS Fargate — AWS Fargate ist eine Technologie, die Sie mit Amazon ECS verwenden können, um Container auszuführen, ohne Server oder Cluster von EC2 Amazon-Instances verwalten zu müssen.

  • AWS Lambda — AWS Lambda ist ein Rechenservice, der die Ausführung von Code unterstützt, ohne Server bereitzustellen oder zu verwalten. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde.

  • Amazon SNS — Amazon Simple Notification Service (Amazon SNS) ist ein verwalteter Service, der die Nachrichtenzustellung von Verlagen an Abonnenten (auch bekannt als Produzenten und Verbraucher) ermöglicht. Herausgeber kommunizieren asynchron mit Abonnenten, indem sie eine Nachricht erstellen und an ein Thema senden, bei dem es sich um einen logischen Zugriffspunkt und Kommunikationskanal handelt. Kunden, die das SNS-Thema abonnieren, erhalten veröffentlichte Nachrichten über ein unterstütztes Protokoll wie Lambda, E-Mail, mobile Push-Benachrichtigungen und mobile Textnachrichten (SMS).

  • Docker — Docker unterstützt Sie beim Erstellen, Testen und Bereitstellen von Anwendungen in Paketen, die als Container bezeichnet werden.

  • Git-Client — Befehlszeilen- oder Desktop-Tool zum Auschecken der benötigten Artefakte

  • Maven — Apache Maven ist ein Projektmanagement-Tool zur zentralen Verwaltung des Builds, der Berichterstattung und der Dokumentation eines Projekts.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Laden Sie den Code herunter.

Laden Sie im Bereich Anlagen die ZIP-Datei herunter und extrahieren Sie die Dateien.

Entwickler, AWS-Systemadministrator

Richten Sie das Repo ein.

Führen Sie es mvn clean install im Stammordner aus.

Entwickler, AWS-Systemadministrator

Richten Sie das lokale Repository ein

AufgabeBeschreibungErforderliche Fähigkeiten

Laden Sie den Code herunter.

Laden Sie im Bereich Anlagen die ZIP-Datei herunter und extrahieren Sie die Dateien.

Entwickler, AWS-Systemadministrator

Richten Sie das Repo ein.

Führen Sie es mvn clean install im Stammordner aus.

Entwickler, AWS-Systemadministrator
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie ein Amazon ECR-Repository und melden Sie sich an.

Öffnen Sie die Amazon ECR-Konsole. Wählen Sie im Navigationsbereich Repositories und dann Create repository aus. Hilfe zu dieser und anderen Geschichten finden Sie im Abschnitt Verwandte Ressourcen.

Entwickler, AWS-Systemadministrator

Pushen Sie Ihr Container-Image.

Öffnen Sie das Repository, wählen Sie Push-Befehle anzeigen und melden Sie sich bei Docker an. Nachdem Sie angemeldet sind, führen Sie die Befehle mit den erforderlichen Ersetzungen aus, die sich unter Push the container image im Abschnitt Zusätzliche Informationen befinden. Dadurch wird das Docker-Container-Image hochgeladen, das zum Scannen von Code verwendet wird. Nachdem der Upload abgeschlossen ist, kopieren Sie die URL des neuesten Builds in das Amazon ECR-Repository.

Entwickler, AWS-Systemadministrator

Erstellen Sie ein Amazon ECR-Image und übertragen Sie das Image

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie ein Amazon ECR-Repository und melden Sie sich an.

Öffnen Sie die Amazon ECR-Konsole. Wählen Sie im Navigationsbereich Repositories und dann Create repository aus. Hilfe zu dieser und anderen Geschichten finden Sie im Abschnitt Verwandte Ressourcen.

Entwickler, AWS-Systemadministrator

Pushen Sie Ihr Container-Image.

Öffnen Sie das Repository, wählen Sie Push-Befehle anzeigen und melden Sie sich bei Docker an. Nachdem Sie angemeldet sind, führen Sie die Befehle mit den erforderlichen Ersetzungen aus, die sich unter Push the container image im Abschnitt Zusätzliche Informationen befinden. Dadurch wird das Docker-Container-Image hochgeladen, das zum Scannen von Code verwendet wird. Nachdem der Upload abgeschlossen ist, kopieren Sie die URL des neuesten Builds in das Amazon ECR-Repository.

Entwickler, AWS-Systemadministrator
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie das CodeCommit Repository.

Um ein neues CodeCommit AWS-Repository zu erstellen, führen Sie den Befehl unter CodeCommit Repository erstellen im Abschnitt Zusätzliche Informationen aus.

Entwickler, AWS-Systemadministrator

Erstellen Sie das CodeCommit Repository

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie das CodeCommit Repository.

Um ein neues CodeCommit AWS-Repository zu erstellen, führen Sie den Befehl unter CodeCommit Repository erstellen im Abschnitt Zusätzliche Informationen aus.

Entwickler, AWS-Systemadministrator
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine VPC.

Wenn Sie eine neue VPC anstelle einer vorhandenen verwenden möchten, führen Sie die Befehle unter VPC erstellen im Abschnitt Zusätzliche Informationen aus. Das AWS Cloud Development Kit (AWS CDK) -Skript gibt die Daten IDs der erstellten VPC und des Subnetzes aus.

Entwickler, AWS-Systemadministrator

Erstellen Sie die VPC (optional)

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine VPC.

Wenn Sie eine neue VPC anstelle einer vorhandenen verwenden möchten, führen Sie die Befehle unter VPC erstellen im Abschnitt Zusätzliche Informationen aus. Das AWS Cloud Development Kit (AWS CDK) -Skript gibt die Daten IDs der erstellten VPC und des Subnetzes aus.

Entwickler, AWS-Systemadministrator
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie den Cluster und die Aufgabe.

Um einen Amazon ECS-Cluster und eine Fargate-Aufgabendefinition zu erstellen, führen Sie die Befehle unter Cluster und Aufgabe erstellen im Abschnitt Zusätzliche Informationen aus. Stellen Sie sicher, dass bei der Ausführung des Shell-Skripts die richtige VPC-ID und der Amazon ECR-Repo-URI als Parameter übergeben werden. Das Skript erstellt eine Fargate-Aufgabendefinition, die auf das Docker-Image (verantwortlich für das Scannen) verweist. Das Skript erstellt dann einen Job und eine zugehörige Ausführungsrolle.

Entwickler, AWS-Systemadministrator

Überprüfen Sie den Amazon ECS-Cluster.

Öffnen Sie die Amazon-ECS-Konsole. Wählen Sie im Navigationsbereich Clusters und dann den neu erstellten Amazon ECS-Cluster mit dem Namen Fargate-Job-Cluster aus. Wählen Sie anschließend im Navigationsbereich Aufgabendefinition aus und vergewissern Sie sich, dass es eine neue Aufgabendefinition mit dem Präfix gibt. awscdkfargateecsTaskDef

Entwickler, AWS-Systemadministrator

Erstellen Sie den Amazon ECS-Cluster und die Fargate-Aufgabe

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie den Cluster und die Aufgabe.

Um einen Amazon ECS-Cluster und eine Fargate-Aufgabendefinition zu erstellen, führen Sie die Befehle unter Cluster und Aufgabe erstellen im Abschnitt Zusätzliche Informationen aus. Stellen Sie sicher, dass bei der Ausführung des Shell-Skripts die richtige VPC-ID und der Amazon ECR-Repo-URI als Parameter übergeben werden. Das Skript erstellt eine Fargate-Aufgabendefinition, die auf das Docker-Image (verantwortlich für das Scannen) verweist. Das Skript erstellt dann einen Job und eine zugehörige Ausführungsrolle.

Entwickler, AWS-Systemadministrator

Überprüfen Sie den Amazon ECS-Cluster.

Öffnen Sie die Amazon-ECS-Konsole. Wählen Sie im Navigationsbereich Clusters und dann den neu erstellten Amazon ECS-Cluster mit dem Namen Fargate-Job-Cluster aus. Wählen Sie anschließend im Navigationsbereich Aufgabendefinition aus und vergewissern Sie sich, dass es eine neue Aufgabendefinition mit dem Präfix gibt. awscdkfargateecsTaskDef

Entwickler, AWS-Systemadministrator
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie ein SNS-Thema.

Um ein SNS-Thema zu erstellen, führen Sie den Befehl unter SNS-Thema erstellen im Abschnitt Zusätzliche Informationen aus. Notieren Sie sich nach erfolgreicher Erstellung denSNS ARN, der im nächsten Schritt verwendet wird.

Entwickler, AWS-Systemadministrator

Erstellen Sie den SNS-Abonnenten.

Um einen E-Mail-Abonnenten für das SNS-Thema zu erstellen, führen Sie den Befehl unter SNS-Abonnent erstellen im Abschnitt Zusätzliche Informationen aus. Stellen Sie sicher, dass Sie den Befehl ersetzen TopicARN und Email address im CLI-Befehl verwenden. Um E-Mail-Benachrichtigungen zu erhalten, stellen Sie sicher, dass Sie die E-Mail-Adresse bestätigen, die als Abonnent verwendet wird.

Entwickler, AWS-Systemadministrator

Erstellen Sie das SNS-Thema und den Abonnenten

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie ein SNS-Thema.

Um ein SNS-Thema zu erstellen, führen Sie den Befehl unter SNS-Thema erstellen im Abschnitt Zusätzliche Informationen aus. Notieren Sie sich nach erfolgreicher Erstellung denSNS ARN, der im nächsten Schritt verwendet wird.

Entwickler, AWS-Systemadministrator

Erstellen Sie den SNS-Abonnenten.

Um einen E-Mail-Abonnenten für das SNS-Thema zu erstellen, führen Sie den Befehl unter SNS-Abonnent erstellen im Abschnitt Zusätzliche Informationen aus. Stellen Sie sicher, dass Sie den Befehl ersetzen TopicARN und Email address im CLI-Befehl verwenden. Um E-Mail-Benachrichtigungen zu erhalten, stellen Sie sicher, dass Sie die E-Mail-Adresse bestätigen, die als Abonnent verwendet wird.

Entwickler, AWS-Systemadministrator
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie die Funktion und den Auslöser.

Um eine Lambda-Funktion mit einem CodeCommit Trigger zu erstellen, führen Sie den Befehl unter Lambda-Funktion und CodeCommit Trigger im Abschnitt Zusätzliche Informationen aus. Stellen Sie sicher, dass Sie die Parameter durch die entsprechenden Werte ersetzen, bevor Sie den Befehl ausführen. Das Skript erstellt die Lambda-Funktion und konfiguriert sie so, dass sie aufgerufen wird, wenn eine neue Pull-Anfrage gestellt wird.

Entwickler, AWS-Systemadministrator

Lambda-Funktion erstellen und auslösen CodeCommit

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie die Funktion und den Auslöser.

Um eine Lambda-Funktion mit einem CodeCommit Trigger zu erstellen, führen Sie den Befehl unter Lambda-Funktion und CodeCommit Trigger im Abschnitt Zusätzliche Informationen aus. Stellen Sie sicher, dass Sie die Parameter durch die entsprechenden Werte ersetzen, bevor Sie den Befehl ausführen. Das Skript erstellt die Lambda-Funktion und konfiguriert sie so, dass sie aufgerufen wird, wenn eine neue Pull-Anfrage gestellt wird.

Entwickler, AWS-Systemadministrator
AufgabeBeschreibungErforderliche Fähigkeiten

Testen Sie die Anwendung.

Wenn Sie vertrauliche AWS-Informationen in das CodeCommit Repo einchecken, sollte die Lambda-Funktion initiiert werden. Die Lambda-Funktion initiiert die Fargate-Aufgabe, die den Code scannt und die Scanergebnisse in einer E-Mail-Benachrichtigung sendet.

Entwickler, AWS-Systemadministrator

Testen der Anwendung

AufgabeBeschreibungErforderliche Fähigkeiten

Testen Sie die Anwendung.

Wenn Sie vertrauliche AWS-Informationen in das CodeCommit Repo einchecken, sollte die Lambda-Funktion initiiert werden. Die Lambda-Funktion initiiert die Fargate-Aufgabe, die den Code scannt und die Scanergebnisse in einer E-Mail-Benachrichtigung sendet.

Entwickler, AWS-Systemadministrator

Zugehörige Ressourcen

Zusätzliche Informationen

Übertragen Sie das Container-Image

> cd 1-ecr-image-push > ./run.sh <<ecr-repository>>

Erstellen Sie das CodeCommit Repository

aws codecommit create-repository --repository-name test-repo --repository-description "My Test repository"

Erstellen einer VPC

> cd 2-create-vpc > ./run.sh

Ausgabe

aws-batch-cdk-vpc-efs-launch-template.privatesubnet = subnet-<<id>> aws-batch-cdk-vpc-efs-launch-template.publicsubnet = subnet-<<id>> aws-batch-cdk-vpc-efs-launch-template.vpcid = vpc-<<id>>

Erstellen Sie den Cluster und die Aufgabe

> export CDK_DEFAULT_ACCOUNT = <<aws_account_id>> > export CDK_DEFAULT_REGION = <<aws_region>> > cd 3-create-ecs-task > ./run.sh <<vpc-id>> <<ecr-repo-uri>>

Ausgabe

aws-cdk-fargate-ecs.CLUSTERNAME = Fargate-Job-Cluster aws-cdk-fargate-ecs.ClusterARN = <<cluster_arn>> aws-cdk-fargate-ecs.ContainerARN = Fargate-Container aws-cdk-fargate-ecs.TaskARN = <<task_arn>> aws-cdk-fargate-ecs.TaskExecutionRole = <<execution_role_arn>> aws-cdk-fargate-ecs.TaskRole = <<task_role_arn>>

Erstellen Sie das SNS-Thema

aws sns create-topic --name code-commit-topic

Erstellen Sie den SNS-Abonnenten

aws sns subscribe \ --topic-arn <<topic_arn>> \ --protocol email \ --notification-endpoint <<email_address>>

Lambda-Funktion und Trigger CodeCommit

> export CDK_DEFAULT_ACCOUNT = <<aws_account_id>> > export CDK_DEFAULT_REGION = <<aws_region>> > cd 5-Lambda-CodeCommit-Trigger > ./run.sh <<taskarn>> <<snstopicarn>> subnet-<<id>> <<codecommitarn>>

Ausgabe

aws-cdk-fargate-lambda-event.Cloudwatchrule = <<cloudwatchrule>> aws-cdk-fargate-lambda-event.CodeCommitLambda = AWS-Code-Scanner-Function aws-cdk-fargate-lambda-event.LambdaRole = <<lambdaiamrole>>

Anlagen

Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.