Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Nozioni di base su AWS DevOps Agente che utilizza AWS CDK
Panoramica di
Questa guida mostra come utilizzare il AWS Cloud Development Kit (AWS CDK) per creare e distribuire risorse per gli AWS DevOps agenti. L'applicazione AWS CDK automatizza la creazione di uno spazio agente, dei ruoli IAM ( AWS Identity and Access Management), di un'app per operatori e AWS delle associazioni di account tramite. AWS CloudFormation
L'approccio AWS CDK automatizza i passaggi manuali descritti nella guida all'onboarding della CLI definendo tutte le risorse richieste come infrastruttura in codice.
AWS DevOps L'agente è disponibile in più regioni. AWS Per l'elenco completo, consulta Regioni supportate.
Prerequisiti
Prima di iniziare, assicurati di disporre di:
AWS Interfaccia a riga di comando (AWS CLI) installata e configurata con le credenziali appropriate
Node.js versione 18 o successiva
AWS Interfaccia a riga di comando (CLI) CDK installata a livello globale. Per installare la CLI AWS CDK, esegui il seguente comando:
npm install -g aws-cdk
Un AWS account per l'account di monitoraggio (primario)
(Facoltativo) Un secondo AWS account se desideri configurare il monitoraggio tra più account
Cosa copre questa guida
Questa guida è divisa in due parti:
Parte 1: implementa uno spazio per agenti con un'app per operatori e un' AWS associazione nel tuo account di monitoraggio. Dopo aver completato questa parte, l'agente può monitorare i problemi relativi a quell'account.
Parte 2 (facoltativa): aggiungi un' AWS associazione di origine per un account di servizio e distribuisci un ruolo IAM tra account in quell'account. Questa configurazione consente allo spazio degli agenti di monitorare le risorse tra gli account.
Risorse create
Parte 1: DevOpsAgentStack (account di monitoraggio)
Ruolo IAM (
DevOpsAgentRole-AgentSpace): assunto dal servizio DevOps Agent per monitorare l'account. Include la policyAIDevOpsAgentAccessPolicygestita e una policy in linea che consente la creazione del ruolo collegato al servizio Resource Explorer.Ruolo IAM (
DevOpsAgentRole-WebappAdmin): ruolo dell'app operatore con politicaAIDevOpsOperatorAppAccessPolicygestita per le operazioni degli agenti.Agent space (
MyCDKAgentSpace): lo spazio centrale dell'agente, creato utilizzando laAWS::DevOpsAgent::AgentSpaceCloudFormation risorsa. Include la configurazione dell'app per l'operatore.Associazione (AWS monitor): collega l'account di monitoraggio allo spazio dell'agente utilizzando la
AWS::DevOpsAgent::AssociationCloudFormation risorsa.Associazione (AWS fonte) - (Facoltativo) Collega l'account del servizio allo spazio dell'agente per il monitoraggio tra account.
Parte 2: ServiceStack (account di servizio, opzionale)
Ruolo IAM (
DevOpsAgentRole-SecondaryAccount) — Cross-account ruolo con un nome fisso. Scelto dallo spazio dell'agente nell'account di monitoraggio. Include la policyAIDevOpsAgentAccessPolicygestita e una policy in linea che consente la creazione del ruolo collegato al servizio Resource Explorer.Funzione Lambda (
echo-service): un semplice servizio di esempio che riproduce gli eventi di input.
Configurazione
Fase 1: clonare il repository di esempio
Eseguite i seguenti comandi per clonare il repository e passare alla directory del progetto:
git clone https://github.com/aws-samples/sample-aws-devops-agent-cdk.git cd sample-aws-devops-agent-cdk
Fase 2: Installare le dipendenze
Esegui il comando seguente per installare le dipendenze del progetto:
npm install
Parte 1: Distribuisci lo spazio dell'agente
In questa sezione, crei lo spazio dell'agente, i ruoli IAM, l'app per gli operatori e un' AWS associazione nel tuo account di monitoraggio.
Passaggio 1: configura l'ID dell'account di monitoraggio
Apri lib/constants.ts e imposta l'ID del tuo account di monitoraggio:
L'esempio seguente mostra la costante da aggiornare:
export const MONITORING_ACCOUNT_ID = "<YOUR_MONITORING_ACCOUNT_ID>";
Fase 2: Avvia il AWS Ambiente CDK
Se non hai avviato il AWS CDK nel tuo account di monitoraggio, esegui il seguente comando:
cdk bootstrap aws://<MONITORING_ACCOUNT_ID>/<REGION> --profile monitoring
Fase 3: Compilazione e distribuzione
Esegui i seguenti comandi per creare il TypeScript codice e distribuire lo stack:
npm run build cdk deploy DevOpsAgentStack --profile monitoring
Fase 4: Registrare gli output dello stack
Al termine della distribuzione, il AWS CDK stampa gli output dello stack. Registra questi valori per un uso successivo.
L'esempio seguente mostra l'output previsto:
Outputs: DevOpsAgentStack.AgentSpaceArn = arn:aws:aidevops:<REGION>:123456789012:agentspace/abc123 DevOpsAgentStack.AgentSpaceRoleArn = arn:aws:iam::123456789012:role/DevOpsAgentRole-AgentSpace DevOpsAgentStack.OperatorRoleArn = arn:aws:iam::123456789012:role/DevOpsAgentRole-WebappAdmin DevOpsAgentStack.AssociationId = assoc-xyz
Se intendete completare la parte 2, salvate il AgentSpaceArn valore. È necessario per configurare lo stack degli account di servizio.
Passaggio 5: verifica la distribuzione
Per verificare che lo spazio dell'agente sia stato creato correttamente, esegui il seguente comando AWS CLI:
aws devopsagent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>
A questo punto, lo spazio dell'agente viene distribuito con l'app operatore abilitata e l'account di monitoraggio associato. L'agente può monitorare i problemi relativi a questo account.
Parte 2 (opzionale): aggiungere il monitoraggio su più account
In questa sezione, estendi la configurazione in modo che il tuo spazio agente possa monitorare le risorse in un secondo AWS account (l'account di servizio). Ciò comporta due azioni:
Aggiungere un' AWS associazione di origine DevOpsAgentStack che punti all'account del servizio.
Implementazione dell' ServiceStack account di servizio con un ruolo IAM che consideri attendibile lo spazio dell'agente.
Importante
È necessario completare la Parte 1 prima di procedere. ServiceStack Richiede l'AgentSpaceArnoutput dell' DevOpsAgentStack installazione.
Fase 1: Configurare l'ID dell'account di servizio
Apri lib/constants.ts e imposta l'ID del tuo account di servizio:
L'esempio seguente mostra la costante da aggiornare:
export const SERVICE_ACCOUNT_ID = "<YOUR_SERVICE_ACCOUNT_ID>";
DevOpsAgentStack Crea un' AWS associazione di origine utilizzando questo ID account. Se hai distribuito DevOpsAgentStack prima di impostare questo valore, ridistribuiscilo per creare l'associazione:
Esegui i seguenti comandi per ridistribuire:
npm run build cdk deploy DevOpsAgentStack --profile monitoring
Passaggio 2: imposta l'ARN dello spazio dell'agente
Copia il AgentSpaceArn valore dall' DevOpsAgentStack output (parte 1, passaggio 4) e impostalo inlib/constants.ts:
L'esempio seguente mostra la costante da aggiornare:
export const AGENT_SPACE_ARN = "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/<SPACE_ID>";
ServiceStack Utilizza questo valore per definire la politica di fiducia sul ruolo secondario dell'account. ServiceStack Viene sintetizzato solo quando questo valore è impostato.
Fase 3: Avvia l'account del servizio
Se non hai avviato il AWS CDK nel tuo account di servizio, esegui il seguente comando:
cdk bootstrap aws://<SERVICE_ACCOUNT_ID>/<REGION> --profile service
Fase 4: Implementa il ServiceStack
Esegui i seguenti comandi per creare e distribuire ServiceStack utilizzando le credenziali per l'account di servizio:
npm run build cdk deploy ServiceStack --profile service
Questo crea le seguenti risorse nell'account di servizio:
Un ruolo IAM (
DevOpsAgentRole-SecondaryAccount) che considera attendibile lo spazio dell'agente nell'account di monitoraggioUna funzione echo Lambda (
echo-service) come servizio di esempio
Fase 5: Verifica la distribuzione
Per confermare che la funzione Lambda è stata implementata correttamente, esegui i seguenti comandi per testare il servizio echo:
aws lambda invoke \ --function-name echo-service \ --payload '{"test": "hello world"}' \ --profile service \ response.json cat response.json
Risoluzione dei problemi
Questa sezione descrive i problemi più comuni e come risolverli.
CloudFormation tipo di risorsa non trovato
Verifica di eseguire la distribuzione in unRegioni supportate.
Verifica che la tua AWS CLI sia configurata con le autorizzazioni appropriate.
Creazione del ruolo IAM non riuscita
Verifica che il tuo ruolo di distribuzione disponga delle autorizzazioni per creare ruoli IAM.
Verifica che le condizioni della politica di fiducia corrispondano all'ID del tuo account.
Cross-account la distribuzione non riesce con «Impossibile assumere il ruolo nell'account di destinazione»
Ogni stack deve essere distribuito con le credenziali per l'account di destinazione. Usa il
--profileflag per specificare il profilo AWS CLI corretto.Verifica che il AWS CDK sia stato avviato nell'account di destinazione.
Ritardi di propagazione IAM
La propagazione delle modifiche ai ruoli IAM può richiedere alcuni minuti. Se la creazione dello spazio dell'agente fallisce subito dopo la creazione del ruolo, attendi qualche minuto e ridistribuisci.
Pulizia
Per rimuovere tutte le risorse, distruggi gli stack in ordine inverso.
Esegui i seguenti comandi per distruggere le pile:
# If you deployed the ServiceStack, destroy it first cdk destroy ServiceStack --profile service # Then destroy the DevOpsAgentStack cdk destroy DevOpsAgentStack --profile monitoring
Avviso: questa azione elimina definitivamente lo spazio dell'agente e tutti i dati associati. Questa azione non può essere annullata. Assicurati di aver eseguito il backup di tutte le informazioni importanti prima di procedere.
Considerazioni relative alla sicurezza
L'applicazione AWS CDK crea ruoli IAM con politiche di fiducia che consentono solo al responsabile del
aidevops.amazonaws.com.rproxy.goskope.comservizio di assumerli.Le politiche di fiducia includono condizioni che limitano l'accesso al tuo AWS account specifico e all'ARN dello spazio agente.
Tutte le politiche seguono il principio del privilegio minimo. Rivedi e personalizza le politiche IAM in base ai requisiti di sicurezza della tua organizzazione.
Il ruolo tra account (
DevOpsAgentRole-SecondaryAccount) utilizza un nome fisso e ha come ambito un ARN specifico dello spazio agente.
Fasi successive
Dopo aver distribuito il tuo AWS DevOps agente utilizzando il CDK: AWS
Scopri l'intera gamma di funzionalità dell' DevOps agente nella Guida per l'utente AWS DevOps dell'agente.
Prendi in considerazione l'integrazione dell'implementazione del AWS CDK nelle tue CI/CD pipeline per la gestione automatizzata dell'infrastruttura.
Se registri un'integrazione di terze parti, ottieni l'URL e il segreto del webhook ruotando il webhook nella console. Il AWS CDK viene implementato tramite AWS CloudFormation, il che non restituisce il segreto del webhook come output dello stack. Per istruzioni sulla gestione delle credenziali webhook, vedi Gestione delle credenziali webhook. Richiamo DevOps dell'agente tramite Webhook
Risorse aggiuntive
Esempio di repository CDK
sul sito Web GitHub AWS Riferimento alla libreria di costruzione CDK DevOps Agent nel CDK API Reference AWS