View a markdown version of this page

Erste Schritte mit AWS DevOps Agent verwendet AWS CloudFormation - AWS DevOps Agentin

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.

Erste Schritte mit AWS DevOps Agent verwendet AWS CloudFormation

-Übersicht

Diese Anleitung zeigt Ihnen, wie Sie AWS CloudFormation Vorlagen verwenden, um AWS DevOps Agentenressourcen zu erstellen und bereitzustellen. Die Vorlagen automatisieren die Erstellung eines Agentenbereichs, von AWS Identitäts- und Zugriffsmanagement (IAM) -Rollen, einer Operator-App und von AWS Kontozuordnungen als Infrastruktur in Form von Code.

Der CloudFormation Ansatz automatisiert die im CLI-Onboarding-Leitfaden beschriebenen manuellen Schritte, indem alle erforderlichen Ressourcen in deklarativen YAML-Vorlagen definiert werden.

AWS DevOps Der Agent ist in mehreren Regionen verfügbar. AWS Eine vollständige Liste finden Sie unter Unterstützte Regionen.

Voraussetzungen

Stellen Sie vor dem Beginn sicher, dass Sie über Folgendes verfügen:

  • AWS Die Befehlszeilenschnittstelle (AWS CLI) wurde installiert und mit den entsprechenden Anmeldeinformationen konfiguriert

  • Berechtigungen zum Erstellen von IAM-Rollen und CloudFormation -Stacks

  • Ein AWS Konto für das Überwachungskonto (primäres Konto)

  • (Optional) Ein zweites AWS Konto, wenn Sie eine kontoübergreifende Überwachung einrichten möchten

Was behandelt dieser Leitfaden

Dieses Handbuch ist in die folgenden Teile gegliedert:

  • Teil 1 — Stellen Sie einen Agentenbereich mit einer Operator-App und einer AWS Verknüpfung in Ihrem Überwachungskonto bereit. Nachdem Sie diesen Teil abgeschlossen haben, kann der Agent die Probleme in diesem Konto überwachen.

  • Teil 2 (optional) — Stellen Sie eine kontoübergreifende IAM-Rolle in einem sekundären Konto bereit und fügen Sie eine AWS Quellzuordnung hinzu. Diese Konfiguration ermöglicht es dem Agentenbereich, Ressourcen kontenübergreifend zu überwachen.

  • Teil 3 (optional) — Fügen Sie dem Agentenbereich einen Skill, einen benutzerdefinierten Agenten und einen geplanten Trigger hinzu, damit der Agent über benutzerdefinierte Kenntnisse verfügt und einen benutzerdefinierten Agenten nach einem Zeitplan ausführt.

Teil 1: Stellen Sie den Agentenbereich bereit

In diesem Abschnitt erstellen Sie eine CloudFormation Vorlage, die den Agentenbereich, die IAM-Rollen, die Operator-App und eine AWS Verknüpfung in Ihrem Überwachungskonto bereitstellt.

Schritt 1: Erstellen Sie die Vorlage CloudFormation

Speichern Sie die folgende Vorlage unterdevops-agent-stack.yaml:

