Stellen Sie eine ChatOps Lösung zur Verwaltung von SAST-Scanergebnissen bereit, indem Sie Amazon Q Developer in Chat-Anwendungen verwenden, benutzerdefinierte Aktionen und AWS CloudFormation - 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.

Stellen Sie eine ChatOps Lösung zur Verwaltung von SAST-Scanergebnissen bereit, indem Sie Amazon Q Developer in Chat-Anwendungen verwenden, benutzerdefinierte Aktionen und AWS CloudFormation

Erstellt von Anand Bukkapatnam Tirumala (AWS)

Übersicht

Dieses Muster stellt eine umfassende Lösung dar, die Amazon Q Developer in Chat-Anwendungen verwendet, um die Verwaltung von SAST-Scanfehlern (Static Application Security Testing) zu optimieren, die gemeldet wurden. SonarQube Dieser innovative Ansatz integriert benutzerdefinierte Aktionen und Benachrichtigungen in eine Konversationsoberfläche und ermöglicht so effiziente Zusammenarbeit und Entscheidungsprozesse innerhalb der Entwicklungsteams.

In der heutigen schnelllebigen Softwareentwicklungsumgebung ist die effiziente Verwaltung der SAST-Scanergebnisse entscheidend für die Aufrechterhaltung der Codequalität und -sicherheit. Viele Unternehmen stehen jedoch vor den folgenden großen Herausforderungen:

  • Verspätete Erkennung kritischer Sicherheitslücken aufgrund ineffizienter Meldesysteme

  • Langsame Entscheidungsprozesse aufgrund unzusammenhängender Genehmigungsabläufe

  • Mangel an sofortigen, umsetzbaren Reaktionen auf SAST-Scanfehler

  • Fragmentierte Kommunikation und Zusammenarbeit im Zusammenhang mit Sicherheitsergebnissen

  • Zeitaufwändige und fehleranfällige manuelle Einrichtung der Infrastruktur für Sicherheitstools

Diese Probleme führen häufig zu erhöhten Sicherheitsrisiken, verzögerten Releases und verminderter Teamproduktivität. Um diesen Herausforderungen effektiv zu begegnen, ist eine Lösung erforderlich, die das SAST-Ergebnismanagement rationalisiert, die Teamzusammenarbeit verbessert und die Bereitstellung der Infrastruktur automatisiert.

Zu den wichtigsten Funktionen der Lösung gehören:

  • Maßgeschneiderte Benachrichtigungen — Warnmeldungen und Benachrichtigungen in Echtzeit werden direkt an die Chat-Kanäle des Teams gesendet, sodass Sicherheitslücken oder Fehler beim SAST-Scan umgehend erkannt und entsprechende Maßnahmen ergriffen werden können.

  • Genehmigungen per Konversation — Beteiligte können Genehmigungsworkflows für SAST-Scanergebnisse nahtlos über die Chat-Oberfläche initiieren und abschließen, wodurch die Entscheidungsprozesse beschleunigt werden.

  • Benutzerdefinierte Aktionen — Teams können auf der Grundlage von SAST-Scanergebnissen benutzerdefinierte Aktionen definieren und ausführen, z. B. das automatische Auslösen von E-Mail-Nachrichten bei Quality-Gate-Ausfällen, wodurch die Reaktionsfähigkeit bei Sicherheitsproblemen verbessert wird.

  • Zentralisierte Zusammenarbeit — Alle Diskussionen, Entscheidungen und Aktionen im Zusammenhang mit SAST-Scans werden in einer einheitlichen Chat-Umgebung abgehalten, wodurch die Zusammenarbeit und der Wissensaustausch zwischen den Teammitgliedern verbessert werden.

  • Infrastructure as Code (IaC) — Die gesamte Lösung ist mit AWS CloudFormation Vorlagen ausgestattet, die eine schnellere und zuverlässigere Bereitstellung der Infrastruktur ermöglichen und gleichzeitig Fehler bei der manuellen Einrichtung reduzieren.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktiver. AWS-Konto

  • Eine AWS Identity and Access Management (IAM-) Rolle mit Berechtigungen zum Erstellen und Verwalten von Ressourcen, die mit den unter Tools AWS-Services aufgelisteten Ressourcen verknüpft sind.

  • Ein Slack-Workspace.

  • Amazon Q Developer in Chat-Anwendungen wurde dem erforderlichen Slack-Workspace als Plugin hinzugefügt. Weitere Informationen findest du unter Apps zu deinem Slack-Workspace hinzufügen in der Slack-Dokumentation. Notiere dir die Workspace-ID von Slack, wie sie auf der AWS Management Console nach erfolgreicher Registrierung angegeben ist.

  • Ein konfigurierter Client für Amazon Q Developer in Chat-Anwendungen, bei dem die Workspace-ID sofort zur Eingabe in der AWS CloudFormation Konsole verfügbar ist. Anweisungen finden Sie unter Konfiguration eines Slack-Clients im Administratorhandbuch für Amazon Q Developer in Chat-Anwendungen.

  • Ein Quell-E-Mail-Konto, das in Amazon Simple Email Service (Amazon SES) erstellt und verifiziert wurde, um Genehmigungs-E-Mail-Nachrichten zu versenden. Anweisungen zur Einrichtung finden Sie unter E-Mail-Identitäten erstellen und verifizieren im Amazon Simple Email Service Developer Guide.

  • Eine Ziel-E-Mail-Adresse für den Empfang von Genehmigungsbenachrichtigungen. Diese Adresse kann ein gemeinsam genutzter Posteingang oder eine bestimmte Team-Verteilerliste sein.

  • Eine betriebsbereite SonarQube Instanz, auf die von Ihrem aus zugegriffen werden kann AWS-Konto. Weitere Informationen finden Sie in den SonarQube Installationsanweisungen.

  • Ein SonarQube Benutzertoken mit Berechtigungen zum Auslösen und Erstellen von Projekten über die Pipeline.

