

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Introdução ao AWS DevOps Agent usando o AWS CDK
<a name="getting-started-with-aws-devops-agent-getting-started-with-aws-devops-agent-using-aws-cdk"></a>

## Visão geral do
<a name="overview"></a>

Este guia mostra como usar o AWS Cloud Development Kit (AWS CDK) para criar e implantar recursos do AWS DevOps Agente. O aplicativo AWS CDK automatiza a criação de um espaço de agente, funções de AWS Identity and Access Management (IAM), um aplicativo de operador e associações de contas por meio de. AWS AWS CloudFormation

A abordagem AWS CDK automatiza as etapas manuais descritas no [guia de integração da CLI](https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-with-aws-devops-agent-cli-onboarding-guide.html), definindo todos os recursos necessários como infraestrutura como código.

AWS DevOps O agente está disponível nas seguintes 6 AWS regiões: Leste dos EUA (Norte da Virgínia), Oeste dos EUA (Oregon), Ásia-Pacífico (Sydney), Ásia-Pacífico (Tóquio), Europa (Frankfurt) e Europa (Irlanda). Para obter mais informações sobre as regiões suportadas, consulte[Regiões aceitas](about-aws-devops-agent-supported-regions.md).

## Pré-requisitos
<a name="prerequisites"></a>

Antes de começar, verifique se você tem o seguinte:
+ AWS Interface de linha de comando (AWS CLI) instalada e configurada com as credenciais apropriadas
+ Node.js, versão 18 ou versões posteriores
+ AWS Interface de linha de comando (CLI) do CDK instalada globalmente. Para instalar a CLI do AWS CDK, execute o seguinte comando:

```
npm install -g aws-cdk
```
+ Uma AWS conta para a conta de monitoramento (primária)
+ (Opcional) Uma segunda AWS conta se você quiser configurar o monitoramento entre contas

## O que este guia aborda
<a name="what-this-guide-covers"></a>

Este guia está dividido em duas partes:
+ **Parte 1** — Implante um espaço de agente com um aplicativo de operador e uma AWS associação em sua conta de monitoramento. Depois de concluir essa parte, o agente pode monitorar problemas nessa conta.
+ **Parte 2 (opcional)** — Adicione uma AWS associação de origem para uma conta de serviço e implante uma função do IAM entre contas nessa conta. Essa configuração permite que o espaço do agente monitore recursos em todas as contas.

## Recursos criados
<a name="resources-created"></a>

### Parte 1: DevOpsAgentStack (conta de monitoramento)
<a name="part-1-devopsagentstack-monitoring-account"></a>
+ **Função do IAM** (`DevOpsAgentRole-AgentSpace`) — assumida pelo serviço do DevOps agente para monitorar a conta. Inclui a política `AIDevOpsAgentAccessPolicy` gerenciada e uma política em linha que permite a criação da função vinculada ao serviço Resource Explorer.
+ **Função do IAM** (`DevOpsAgentRole-WebappAdmin`) — Função do aplicativo operador com a política `AIDevOpsOperatorAppAccessPolicy` gerenciada para operações do agente.
+ **Espaço do agente** (`MyCDKAgentSpace`) — O espaço do agente central, criado usando o `AWS::DevOpsAgent::AgentSpace` CloudFormation recurso. Inclui a configuração do aplicativo do operador.
+ **Associação** (AWS monitor) — vincula a conta de monitoramento ao espaço do agente usando o `AWS::DevOpsAgent::Association` CloudFormation recurso.
+ **Associação** (AWS fonte) — (Opcional) Vincula a conta de serviço ao espaço do agente para monitoramento entre contas.

### Parte 2: ServiceStack (conta de serviço, opcional)
<a name="part-2-servicestack-service-account-optional"></a>
+ **Função do IAM** (`DevOpsAgentRole-SecondaryAccount`) — Função entre contas com um nome fixo. Confiável pelo espaço do agente na conta de monitoramento. Inclui a política `AIDevOpsAgentAccessPolicy` gerenciada e uma política em linha que permite a criação da função vinculada ao serviço Resource Explorer.
+ **Função Lambda** (`echo-service`) — Um exemplo simples de serviço que reflete eventos de entrada.

## Configuração
<a name="setup"></a>

### Etapa 1: clonar o repositório de amostra
<a name="step-1-clone-the-sample-repository"></a>