AWSTemplateFormatVersion: '2010-09-09' Description: AWS DevOps Agent - Agent Space with IAM roles, operator app, and AWS association Parameters: AgentSpaceName: Type: String Default: MyCloudFormationAgentSpace Description: Name for the agent space AgentSpaceDescription: Type: String Default: Agent space deployed with CloudFormation Description: Description for the agent space Resources: # IAM role assumed by the DevOps Agent service to monitor the account DevOpsAgentSpaceRole: Type: AWS::IAM::Role Properties: RoleName: DevOpsAgentRole-AgentSpace AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: aidevops.amazonaws.com Action: sts:AssumeRole Condition: StringEquals: aws:SourceAccount: !Ref AWS::AccountId ArnLike: aws:SourceArn: !Sub arn:aws:aidevops:${AWS::Region}:${AWS::AccountId}:agentspace/* ManagedPolicyArns: - arn:aws:iam::aws:policy/AIDevOpsAgentAccessPolicy Policies: - PolicyName: AllowCreateServiceLinkedRoles PolicyDocument: Version: '2012-10-17' Statement: - Sid: AllowCreateServiceLinkedRoles Effect: Allow Action: - iam:CreateServiceLinkedRole Resource: - !Sub arn:aws:iam::${AWS::AccountId}:role/aws-service-role/resource-explorer-2.amazonaws.com/AWSServiceRoleForResourceExplorer # IAM role for the operator app interface DevOpsOperatorRole: Type: AWS::IAM::Role Properties: RoleName: DevOpsAgentRole-WebappAdmin AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: aidevops.amazonaws.com Action: - sts:AssumeRole - sts:TagSession Condition: StringEquals: aws:SourceAccount: !Ref AWS::AccountId ArnLike: aws:SourceArn: !Sub arn:aws:aidevops:${AWS::Region}:${AWS::AccountId}:agentspace/* ManagedPolicyArns: - arn:aws:iam::aws:policy/AIDevOpsOperatorAppAccessPolicy # The agent space resource AgentSpace: Type: AWS::DevOpsAgent::AgentSpace DependsOn: - DevOpsAgentSpaceRole - DevOpsOperatorRole Properties: Name: !Ref AgentSpaceName Description: !Ref AgentSpaceDescription OperatorApp: Iam: OperatorAppRoleArn: !GetAtt DevOpsOperatorRole.Arn # Association linking the monitoring account to the agent space MonitorAssociation: Type: AWS::DevOpsAgent::Association Properties: AgentSpaceId: !GetAtt AgentSpace.AgentSpaceId ServiceId: aws Configuration: Aws: AssumableRoleArn: !GetAtt DevOpsAgentSpaceRole.Arn AccountId: !Ref AWS::AccountId AccountType: monitor Outputs: AgentSpaceId: Description: The agent space ID Value: !GetAtt AgentSpace.AgentSpaceId AgentSpaceArn: Description: The agent space ARN Value: !GetAtt AgentSpace.Arn AgentSpaceRoleArn: Description: The agent space IAM role ARN Value: !GetAtt DevOpsAgentSpaceRole.Arn OperatorRoleArn: Description: The operator app IAM role ARN Value: !GetAtt DevOpsOperatorRole.Arn

Schritt 2: Stellen Sie den Stack bereit

Führen Sie den folgenden Befehl aus, um den Stack bereitzustellen. <REGION>Ersetzen Sie durch ein Unterstützte Regionen (z. B.us-east-1).

aws cloudformation deploy \ --template-file devops-agent-stack.yaml \ --stack-name DevOpsAgentStack \ --capabilities CAPABILITY_NAMED_IAM \ --region <REGION>

Schritt 3: Notieren Sie die Stack-Ausgaben

Führen Sie nach Abschluss der Bereitstellung den folgenden Befehl aus, um die Stack-Ausgaben abzurufen. Notieren Sie sich diese Werte zur späteren Verwendung.

aws cloudformation describe-stacks \ --stack-name DevOpsAgentStack \ --query 'Stacks[0].Outputs' \ --region <REGION>

Das folgende Beispiel zeigt die erwartete Ausgabe:

[ { "OutputKey": "AgentSpaceId", "OutputValue": "abc123def456" }, { "OutputKey": "AgentSpaceArn", "OutputValue": "arn:aws:aidevops:<REGION>:<ACCOUNT_ID>:agentspace/abc123def456" }, { "OutputKey": "AgentSpaceRoleArn", "OutputValue": "arn:aws:iam::<ACCOUNT_ID>:role/DevOpsAgentRole-AgentSpace" }, { "OutputKey": "OperatorRoleArn", "OutputValue": "arn:aws:iam::<ACCOUNT_ID>:role/DevOpsAgentRole-WebappAdmin" } ]

Wenn Sie Teil 2 abschließen möchten, speichern Sie den AgentSpaceArn Wert. Sie benötigen ihn, um die kontoübergreifende Rolle zu konfigurieren.

Schritt 4: Überprüfen Sie die Bereitstellung

Führen Sie den folgenden AWS CLI-Befehl aus, um zu überprüfen, ob der Agentenbereich erfolgreich erstellt wurde:

aws devops-agent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>

Zu diesem Zeitpunkt wird Ihr Agentenbereich bereitgestellt, wobei die Operator-App aktiviert und Ihr Überwachungskonto verknüpft ist. Der Agent kann Probleme in diesem Konto überwachen.

Teil 2 (optional): Fügen Sie eine kontoübergreifende Überwachung hinzu

In diesem Abschnitt erweitern Sie das Setup, sodass Ihr Agentenbereich die Ressourcen in einem zweiten AWS Konto (dem Dienstkonto) überwachen kann. Dies beinhaltet zwei Aktionen:

  1. Bereitstellung einer IAM-Rolle in dem Dienstkonto, das dem Agentenbereich vertraut.

  2. Hinzufügen einer AWS Quellzuordnung im Überwachungskonto, die auf das Dienstkonto verweist.

