

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à.

# Guida introduttiva all'utilizzo di AWS DevOps Agent con AWS CDK
<a name="getting-started-with-aws-devops-agent-getting-started-with-aws-devops-agent-using-aws-cdk"></a>

## Panoramica di
<a name="overview"></a>

Questa guida mostra come utilizzare il AWS Cloud Development Kit (AWS CDK) per creare e distribuire risorse per AWS DevOps agenti. L'applicazione AWS CDK automatizza la creazione di uno spazio agente, ruoli AWS Identity and Access Management (IAM), un'app operatore e AWS le associazioni di account tramite. AWS CloudFormation

L'approccio AWS CDK automatizza i passaggi manuali descritti nella [guida all'onboarding della CLI](https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-with-aws-devops-agent-cli-onboarding-guide.html) definendo tutte le risorse richieste come infrastruttura come codice.

AWS DevOps L'agente è disponibile nelle seguenti 6 AWS regioni: Stati Uniti orientali (Virginia settentrionale), Stati Uniti occidentali (Oregon), Asia Pacifico (Sydney), Asia Pacifico (Tokyo), Europa (Francoforte) ed Europa (Irlanda). Per ulteriori informazioni sulle regioni supportate, consulta. [Regioni supportate](about-aws-devops-agent-supported-regions.md)

## Prerequisiti
<a name="prerequisites"></a>

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 tratta questa guida
<a name="what-this-guide-covers"></a>

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 all'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 dell'agente di monitorare le risorse tra gli account.

## Risorse create
<a name="resources-created"></a>

### Parte 1: DevOpsAgentStack (account di monitoraggio)
<a name="part-1-devopsagentstack-monitoring-account"></a>
+ **Ruolo IAM** (`DevOpsAgentRole-AgentSpace`): assunto dal servizio DevOps Agent per monitorare l'account. Include la policy `AIDevOpsAgentAccessPolicy` gestita e una policy in linea che consente la creazione del ruolo collegato al servizio Resource Explorer.
+ **IAM role** (`DevOpsAgentRole-WebappAdmin`): ruolo dell'operatore nell'app con policy `AIDevOpsOperatorAppAccessPolicy` gestita per le operazioni degli agenti.
+ **Agent space** (`MyCDKAgentSpace`): lo spazio centrale degli agenti, creato utilizzando la `AWS::DevOpsAgent::AgentSpace` CloudFormation risorsa. Include la configurazione dell'app per l'operatore.
+ **Associazione** (AWS monitor): collega l'account di monitoraggio allo spazio degli agenti utilizzando la `AWS::DevOpsAgent::Association` CloudFormation risorsa.
+ **Associazione** (AWS fonte): (Facoltativo) Collega l'account di servizio allo spazio dell'agente per il monitoraggio tra account.

### Parte 2: ServiceStack (account di servizio, opzionale)
<a name="part-2-servicestack-service-account-optional"></a>
+ **IAM role** (`DevOpsAgentRole-SecondaryAccount`): ruolo interaccount con un nome fisso. Scelto dallo spazio degli agenti nell'account di monitoraggio. Include la policy `AIDevOpsAgentAccessPolicy` gestita 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 di ritorno.

## Configurazione
<a name="setup"></a>

### Fase 1: clonare il repository di esempio
<a name="step-1-clone-the-sample-repository"></a>

Esegui 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
<a name="step-2-install-dependencies"></a>

Esegui il seguente comando per installare le dipendenze del progetto:

```
npm install
```

## Parte 1: Distribuisci lo spazio degli agenti
<a name="part-1-deploy-the-agent-space"></a>

In questa sezione, crei lo spazio degli agenti, i ruoli IAM, l'app operatore e un' AWS associazione nel tuo account di monitoraggio.

### Passaggio 1: configura l'ID dell'account di monitoraggio
<a name="step-1-configure-the-monitoring-account-id"></a>

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 l'ambiente AWS CDK
<a name="step-2-bootstrap-the-aws-cdk-environment"></a>

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: Compila e distribuisci
<a name="step-3-build-and-deploy"></a>

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
<a name="step-4-record-the-stack-outputs"></a>

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 intendi completare la Parte 2, salva il `AgentSpaceArn` valore. È necessario per configurare lo stack di account del servizio.

### Fase 5: Verificare la distribuzione
<a name="step-5-verify-the-deployment"></a>

Per verificare che lo spazio 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 per gli agenti 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 (facoltativa): aggiungi il monitoraggio tra account
<a name="part-2-optional-add-cross-account-monitoring"></a>