Einschränkungen

  • Die Erstellung von benutzerdefinierten Aktionsschaltflächen ist in dieser Lösung ein manueller Prozess.

  • Einige AWS-Services sind nicht in allen verfügbar AWS-Regionen. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie AWS-Services unter Nach Regionen. Informationen zu bestimmten Endpunkten finden Sie unter Dienstendpunkte und Kontingente. Wählen Sie dort den Link für den Dienst aus.

Architektur

Das folgende Diagramm zeigt den Workflow und die Architekturkomponenten für dieses Muster.

Workflow zur Bereitstellung automatisierter Code-Qualitätssicherung für das Release-Management mithilfe von Amazon Q Developer.

Das Diagramm zeigt den automatisierten Arbeitsablauf zur Sicherung der Codequalität:

  1. Codevorbereitung und Upload:

    • Der Entwickler komprimiert die Codebasis in eine ZIP-Datei.

    • Der Entwickler lädt die ZIP-Datei manuell in einen dafür vorgesehenen Amazon Simple Storage Service (Amazon S3) -Bucket hoch.

  2. Auslösung und AWS Step Functions Orchestrierung von Amazon S3 S3-Ereignissen:

    • Das Amazon S3 S3-Upload-Ereignis löst einen Step Functions Functions-Workflow aus.

    • Step Functions orchestriert einen SAST-Scan mit. SonarQube

    • Der Workflow überwacht den AWS CodeBuild Auftragsstatus, um die nächsten Aktionen festzulegen. Wenn der CodeBuild Vorgang erfolgreich ist (Quality Gate bestanden), wird der Workflow beendet. CodeBuild Schlägt dies fehl, wird eine AWS Lambda Funktion zur Diagnose aufgerufen. Weitere Einzelheiten finden Sie weiter unten in diesem Abschnitt unter AWS Step Functions Logik.

  3. AWS CodeBuild Ausführung:

    • Der CodeBuild Job führt einen SonarQube Scan der hochgeladenen Codebasis aus.

    • Scan-Artefakte werden zur Prüfung und Analyse in einem separaten Amazon S3 S3-Bucket gespeichert.

  4. Fehleranalyse (Lambda-Funktion):

    • CodeBuild Bei einem Fehler wird die CheckBuildStatus Lambda-Funktion ausgelöst.

    • Bei CodeBuild Erfolg wird der Prozess beendet und es sind keine weiteren Maßnahmen erforderlich.

  5. Die Lambda-Funktion analysiert die Fehlerursache (Quality-Gate-Ausfall oder andere Probleme)

    • Die CheckBuildStatus Funktion erstellt eine benutzerdefinierte Nutzlast mit detaillierten Fehlerinformationen.

    • Die CheckBuildStatus Funktion veröffentlicht die benutzerdefinierte Nutzlast in einem Amazon Simple Notification Service (Amazon SNS) -Thema.

  6. Benachrichtigungssystem:

    • Amazon SNS leitet die Nutzdaten in Chat-Anwendungen für die Slack-Integration an Amazon Q Developer weiter.

  7. Slack-Integration:

    • Amazon Q Developer in Chat-Anwendungen veröffentlicht eine Benachrichtigung im dafür vorgesehenen Slack-Kanal.

  8. Genehmigungsprozess:

    • Genehmigende Personen überprüfen die Fehlerdetails in der Slack-Benachrichtigung.

    • Genehmiger können die Genehmigung über die Schaltfläche Genehmigen in Slack einleiten.

  9. Genehmigungshandler:

    • Eine Approval Lambda-Funktion verarbeitet die Genehmigungsaktion von Slack.

    • Die Genehmigungsfunktion veröffentlicht die benutzerdefinierte Nachricht an Amazon SES.

  10. Generierte Nachricht:

    • Die Genehmigungsfunktion generiert eine benutzerdefinierte Nachricht für die Benachrichtigung des Entwicklers.

  11. Benachrichtigung für Entwickler:

    • Amazon SES sendet eine E-Mail-Nachricht mit den nächsten Schritten oder erforderlichen Aktionen an den Entwickler.