Sie müssen Teil 1 abschließen, bevor Sie fortfahren können. Für die Vorlage für ein Dienstkonto sind die Ausgaben AgentSpaceArn aus dem Stack Teil 1 erforderlich.

Schritt 1: Erstellen Sie die Vorlage für das Dienstkonto

Speichern Sie die folgende Vorlage unterdevops-agent-service-account.yaml. Diese Vorlage erstellt eine kontoübergreifende IAM-Rolle im sekundären Konto.

AWSTemplateFormatVersion: '2010-09-09' Description: AWS DevOps Agent - Cross-account IAM role for secondary account monitoring Parameters: MonitoringAccountId: Type: String Description: The 12-digit AWS account ID of the monitoring account AgentSpaceArn: Type: String Description: The ARN of the agent space from the monitoring account Resources: # Cross-account IAM role trusted by the agent space DevOpsSecondaryAccountRole: Type: AWS::IAM::Role Properties: RoleName: DevOpsAgentRole-SecondaryAccount AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: aidevops.amazonaws.com Action: sts:AssumeRole Condition: StringEquals: aws:SourceAccount: !Ref MonitoringAccountId ArnLike: aws:SourceArn: !Ref AgentSpaceArn ManagedPolicyArns: - arn:aws:iam::aws:policy/AIDevOpsAgentAccessPolicy Policies: - PolicyName: AllowCreateServiceLinkedRoles PolicyDocument: Version: '2012-10-17' Statement: - Sid: AllowCreateServiceLinkedRoles Effect: Allow Action: - iam:CreateServiceLinkedRole Resource: - !Sub arn:aws:iam::${AWS::AccountId}:role/aws-service-role/resource-explorer-2.amazonaws.com/AWSServiceRoleForResourceExplorer Outputs: SecondaryAccountRoleArn: Description: The cross-account IAM role ARN Value: !GetAtt DevOpsSecondaryAccountRole.Arn

Schritt 2: Stellen Sie den Dienstkonto-Stack bereit

Verwenden Sie die Anmeldeinformationen für das Dienstkonto und führen Sie den folgenden Befehl aus:

aws cloudformation deploy \ --template-file devops-agent-service-account.yaml \ --stack-name DevOpsAgentServiceAccountStack \ --capabilities CAPABILITY_NAMED_IAM \ --parameter-overrides \ MonitoringAccountId=<MONITORING_ACCOUNT_ID> \ AgentSpaceArn=<AGENT_SPACE_ARN> \ --region <REGION>

Schritt 3: Fügen Sie die Quelle hinzu AWS Verband

Wechseln Sie zurück zum Überwachungskonto und erstellen Sie eine AWS Quellzuordnung. Sie können dies tun, indem Sie einen separaten Stapel erstellen oder die ursprüngliche Vorlage aktualisieren. Im folgenden Beispiel wird eine eigenständige Vorlage verwendet.

Speichern Sie die folgende Vorlage unterdevops-agent-source-association.yaml:

AWSTemplateFormatVersion: '2010-09-09' Description: AWS DevOps Agent - Source AWS association for cross-account monitoring Parameters: AgentSpaceId: Type: String Description: The agent space ID from the monitoring account stack ServiceAccountId: Type: String Description: The 12-digit AWS account ID of the service account ServiceAccountRoleArn: Type: String Description: The ARN of the DevOpsAgentRole-SecondaryAccount role in the service account Resources: SourceAssociation: Type: AWS::DevOpsAgent::Association Properties: AgentSpaceId: !Ref AgentSpaceId ServiceId: aws Configuration: SourceAws: AccountId: !Ref ServiceAccountId AccountType: source AssumableRoleArn: !Ref ServiceAccountRoleArn Outputs: SourceAssociationId: Description: The source association ID Value: !Ref SourceAssociation

Stellen Sie den Zuordnungsstapel mithilfe der Anmeldeinformationen für das Monitoring-Konto bereit:

aws cloudformation deploy \ --template-file devops-agent-source-association.yaml \ --stack-name DevOpsAgentSourceAssociationStack \ --parameter-overrides \ AgentSpaceId=<AGENT_SPACE_ID> \ ServiceAccountId=<SERVICE_ACCOUNT_ID> \ ServiceAccountRoleArn=arn:aws:iam::<SERVICE_ACCOUNT_ID>:role/DevOpsAgentRole-SecondaryAccount \ --region <REGION>