In questa sezione, estendete la configurazione in modo che lo spazio dell'agente possa monitorare le risorse in un secondo AWS account (l'account di servizio). Ciò comporta due azioni:

1. Aggiungere un' AWS associazione di origine DevOpsAgentStack che punta all'account di servizio.

1. Implementazione dell'account ServiceStack nell'account di servizio con un ruolo IAM che si fida dello spazio dell'agente.

**Importante**  
**È necessario completare la parte 1 prima di procedere. ServiceStack Richiede l'`AgentSpaceArn`output dell' DevOpsAgentStack implementazione.

### Fase 1: Configurare l'ID dell'account del servizio
<a name="step-1-configure-the-service-account-id"></a>

Apri `lib/constants.ts` e imposta l'ID dell'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 di account. Se hai distribuito DevOpsAgentStack prima di impostare questo valore, ridistribuisci per creare l'associazione:

Esegui i seguenti comandi per ridistribuire:

```
npm run build
cdk deploy DevOpsAgentStack --profile monitoring
```

### Fase 2: Impostare lo spazio dell'agente (ARN)
<a name="step-2-set-the-agent-space-arn"></a>

Copia il `AgentSpaceArn` valore dall' DevOpsAgentStack output (Parte 1, Fase 4) e impostalo in`lib/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 l'ambito della politica di fiducia sul ruolo secondario dell'account. ServiceStack Viene sintetizzato solo quando questo valore è impostato.

### Fase 3: Avvia l'account del servizio
<a name="step-3-bootstrap-the-service-account"></a>

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: Implementare ServiceStack
<a name="step-4-deploy-the-servicestack"></a>

Esegui i seguenti comandi per crearlo e distribuirlo ServiceStack utilizzando le credenziali per l'account del servizio:

```
npm run build
cdk deploy ServiceStack --profile service
```

In questo modo vengono create le seguenti risorse nell'account di servizio:
+ Un ruolo IAM (`DevOpsAgentRole-SecondaryAccount`) che affida lo spazio dell'agente nell'account di monitoraggio
+ Una funzione echo Lambda `echo-service` () come servizio di esempio

### Fase 5: Verificare la distribuzione
<a name="step-5-verify-the-deployment"></a>

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
<a name="troubleshooting"></a>

Questa sezione descrive i problemi più comuni e come risolverli.

**CloudFormation tipo di risorsa non trovato**
+ Verifica di eseguire la distribuzione in un[Regioni supportate](about-aws-devops-agent-supported-regions.md).
+ 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.

**La distribuzione tra account non riesce e viene visualizzato il messaggio «Impossibile assumere il ruolo nell'account di destinazione»**
+ Ogni stack deve essere distribuito con le credenziali per l'account di destinazione. Utilizzate il `--profile` flag 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
<a name="cleanup"></a>

Per rimuovere tutte le risorse, distruggi le pile in ordine inverso.

Esegui i seguenti comandi per distruggere gli stack:

```
# 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
<a name="security-considerations"></a>
+ L'applicazione AWS CDK crea ruoli IAM con policy di fiducia che consentono solo al responsabile del `aidevops.amazonaws.com` servizio di assumerli.
+ Le politiche di fiducia includono condizioni che limitano l'accesso al tuo AWS account specifico e allo spazio ARN dello spazio agente.
+ Tutte le politiche seguono il principio del privilegio minimo. Rivedi e personalizza le policy IAM in base ai requisiti di sicurezza della tua organizzazione.
+ Il ruolo tra account (`DevOpsAgentRole-SecondaryAccount`) utilizza un nome fisso ed è limitato a uno spazio di agenti ARN specifico.

## Fasi successive
<a name="next-steps"></a>

Dopo aver distribuito l' AWS DevOps agente utilizzando il CDK: AWS 

1. Scopri l'intera gamma di funzionalità dell' DevOps agente nella Guida per l'[utente dell'AWS DevOps agente](https://docs.aws.amazon.com/devopsagent/latest/userguide/).

1. Prendi in considerazione l'integrazione dell'implementazione AWS CDK nelle tue CI/CD pipeline per la gestione automatizzata dell'infrastruttura.

## Risorse aggiuntive
<a name="additional-resources"></a>
+ [AWS DevOps Guida per l'utente dell'agente](https://docs.aws.amazon.com/devopsagent/latest/userguide/)
+ [Esempio di repository CDK sul sito](https://github.com/aws-samples/sample-aws-devops-agent-cdk) Web GitHub 
+ [Guida all'onboarding CLI](https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-with-aws-devops-agent-cli-onboarding-guide.html)