Dieser Workflow kombiniert manuelles Hochladen von Code mit automatisierten Qualitätsprüfungen, bietet sofortiges Feedback über Slack und ermöglicht bei Bedarf menschliches Eingreifen, wodurch ein robuster und flexibler Codeüberprüfungsprozess gewährleistet wird.

AWS Step Functions Logik

Wie im vorherigen Architekturdiagramm gezeigt, geht der Workflow zur CheckBuildStatus Lambda-Funktion über, wenn der Quality Gate-Passon SonarQube fehlschlägt. Die CheckBuildStatus Funktion löst eine Benachrichtigung im Slack-Channel aus. Jede Benachrichtigung enthält Informationen mit Vorschlägen für die nächsten Schritte. Im Folgenden sind die Arten von Benachrichtigungen aufgeführt:

  • Die Anwendung ist beim Code-Sicherheitsscan fehlgeschlagen — Der Benutzer erhält diese Benachrichtigung, wenn der hochgeladene Code den SonarQube Sicherheitsscan nicht bestanden hat. Der Benutzer kann APPROVE wählen, um den Build zu akzeptieren. In der Benachrichtigung wird der Benutzer jedoch darauf hingewiesen, sich vor potenziell schlechter Codequalität und Sicherheitsrisiken zu hüten. Die Benachrichtigung enthält die folgenden Einzelheiten:

    • Nächste Schritte: Fehler: Quality Gate-Status: FEHLGESCHLAGEN — Details finden Sie unter der angegebenen URL.

    • Untersuchen Sie die Sicherheitslücken, wie sie im Dokument unter der angegebenen URL erwähnt werden.

    • CodeBuild Einzelheiten sind an der Stelle unter der angegebenen URL verfügbar.

  • Die Pipeline für Anwendungsscans ist aus einem anderen Grund ausgefallen — Der Benutzer erhält diese Benachrichtigung, wenn die Pipeline aus einem anderen Grund als dem fehlgeschlagenen Code-Sicherheitsscan ausgefallen ist. Die Benachrichtigung enthält die folgenden Details:

    • Die nächsten Schritte finden Sie unter dem angegebenen Link zur weiteren Fehlerbehebung.

Um Screenshots der Benachrichtigungen zu sehen, wie sie in einem Slack-Channel erscheinen, gehe zum Assets-Ordner im GitHub chatops-Slack-Repository.

Das folgende Diagramm zeigt ein Beispiel für den Schrittstatus von Step Functions, nachdem der Quality-Gate-Pass fehlgeschlagen ist.