Execute os comandos a seguir para clonar o repositório e mudar para o diretório do projeto:

```
git clone https://github.com/aws-samples/sample-aws-devops-agent-cdk.git
cd sample-aws-devops-agent-cdk
```

### Etapa 2: instalar dependências
<a name="step-2-install-dependencies"></a>

Execute o comando a seguir para instalar as dependências do projeto:

```
npm install
```

## Parte 1: Implantar o espaço do agente
<a name="part-1-deploy-the-agent-space"></a>

Nesta seção, você cria o espaço do agente, as funções do IAM, o aplicativo do operador e uma AWS associação na sua conta de monitoramento.

### Etapa 1: configurar o ID da conta de monitoramento
<a name="step-1-configure-the-monitoring-account-id"></a>

Abra `lib/constants.ts` e defina o ID da sua conta de monitoramento:

O exemplo a seguir mostra a constante a ser atualizada:

```
export const MONITORING_ACCOUNT_ID = "<YOUR_MONITORING_ACCOUNT_ID>";
```

### Etapa 2: Inicializar o ambiente AWS CDK
<a name="step-2-bootstrap-the-aws-cdk-environment"></a>

Se você não inicializou o AWS CDK em sua conta de monitoramento, execute o seguinte comando:

```
cdk bootstrap aws://<MONITORING_ACCOUNT_ID>/<REGION> --profile monitoring
```

### Etapa 3: criar e implantar
<a name="step-3-build-and-deploy"></a>

Execute os comandos a seguir para criar o TypeScript código e implantar a pilha:

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

### Etapa 4: Grave as saídas da pilha
<a name="step-4-record-the-stack-outputs"></a>

Após a conclusão da implantação, o AWS CDK imprime as saídas da pilha. Registre esses valores para uso posterior.

O exemplo a seguir mostra a saída esperada:

```
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 você planeja concluir a Parte 2, salve o `AgentSpaceArn` valor. Você precisa dele para configurar a pilha de contas de serviço.

### Etapa 5: verificar a implantação
<a name="step-5-verify-the-deployment"></a>

Para verificar se o espaço do agente foi criado com êxito, execute o seguinte comando da AWS CLI:

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

Nesse ponto, seu espaço de agente é implantado com o aplicativo do operador ativado e sua conta de monitoramento associada. O agente pode monitorar problemas nessa conta.

## Parte 2 (opcional): adicionar monitoramento entre contas
<a name="part-2-optional-add-cross-account-monitoring"></a>

Nesta seção, você estende a configuração para que seu espaço de agente possa monitorar recursos em uma segunda AWS conta (a conta de serviço). Isso envolve duas ações:

1. Adicionar uma AWS associação de origem na DevOpsAgentStack que aponta para a conta de serviço.

1. Implantando o ServiceStack na conta de serviço com uma função do IAM que confia no espaço do agente.

**Importante**  
**Você deve concluir a Parte 1 antes de continuar. O ServiceStack requer o `AgentSpaceArn` da saída DevOpsAgentStack de implantação.

### Etapa 1: configurar o ID da conta de serviço
<a name="step-1-configure-the-service-account-id"></a>

Abra `lib/constants.ts` e defina o ID da sua conta de serviço:

O exemplo a seguir mostra a constante a ser atualizada:

```
export const SERVICE_ACCOUNT_ID = "<YOUR_SERVICE_ACCOUNT_ID>";
```

O DevOpsAgentStack cria uma AWS associação de origem usando esse ID de conta. Se você implantou o DevOpsAgentStack antes de definir esse valor, reimplante para criar a associação:

Execute os seguintes comandos para reimplantar:

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

### Etapa 2: definir o ARN do espaço do agente
<a name="step-2-set-the-agent-space-arn"></a>

Copie o `AgentSpaceArn` valor da DevOpsAgentStack saída (Parte 1, Etapa 4) e defina-o em`lib/constants.ts`:

O exemplo a seguir mostra a constante a ser atualizada:

```
export const AGENT_SPACE_ARN = "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/<SPACE_ID>";
```

O ServiceStack usa esse valor para definir o escopo da política de confiança na função de conta secundária. O só ServiceStack é sintetizado quando esse valor é definido.

### Etapa 3: inicializar a conta de serviço
<a name="step-3-bootstrap-the-service-account"></a>

Se você não inicializou o AWS CDK na sua conta de serviço, execute o seguinte comando:

```
cdk bootstrap aws://<SERVICE_ACCOUNT_ID>/<REGION> --profile service
```

### Etapa 4: implantar o ServiceStack
<a name="step-4-deploy-the-servicestack"></a>

Execute os comandos a seguir para criar e implantar o ServiceStack usando credenciais para a conta de serviço:

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

Isso cria os seguintes recursos na conta de serviço:
+ Uma função do IAM (`DevOpsAgentRole-SecondaryAccount`) que confia no espaço do agente na conta de monitoramento
+ Uma função echo Lambda `echo-service` () como um serviço de exemplo

### Etapa 5: verificar a implantação
<a name="step-5-verify-the-deployment"></a>

Para confirmar que a função Lambda foi implantada com sucesso, execute os seguintes comandos para testar o serviço echo:

```
aws lambda invoke \
  --function-name echo-service \
  --payload '{"test": "hello world"}' \
  --profile service \
  response.json