Teil 3: Einen Skill, einen benutzerdefinierten Agenten und einen geplanten Trigger hinzufügen

Dieser Teil ist optional. In diesem Abschnitt fügen Sie dem Agentenbereich, den Sie in Teil 1 erstellt haben, drei Ressourcen hinzu. Der erste ist ein Skill, den der Agent bei Bedarf lädt. Der zweite ist ein benutzerdefinierter Agent, der den Agenten auf einen bestimmten Workflow beschränkt. Der dritte ist ein geplanter Trigger, der den benutzerdefinierten Agenten automatisch ausführt. Diese Ressourcen verwenden die AWS::DevOpsAgent::Trigger Ressourcentypen AWS::DevOpsAgent::Asset und. Weitere Informationen zur Verwaltung von Assets als Infrastruktur in Form von Code finden Sie unterVerwaltung von Komponenten.

Sie müssen Teil 1 abschließen, bevor Sie fortfahren können. Für diese Vorlage sind die Ausgaben AgentSpaceId aus dem Stack Teil 1 erforderlich.

Schritt 1: Erstellen Sie die Vorlage

Speichern Sie die folgende Vorlage unterdevops-agent-content.yaml. Die Aktion eines zeitbasierten Triggers referenziert den benutzerdefinierten Agenten anhand der Asset-ID im Formularcustom:<assetId>. Die Vorlage verbindet dies automatisch mitFn::GetAtt.

AWSTemplateFormatVersion: '2010-09-09' Description: AWS DevOps Agent - Example skill, custom agent, and scheduled trigger Parameters: AgentSpaceId: Type: String Description: The agent space ID from the Part 1 stack outputs Resources: # A skill the agent loads when relevant ExampleSkill: Type: AWS::DevOpsAgent::Asset Properties: AgentSpaceId: !Ref AgentSpaceId AssetType: skill Metadata: name: rds-performance-investigation description: Investigation procedures for RDS performance issues. agent_types: - GENERIC Files: - Path: SKILL.md ContentText: | # RDS Performance Investigation Use this skill when investigating database latency, connection errors, or query timeouts. # A custom agent that a trigger can invoke ExampleCustomAgent: Type: AWS::DevOpsAgent::Asset Properties: AgentSpaceId: !Ref AgentSpaceId AssetType: custom_agent Metadata: name: rds-firefighter skills: - rds-performance-investigation Files: - Path: AGENT.md ContentText: | # RDS Firefighter Custom agent for RDS incidents. # A time-based trigger that runs the custom agent on a schedule DailyTrigger: Type: AWS::DevOpsAgent::Trigger Properties: AgentSpaceId: !Ref AgentSpaceId Type: TIME_BASED Condition: Schedule: Expression: rate(1 day) Action: actionType: create:task task: agent: !Sub - custom:${AssetId} - AssetId: !GetAtt ExampleCustomAgent.AssetId Status: Active Outputs: SkillAssetId: Description: The skill asset ID Value: !GetAtt ExampleSkill.AssetId CustomAgentAssetId: Description: The custom agent asset ID Value: !GetAtt ExampleCustomAgent.AssetId TriggerId: Description: The trigger ID Value: !GetAtt DailyTrigger.TriggerId

Schritt 2: Stellen Sie den Stack bereit

Führen Sie mithilfe der Anmeldeinformationen für das Überwachungskonto den folgenden Befehl aus. <AGENT_SPACE_ID>Ersetzen Sie ihn durch den Wert aus den Ausgaben von Teil 1.

aws cloudformation deploy \ --template-file devops-agent-content.yaml \ --stack-name DevOpsAgentContentStack \ --parameter-overrides AgentSpaceId=<AGENT_SPACE_ID> \ --region <REGION>

Die Action Eigenschaften AgentSpaceIdType,Condition, und können nur erstellt werden. Wenn Sie eine von ihnen ändern, wird die Ressource ersetzt. Sie können den Trigger Status (ActiveoderInactive) an Ort und Stelle aktualisieren. Stellen Sie ihn auf ein, um den Trigger Inactive anzuhalten, ohne ihn zu löschen. Weitere Informationen zu den anderen Asset-Typen und die vollständige Eigenschaftsreferenz finden Sie unter. Verwaltung von Komponenten

Verifizierung

Überprüfen Sie Ihr Setup, indem Sie die folgenden AWS CLI-Befehle ausführen:

# List your agent spaces aws devops-agent list-agent-spaces \ --region <REGION> # Get details of a specific agent space aws devops-agent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION> # List associations for an agent space aws devops-agent list-associations \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>