Workflow des AWS Step Functions Functions-Schrittstatus nach einem Fehlschlagen des Quality Gate-Passes.

Tools

AWS-Services

  • Mit Amazon Q Developer in Chat-Anwendungen können Sie die Chat-Kanäle Amazon Chime, Microsoft Teams und Slack verwenden, um betriebliche Ereignisse in Ihren AWS Anwendungen zu überwachen und darauf zu reagieren. Hinweis zum Ende des Supports: Am 20. Februar 2026 AWS wird der Support für den Amazon Chime Chime-Service eingestellt. Nach dem 20. Februar 2026 können Sie nicht mehr auf die Amazon Chime-Konsole oder die Amazon Chime Chime-Anwendungsressourcen zugreifen. Weitere Informationen finden Sie im Blogbeitrag. Dies hat keine Auswirkungen auf die Verfügbarkeit des Amazon Chime SDK-Dienstes.

  • AWS CloudFormationhilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und AWS-Regionen zu verwalten.

  • AWS CodeBuildist ein vollständig verwalteter Build-Service, der Ihnen hilft, Quellcode zu kompilieren, Komponententests durchzuführen und Artefakte zu erstellen, die sofort einsatzbereit sind.

  • AWS Identity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.

  • AWS Key Management Service (AWS KMS) hilft Ihnen dabei, kryptografische Schlüssel zu erstellen und zu kontrollieren, um Ihre Daten zu schützen.

  • AWS Lambda ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

  • Mit AWS Secrets Manager können Sie fest codierte Anmeldeinformationen im Code (einschließlich Passwörter) durch einen API-Aufruf an Secrets Manager ersetzen und das Geheimnis programmgesteuert abrufen.

  • Amazon Simple Email Service (Amazon SES) unterstützt Sie beim Senden und Empfangen von E-Mail-Nachrichten mithilfe Ihrer eigenen E-Mail-Adressen und Domains.

  • Amazon Simple Notification Service (Amazon SNS) unterstützt Sie bei der Koordination und Verwaltung des Nachrichtenaustauschs zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

  • AWS Step Functionsist ein serverloser Orchestrierungsservice, mit dem Sie AWS Lambda Funktionen und andere Funktionen kombinieren können, um geschäftskritische Anwendungen AWS-Services zu erstellen.

Andere Tools

  • Slack, ein Salesforce-Angebot, ist eine KI-gestützte Konversationsplattform, die Chat- und Videozusammenarbeit ermöglicht, Prozesse ohne Code automatisiert und den Informationsaustausch unterstützt.

  • SonarQubeist ein lokales Analysetool, das entwickelt wurde, um Codierungsprobleme in über 30 Sprachen, Frameworks und IaC-Plattformen zu erkennen.

Code-Repository

Der Code für dieses Muster ist im GitHub Chatops-Slack-Repository verfügbar.

Bewährte Methoden

  • CloudFormation Stack-Management — Wenn Sie bei der CloudFormation Stack-Ausführung auf Fehler stoßen, empfehlen wir Ihnen, den ausgefallenen Stack zu löschen. Erstellen Sie ihn anschließend mit den richtigen Parameterwerten neu. Dieser Ansatz unterstützt eine saubere Bereitstellung und hilft, potenzielle Konflikte oder teilweise Implementierungen zu vermeiden.

  • E-Mail-Konfiguration für gemeinsam genutzten Posteingang — Verwenden Sie bei der Konfiguration des SharedInboxEmail Parameters eine gemeinsame Verteilerliste, auf die alle relevanten Entwickler zugreifen können. Dieser Ansatz fördert die Transparenz und trägt dazu bei, dass wichtige Benachrichtigungen die zuständigen Teammitglieder erreichen.

  • Workflow für Produktionsgenehmigungen — Beschränken Sie für Produktionsumgebungen den Zugriff auf den Slack-Channel, der für Build-Genehmigungen verwendet wird. Nur designierte Genehmiger sollten Mitglieder dieses Channels sein. Diese Vorgehensweise gewährleistet eine klare Verantwortungskette und erhöht die Sicherheit, indem begrenzt wird, wer kritische Änderungen genehmigen kann.

  • IAM-Berechtigungen — Folgen Sie dem Prinzip der geringsten Rechte und gewähren Sie nur die für die Ausführung einer Aufgabe erforderlichen Mindestberechtigungen. Weitere Informationen finden Sie in der IAM-Dokumentation unter Gewährung der geringsten Rechte und bewährte Methoden zur Sicherheit.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Klonen Sie das Repository

