

O AWS SDK para JavaScript v2 chegou ao fim do suporte. Recomendamos migrar para o [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalhes e informações sobre como migrar, consulte este [anúncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Uso de filtros de assinatura do Amazon CloudWatch Logs
<a name="cloudwatch-examples-subscriptions"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/pt_br/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**Este exemplo de código Node.js mostra:**
+ Como criar e excluir filtros para eventos de log no CloudWatch Logs.

## O cenário
<a name="cloudwatch-examples-subscriptions-scenario"></a>

As assinaturas dão acesso a um feed em tempo real de eventos de log do CloudWatch Logs e entrega esse feed a outros serviços, como um stream do Amazon Kinesis ou AWS Lambda, para processamento personalizado, análise ou carregamento em outros sistemas. Um filtro de assinatura define o padrão a ser usado para filtrar quais eventos de log são entregues ao seu recurso da AWS.

Neste exemplo, uma série de módulos Node.js é usada para listar, criar e excluir um filtro de assinatura no CloudWatch Logs. O destino dos eventos de log é uma função Lambda. Os módulos Node.js usam o SDK para JavaScript para gerenciar filtros de assinatura usando esses métodos da classe de clientedo `CloudWatchLogs`:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#putSubscriptionFilters-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#putSubscriptionFilters-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#describeSubscriptionFilters-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#describeSubscriptionFilters-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#deleteSubscriptionFilter-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#deleteSubscriptionFilter-property)

Para obter mais informações sobre as assinaturas do CloudWatch Logs, consulte [Processamento em tempo real dos dados de log com assinaturas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Subscriptions.html) no *Guia de usuário do Amazon CloudWatch Logs*.

## Tarefas de pré-requisito
<a name="cloudwatch-examples-subscriptions-prerequisites"></a>

Para configurar e executar este exemplo, você deve primeiro concluir estas tarefas:
+ Instale o Node.js. Para obter mais informações sobre como instalar Node.js, consulte o [website de Node.js](https://nodejs.org).
+ Crie um arquivo de configurações compartilhado com as credenciais de usuário. Para obter mais informações sobre como fornecer um arquivo de credenciais compartilhadas, consulte [Carregar credenciais em Node.js do arquivo de credenciais compartilhado](loading-node-credentials-shared.md).
+ Crie uma função Lambda como destino para os eventos de log. Você precisará usar o ARN dessa função. Para obter mais informações sobre a sondagem longa como configurar uma função do Lambda, consulte [Filtros de assinatura com o AWS Lambda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#LambdaFunctionExample) no *Guia de usuário do Amazon CloudWatch Logs*.
+ Crie uma função do IAM cuja política conceda permissão para invocar a função Lambda que você criou e que conceda acesso total ao CloudWatch Logs ou aplique a política a seguir na função de execução que você cria para a função Lambda. Para obter mais informações sobre como criar um perfil do IAM, consulte [Criação de uma função para delegar permissões a um serviço da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) no *Guia do usuário do IAM*.

Use a política de função a seguir ao criar a função do IAM.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "logs:CreateLogGroup",
            "logs:CreateLogStream",
            "logs:PutLogEvents"
         ],
         "Resource": "arn:aws:logs:*:*:*"
      },
      {
         "Effect": "Allow",
         "Action": [
            "lambda:InvokeFunction"
         ],
         "Resource": [
            "*"
         ]
      }
   ]
}
```

------

## Descrever os filtros de assinatura existentes
<a name="cloudwatch-examples-subscriptions-describing"></a>

Crie um módulo do Node.js com o nome de arquivo `cwl_describesubscriptionfilters.js`. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar os logs do CloudWatch, crie um objeto de serviço de `AWS.CloudWatchLogs`. Crie um objeto JSON que contenha os parâmetros necessários para descrever os filtros existentes, inclusive o nome do grupo de logs e o número máximo de filtros que você deseja descrever. Chame o método `describeSubscriptionFilters`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the CloudWatchLogs service object
var cwl = new AWS.CloudWatchLogs({ apiVersion: "2014-03-28" });

var params = {
  logGroupName: "GROUP_NAME",
  limit: 5,
};

cwl.describeSubscriptionFilters(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.subscriptionFilters);
  }
});
```

Para executar o exemplo, digite o seguinte na linha de comando.

```
node cwl_describesubscriptionfilters.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-logs/cwl_describesubscriptionfilters.js).

## Criar um filtro de assinatura
<a name="cloudwatch-examples-subscriptions-creating"></a>

Crie um módulo do Node.js com o nome de arquivo `cwl_putsubscriptionfilter.js`. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar os logs do CloudWatch, crie um objeto de serviço de `AWS.CloudWatchLogs`. Crie um objeto JSON que contenha os parâmetros necessários para criar um filtro, inclusive o ARN da função de destino do Lambda, o nome do filtro, padrão de string para filtrar e o nome do grupo de logs. Chame o método `putSubscriptionFilters`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the CloudWatchLogs service object
var cwl = new AWS.CloudWatchLogs({ apiVersion: "2014-03-28" });

var params = {
  destinationArn: "LAMBDA_FUNCTION_ARN",
  filterName: "FILTER_NAME",
  filterPattern: "ERROR",
  logGroupName: "LOG_GROUP",
};

cwl.putSubscriptionFilter(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});
```

Para executar o exemplo, digite o seguinte na linha de comando.

```
node cwl_putsubscriptionfilter.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-logs/cwl_putsubscriptionfilter.js).

## Excluir um filtro de assinatura
<a name="cloudwatch-examples-subscriptions-deleting"></a>

Crie um módulo do Node.js com o nome de arquivo `cwl_deletesubscriptionfilters.js`. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar os logs do CloudWatch, crie um objeto de serviço de `AWS.CloudWatchLogs`. Crie um objeto JSON que contenha os parâmetros necessários para excluir um filtro, inclusive os nomes do filtro e o grupo de logs. Chame o método `deleteSubscriptionFilters`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the CloudWatchLogs service object
var cwl = new AWS.CloudWatchLogs({ apiVersion: "2014-03-28" });

var params = {
  filterName: "FILTER",
  logGroupName: "LOG_GROUP",
};

cwl.deleteSubscriptionFilter(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});
```

Para executar o exemplo, digite o seguinte na linha de comando.

```
node cwl_deletesubscriptionfilter.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-logs/cwl_deletesubscriptionfilter.js).