cat response.json
```

## Solução de problemas
<a name="troubleshooting"></a>

Esta seção descreve problemas comuns e como resolvê-los.

**CloudFormation tipo de recurso não encontrado**
+ Verifique se você está implantando em um[Regiões aceitas](about-aws-devops-agent-supported-regions.md).
+ Confirme se sua AWS CLI está configurada com as permissões apropriadas.

**Falha na criação da função do IAM**
+ Verifique se sua função de implantação tem permissões para criar funções do IAM.
+ Verifique se as condições da política de confiança correspondem ao ID da sua conta.

**A implantação entre contas falha com “Não foi possível assumir a função na conta de destino”**
+ Cada pilha deve ser implantada com credenciais para a conta de destino. Use o `--profile` sinalizador para especificar o perfil AWS CLI correto.
+ Verifique se o AWS CDK foi inicializado na conta de destino.

**Atrasos na propagação do IAM**
+ As mudanças de função do IAM podem levar alguns minutos para se propagar. Se a criação do espaço do agente falhar imediatamente após a criação da função, aguarde alguns minutos e reimplante.

## Limpeza
<a name="cleanup"></a>

Para remover todos os recursos, destrua as pilhas na ordem inversa.

Execute os seguintes comandos para destruir as pilhas:

```
# If you deployed the ServiceStack, destroy it first
cdk destroy ServiceStack --profile service
# Then destroy the DevOpsAgentStack
cdk destroy DevOpsAgentStack --profile monitoring
```

**Aviso:** essa ação exclui permanentemente o espaço do agente e todos os dados associados. Esta ação não pode ser desfeita. Certifique-se de ter feito backup de todas as informações importantes antes de continuar.

## Considerações sobre segurança
<a name="security-considerations"></a>
+ O aplicativo AWS CDK cria funções do IAM com políticas de confiança que só permitem que o responsável pelo `aidevops.amazonaws.com` serviço as assuma.
+ As políticas de confiança incluem condições que restringem o acesso à sua AWS conta específica e ao ARN do espaço do agente.
+ Todas as políticas seguem o princípio do menor privilégio. Analise e personalize as políticas do IAM com base nos requisitos de segurança da sua organização.
+ A função entre contas (`DevOpsAgentRole-SecondaryAccount`) usa um nome fixo e tem como escopo um ARN de espaço de agente específico.

## Próximas etapas
<a name="next-steps"></a>

Depois de implantar seu AWS DevOps agente usando o AWS CDK:

1. Saiba mais sobre a gama completa de recursos do DevOps Agente no [Guia do Usuário do AWS DevOps Agente](https://docs.aws.amazon.com/devopsagent/latest/userguide/).

1. Considere integrar a implantação do AWS CDK em seus CI/CD pipelines para gerenciamento automatizado da infraestrutura.

## Recursos adicionais do
<a name="additional-resources"></a>
+ [AWS DevOps Guia do usuário do agente](https://docs.aws.amazon.com/devopsagent/latest/userguide/)
+ [Exemplo de repositório CDK](https://github.com/aws-samples/sample-aws-devops-agent-cdk) no site GitHub 
+ [Guia de integração da CLI](https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-with-aws-devops-agent-cli-onboarding-guide.html)