Verwenden Sie den folgenden Befehl, um das Chatops-Slack-Repository für dieses Muster zu klonen.

git clone “git@github.com:aws-samples/chatops-slack.git“

AWS DevOps, Build-Leiter, DevOps Ingenieur, Cloud-Administrator

Erstellen Sie die ZIP-Dateien, die Lambda-Code enthalten.

Erstellen Sie die .zip-Dateien für den AWS Lambda Funktionscode für die CheckBuildStatus und -Funktionalität. ApprovalEmail Verwenden Sie die folgenden Befehleapproval.zip, um notification.zip und zu erstellen.

cd chatops-slack/src
chmod -R 775 *
zip -r approval.zip approval
zip -r notification.zip notification
AWS DevOps, Build-Leiter, DevOps Ingenieur, Cloud-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten

Führen Sie die pre-requisite.yml Stack-Datei aus.

Die pre-requisite.yml CloudFormation Stack-Datei stellt die anfänglichen Ressourcen bereit, die benötigt werden, bevor Sie die app-security.yml Stack-Datei ausführen. Gehen Sie wie folgt vor, um die pre-requisite.yml Datei auszuführen:

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS CloudFormationKonsole. Wählen Sie Stack erstellen und dann in der Dropdownliste die Option Mit neuen Ressourcen (Standard) aus.

  2. Wählen Sie auf der Seite Stack erstellen die Optionen Vorhandene Vorlage auswählen und Vorlagendatei hochladen aus. Wählen Sie dann Datei auswählen und anschließend pre-requisite.yml aus. Wählen Sie Weiter aus.

  3. Geben Sie auf der Seite „Stack-Details angeben“ Werte für die Parameter ein, wie unter Zusätzliche Informationen beschrieben. Wählen Sie anschließend Weiter.

  4. Wählen Sie auf der Seite „Stack-Optionen konfigurieren“ die IAM-Rolle für die Erstellung der Ressourcen aus, wie unter Voraussetzungen beschrieben. Wählen Sie anschließend Weiter.

  5. Wählen Sie auf der Seite Überprüfen und erstellen die Option Senden aus.

  6. Wählen Sie auf der Detailseite für den Stack die Registerkarten Ressourcen und Ausgaben aus. Notieren Sie sich die Werte für die CKMSKeyId Parameter S3LambdaCKMSKeyArn, und, die in den folgenden Schritten verwendet werden.

AWS-Administrator, AWS DevOps, Build-Leiter, DevOps Ingenieur

Laden Sie die ZIP-Dateien in den Amazon S3 S3-Bucket hoch.

Laden Sie die approval.zip Dateien notification.zip und, die Sie zuvor erstellt haben, in den Amazon S3 S3-Bucket mit dem Namen hochS3LambdaBucket. Die app-security.yml CloudFormation Stack-Datei wird S3LambdaBucket zur Bereitstellung der Lambda-Funktion verwendet.

AWS DevOps, Build-Leiter, DevOps Ingenieur, AWS-Systemadministrator
AufgabeBeschreibungErforderliche Fähigkeiten

Führen Sie die app-security.yml Stack-Datei aus.

Die app-security.yml Stack-Dateien stellen die verbleibende Infrastruktur für das Benachrichtigungs- und Genehmigungssystem bereit. Gehen Sie wie folgt vor, um die app-security.yml Datei auszuführen:

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS CloudFormationKonsole. Wählen Sie Stack erstellen und dann in der Dropdownliste die Option Mit neuen Ressourcen (Standard) aus.

  2. Wählen Sie auf der Seite Stack erstellen die Optionen Vorhandene Vorlage auswählen und Vorlagendatei hochladen aus. Wählen Sie dann Datei auswählen und anschließend app-security.yml aus. Wählen Sie Weiter aus.

  3. Geben Sie auf der Seite „Stack-Details angeben“ Werte für die Parameter ein, wie unter Zusätzliche Informationen beschrieben. Wählen Sie anschließend Weiter.

  4. Wählen Sie auf der Seite „Stack-Optionen konfigurieren“ die IAM-Rolle für die Erstellung der Ressourcen aus, wie unter Voraussetzungen beschrieben. Wählen Sie anschließend Weiter.

  5. Wählen Sie auf der Seite Überprüfen und erstellen die Option Senden aus.