Fehlerbehebung

In diesem Abschnitt werden häufig auftretende Probleme und deren Behebung beschrieben.

CloudFormation Der Ressourcentyp wurde nicht gefunden

  • Stellen Sie sicher, dass Sie die Bereitstellung in einem durchführenUnterstützte Regionen.

  • Vergewissern Sie sich, dass Ihre AWS CLI mit den entsprechenden Berechtigungen konfiguriert ist.

Die Erstellung der IAM-Rolle ist fehlgeschlagen

  • Stellen Sie sicher, dass Ihre Bereitstellungsanmeldedaten über Berechtigungen zum Erstellen von IAM-Rollen mit benutzerdefinierten Namen () CAPABILITY_NAMED_IAM verfügen.

  • Vergewissern Sie sich, dass die Bedingungen der Vertrauensrichtlinie mit Ihrer Konto-ID übereinstimmen.

Cross-account Die Bereitstellung schlägt fehl

  • Jeder Stack muss mit Anmeldeinformationen für das Zielkonto bereitgestellt werden. Verwenden Sie das --profile Flag, um das richtige AWS CLI-Profil anzugeben.

  • Stellen Sie sicher, dass der AgentSpaceArn Parameter mit dem exakten ARN aus den Stack-Ausgaben von Teil 1 übereinstimmt.

Verzögerungen bei der IAM-Übertragung

  • Es kann einige Minuten dauern, bis IAM-Rollenänderungen wirksam werden. Wenn die Erstellung des Agentenbereichs unmittelbar nach der Rollenerstellung fehlschlägt, warten Sie einige Minuten und führen Sie die Bereitstellung erneut durch.

Bereinigen

Um alle Ressourcen zu entfernen, löschen Sie die Stapel in umgekehrter Reihenfolge.

Warnung: Durch diese Aktion werden Ihr Agentenbereich und alle zugehörigen Daten dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden. Stellen Sie sicher, dass Sie alle wichtigen Informationen gesichert haben, bevor Sie fortfahren.

Führen Sie die folgenden Befehle aus, um die Stapel zu löschen:

# If you deployed the Part 3 content stack, delete it first aws cloudformation delete-stack \ --stack-name DevOpsAgentContentStack \ --region <REGION> aws cloudformation wait stack-delete-complete \ --stack-name DevOpsAgentContentStack \ --region <REGION> # If you deployed the source association stack, delete it next aws cloudformation delete-stack \ --stack-name DevOpsAgentSourceAssociationStack \ --region <REGION> aws cloudformation wait stack-delete-complete \ --stack-name DevOpsAgentSourceAssociationStack \ --region <REGION> # If you deployed the service account stack, delete it next (using service account credentials) aws cloudformation delete-stack \ --stack-name DevOpsAgentServiceAccountStack \ --region <REGION> aws cloudformation wait stack-delete-complete \ --stack-name DevOpsAgentServiceAccountStack \ --region <REGION> # Delete the main stack last aws cloudformation delete-stack \ --stack-name DevOpsAgentStack \ --region <REGION>

Nächste Schritte

Nachdem Sie Ihren AWS DevOps Agenten bereitgestellt haben, verwenden AWS CloudFormation Sie:

  • Informationen zum Verbinden zusätzlicher Integrationen finden Sie unterKonfiguration von Integrationen und Wissen.

  • Wenn Sie eine Drittanbieter-Integration registrieren, erhalten Sie deren Webhook-URL und den Secret, indem Sie den Webhook in der Konsole rotieren. AWS CloudFormation gibt das Webhook-Geheimnis nicht als Stack-Ausgabe zurück, da es sensibel ist. Anweisungen zur Verwaltung von Webhook-Anmeldeinformationen finden Sie unter Webhook-Anmeldeinformationen verwalten.

  • Weitere Informationen zu den Fähigkeiten und Fähigkeiten von Agenten finden Sie unter. DevOps Fähigkeiten von Agenten

  • Weitere Informationen zur Verwaltung von Fähigkeiten, benutzerdefinierten Agenten und anderen Ressourcen als Infrastruktur in Form von Code finden Sie unterVerwaltung von Komponenten.

  • Informationen zur Operator-Web-App finden Sie unterWas ist eine DevOps Agenten-Web-App?.

  • Detaillierte Eigenschaftsreferenzen für die in diesem Handbuch verwendeten CloudFormation Ressourcentypen finden Sie unter Referenz zum AWS DevOps Agent-Ressourcentyp in der AWS CloudFormation Vorlagenreferenz.