AWS DevOps, AWS-Systemadministrator, DevOps Ingenieur, Build-Leiter

Testen Sie das Benachrichtigungs-Setup.

Gehen Sie wie folgt vor, um das Benachrichtigungs-Setup zu testen:

  1. Öffnen Sie die Amazon-SNS-Konsole. Wählen Sie im linken Navigationsbereich Topics (Themen).

  2. Wählen Sie den Themennamen, der mit LambdaToAWSSlackChatbot endet.

  3. Wählen Sie auf der Detailseite des Themas die Option Nachricht veröffentlichen aus.

  4. Geben Sie auf der Seite Nachricht im Thema veröffentlichen für Nachrichtentext, der an den Endpunkt gesendet werden soll, Folgendes ein:

    { "version": "1.0", "source": "custom", "content": { "description": ":warning: This is a test notification" } }
  5. Wählen Sie Publish message (Nachricht veröffentlichen) aus.

Nachdem die Testnachricht erfolgreich zugestellt wurde, solltest du im Slack-Kanal eine Benachrichtigung sehen. Weitere Informationen findest du unter Testbenachrichtigungen von AWS-Services zu Slack im Administratorhandbuch für Amazon Q Developer in Chat-Anwendungen.

AWS DevOps, AWS-Systemadministrator, DevOps Ingenieur, Build-Leiter
AufgabeBeschreibungErforderliche Fähigkeiten

Konfigurieren Sie eine benutzerdefinierte Lambda-Aktion.

Gehen Sie wie folgt vor, um die benutzerdefinierte AWS Lambda Aktion einzurichten:

  1. Wähle die Schaltfläche mit den vertikalen Auslassungspunkten unten in der Lieferbenachrichtigung in deinem Slack-Kanal.

  2. Wähle unter Aktionen verwalten die Option Erstellen aus.

  3. Geben Sie einen benutzerdefinierten Aktionsnamen ein, zum Beispiel Genehmigen. Dieser Name ist ein eindeutiger Bezeichner für Ihre benutzerdefinierte Aktion.

  4. Geben Sie einen Namen für Ihre benutzerdefinierte Aktionsschaltfläche ein, z. B. Genehmigen. Dieser Name wird auf einer Schaltfläche in Ihrer Benachrichtigung angezeigt. Dieser Name sollte 20 Zeichen oder weniger lang sein und kann Emojis enthalten.

  5. Wählen Sie für Benutzerdefinierter Aktionstyp die Option Lambda-Aktion aus.

  6. Wählen Sie Weiter aus.

  7. Wählen Sie die Aktion AWS-Konto und den AWS-Region Ort aus, an dem Sie diese Aktion bereitstellen möchten.

  8. Wählen Sie Load Lambdas aus.

  9. Wählen Sie unter Lambda-Funktion definieren eine Lambda-Funktion aus, die mit endet. ApprovalEmailLambdaWählen Sie anschließend Weiter.

  10. Um die Schaltfläche „Genehmigen“ zu erstellen, wählen Sie auf der Seite mit den Anzeigekriterien die Option Speichern.

AWS-Administrator, AWS DevOps, Build-Leiter, DevOps Ingenieur, Slack-Administrator

Bestätigen Sie den Genehmigungsablauf.

Um zu überprüfen, ob der Genehmigungsablauf wie erwartet funktioniert, wähle in Slack die Schaltfläche Genehmigen.

Slackbot sollte im Nachrichten-Thread eine Benachrichtigung mit der Bestätigungszeichenfolge Approval Email successfully sent successfully sendeten.

AWS-Administrator, AWS DevOps, DevOps Ingenieur, Slack-Administrator

Fehlerbehebung

ProblemLösung

Fehlkonfigurationen bei Slack

Informationen zur Behebung von Problemen im Zusammenhang mit Fehlkonfigurationen von Slack finden Sie unter Troubleshooting Amazon Q Developer im Administratorhandbuch für Amazon Q Developer in Chat-Anwendungen.

Der Scan ist aus einem anderen Grund fehlgeschlagen

Dieser Fehler bedeutet, dass die Aufgabe zur Codeerstellung fehlgeschlagen ist. Um das Problem zu beheben, rufen Sie den Link in der Nachricht auf. Der Fehler bei der Codeerstellungsaufgabe kann folgende Ursachen haben:

  • Die Anwendung ist nicht richtig gepackt. Der sonar-scanner Befehl kann die sonar.project.env.properties Datei nicht finden.

  • Die Werte für die SonarToken Parameter SonarFileNameSonarFileDirectory, oder sind falsch. Überprüfen Sie die Werte und führen Sie dann die Stack-Dateien erneut aus.

  • Der Sonar-Host ist nicht erreichbar.

  • Andere Probleme, die Sie anhand der Protokolle beheben können.

Zugehörige Ressourcen

AWS Dokumentation

Sonstige Ressourcen

Zusätzliche Informationen

Diese Lösung konzentriert sich auf benutzerdefinierte Aktionen von Amazon Q Developer in Chat-Anwendungen für das Release-Management. Sie können die Lösung jedoch wiederverwenden, indem Sie den Lambda-Code für Ihren speziellen Anwendungsfall ändern und darauf aufbauen.

Parameter von CloudFormation Stack-Dateien

Die folgende Tabelle zeigt die Parameter und ihre Beschreibungen für die CloudFormation Stack-Dateipre-requisite.yml.

Key (Schlüssel)

Beschreibung

StackName

Der Name des CloudFormation Stacks.

S3LambdaBucket

Der Name des Amazon S3 S3-Buckets, in den Sie den Lambda-Code hochladen. Der Name muss global eindeutig sein.

SonarToken

Das SonarQube Benutzertoken, wie unter Voraussetzungen beschrieben.

Die folgende Tabelle zeigt die Parameter und ihre Beschreibungen für die CloudFormation Stack-Dateiapp-security.yml.

Key (Schlüssel)

Beschreibung

CKMSKeyArn

Der AWS KMS key Amazon-Ressourcenname (ARN), der in IAM-Rollen und Lambda-Funktionen verwendet wird, die in diesem Stack erstellt wurden.

CKMSKeyId

Die AWS KMS key ID, die im Amazon SNS SNS-Thema verwendet wird, das in diesem Stack erstellt wurde.

EnvironmentType

Der Name der Client-Umgebung für die Bereitstellung der Application-Scan-Pipeline. Wählen Sie den Umgebungsnamen aus der Dropdownliste der zulässigen Werte aus.

S3LambdaBucket

Der Name des Amazon S3 S3-Buckets, der die approval.zip notification.zip UND-Dateien enthält.

SESEmail

Der Name der registrierten E-Mail-Identität in Amazon SES, wie unter Voraussetzungen beschrieben. Diese Identität ist die Quell-E-Mail-Adresse.

SharedInboxMail

Die Ziel-E-Mail-Adresse, an die die Scan-Benachrichtigungen gesendet werden.

SlackChannelId

Die Kanal-ID des Slack-Channels, an den die Benachrichtigungen gesendet werden sollen. Um die Kanal-ID zu finden, klicke in der Slack-App in den Kanaldetails mit der rechten Maustaste auf den Kanalnamen. Die Kanal-ID befindet sich unten.

SlackWorkspaceId

Die Workspace-ID von Slack, wie unter Voraussetzungen beschrieben. Um die Workspace-ID von Slack zu finden, melden Sie sich bei der an AWS Management Console, öffnen Sie die Amazon Q Developer in Chat-Anwendungskonsole und wählen Sie Konfigurierte Clients, Slack, WorkspaceID aus.

StackName

Der Name des Stacks. CloudFormation

SonarFileDirectory

Das Verzeichnis, das die sonar.project.<env>.properties Datei enthält.

SonarFileName

Der Name der sonar.project.<env>properties Datei.

SourceCodeZip

Der Name der ZIP-Datei, die die sonar.project.<env>properties Datei und den Quellcode enthält.