

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/).

# Gerenciar instâncias do Amazon EC2
<a name="ec2-example-managing-instances"></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 recuperar informações básicas sobre as instâncias do Amazon EC2.
+ Como iniciar e parar o monitoramento detalhado de uma instância do Amazon EC2.
+ Como iniciar e parar uma instância do Amazon EC2.
+ Como reinicializar uma instância do Amazon EC2

## O cenário
<a name="ec2-example-managing-instances-scenario"></a>

Neste exemplo, você usa uma série de módulos de Node.js para realizar várias operações de gerenciamento de instâncias básicas. Os módulos Node.js usam o SDK para JavaScript para gerenciar instâncias usando os métodos da classe de cliente do Amazon EC2:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeInstances-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#monitorInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#monitorInstances-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#unmonitorInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#unmonitorInstances-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#startInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#startInstances-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#stopInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#stopInstances-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#rebootInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#rebootInstances-property)

Para obter mais informações sobre o ciclo de vida de instâncias do Amazon EC2, consulte [Instance Lifecycle](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) no *Guia do usuário do Amazon EC2*.

## Tarefas de pré-requisito
<a name="ec2-example-managing-instances-prerequisites"></a>

Para configurar e executar este exemplo, primeiro conclua 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 instância do Amazon EC2. Para obter mais informações sobre como criar instâncias do Amazon EC2, consulte [Amazon EC2 Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Instances.html) no *Guia do usuário do Amazon EC2* ou [Amazon EC2 Instances](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Instances.html) no *Guia do usuário do Amazon EC2*.

## Descrever as instâncias
<a name="ec2-example-managing-instances-describing"></a>

Crie um módulo do Node.js com o nome de arquivo `ec2_describeinstances.js`. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o Amazon EC2, crie um objeto de serviço do `AWS.EC2`. Chame o método `describeInstances` do objeto de serviço do Amazon EC2 para recuperar uma descrição detalhada das instâncias. 

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

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  DryRun: false,
};

// Call EC2 to retrieve policy for selected bucket
ec2.describeInstances(params, function (err, data) {
  if (err) {
    console.log("Error", err.stack);
  } else {
    console.log("Success", JSON.stringify(data));
  }
});
```

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

```
node ec2_describeinstances.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_describeinstances.js).

## Gerenciar monitoramento de instâncias
<a name="ec2-example-managing-instances-monitoring"></a>

Crie um módulo do Node.js com o nome de arquivo `ec2_monitorinstances.js`. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o Amazon EC2, crie um objeto de serviço do `AWS.EC2`. Adicione os IDs às instâncias cujo monitoramento você deseja controlar.

Com base no valor de um argumento de linha de comando (`ON` ou `OFF`), chame o método `monitorInstances` do objeto de serviço do Amazon EC2 para iniciar o monitoramento detalhado das instâncias especificadas ou chame o método `unmonitorInstances`. Use o parâmetro `DryRun` a fim de testar se você tem permissão para alterar o monitoramento de instâncias antes de tentar alterar o monitoramento dessas instâncias.

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

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  InstanceIds: ["INSTANCE_ID"],
  DryRun: true,
};

if (process.argv[2].toUpperCase() === "ON") {
  // Call EC2 to start monitoring the selected instances
  ec2.monitorInstances(params, function (err, data) {
    if (err && err.code === "DryRunOperation") {
      params.DryRun = false;
      ec2.monitorInstances(params, function (err, data) {
        if (err) {
          console.log("Error", err);
        } else if (data) {
          console.log("Success", data.InstanceMonitorings);
        }
      });
    } else {
      console.log("You don't have permission to change instance monitoring.");
    }
  });
} else if (process.argv[2].toUpperCase() === "OFF") {
  // Call EC2 to stop monitoring the selected instances
  ec2.unmonitorInstances(params, function (err, data) {
    if (err && err.code === "DryRunOperation") {
      params.DryRun = false;
      ec2.unmonitorInstances(params, function (err, data) {
        if (err) {
          console.log("Error", err);
        } else if (data) {
          console.log("Success", data.InstanceMonitorings);
        }
      });
    } else {
      console.log("You don't have permission to change instance monitoring.");
    }
  });
}
```

Para executar o exemplo, digite o seguinte na linha de comando, especificando `ON` para iniciar o monitoramento detalhado ou `OFF` para interrompê-lo.

```
node ec2_monitorinstances.js {{ON}}
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_monitorinstances.js).

## Iniciar e parar instâncias
<a name="ec2-example-managing-instances-starting-stopping"></a>

Crie um módulo do Node.js com o nome de arquivo `ec2_startstopinstances.js`. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o Amazon EC2, crie um objeto de serviço do `AWS.EC2`. Adicione os IDs às instâncias que você deseja iniciar ou parar.

Com base no valor de um argumento de linha de comando (`START` ou `STOP`), chame o `startInstances` método do objeto de serviço do Amazon EC2 para iniciar as instâncias especificadas ou chame o método `stopInstances` a fim de pará-las. Use o parâmetro `DryRun` para testar se você tem permissão antes de realmente tentar iniciar ou parar instâncias selecionadas.

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

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  InstanceIds: [process.argv[3]],
  DryRun: true,
};

if (process.argv[2].toUpperCase() === "START") {
  // Call EC2 to start the selected instances
  ec2.startInstances(params, function (err, data) {
    if (err && err.code === "DryRunOperation") {
      params.DryRun = false;
      ec2.startInstances(params, function (err, data) {
        if (err) {
          console.log("Error", err);
        } else if (data) {
          console.log("Success", data.StartingInstances);
        }
      });
    } else {
      console.log("You don't have permission to start instances.");
    }
  });
} else if (process.argv[2].toUpperCase() === "STOP") {
  // Call EC2 to stop the selected instances
  ec2.stopInstances(params, function (err, data) {
    if (err && err.code === "DryRunOperation") {
      params.DryRun = false;
      ec2.stopInstances(params, function (err, data) {
        if (err) {
          console.log("Error", err);
        } else if (data) {
          console.log("Success", data.StoppingInstances);
        }
      });
    } else {
      console.log("You don't have permission to stop instances");
    }
  });
}
```

Para executar o exemplo, digite o seguinte na linha de comando, especificando `START` para iniciar as instâncias ou `STOP` a fim de pará-las.

```
node ec2_startstopinstances.js {{START}} {{INSTANCE_ID}}
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_startstopinstances.js).

## Reinicializar instâncias
<a name="ec2-example-managing-instances-rebooting"></a>

Crie um módulo do Node.js com o nome de arquivo `ec2_rebootinstances.js`. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o Amazon EC2, crie um objeto de serviço do Amazon EC2. Adicione os IDs às instâncias que você deseja reinicializar. Chame o método `rebootInstances` do objeto de serviço `AWS.EC2` para reinicializar as instâncias especificadas. Use o parâmetro `DryRun` para testar se você tem permissão para reinicializar essas instâncias antes de realmente tentar reinicializá-las.

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

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  InstanceIds: ["INSTANCE_ID"],
  DryRun: true,
};

// Call EC2 to reboot instances
ec2.rebootInstances(params, function (err, data) {
  if (err && err.code === "DryRunOperation") {
    params.DryRun = false;
    ec2.rebootInstances(params, function (err, data) {
      if (err) {
        console.log("Error", err);
      } else if (data) {
        console.log("Success", data);
      }
    });
  } else {
    console.log("You don't have permission to reboot instances.");
  }
});
```

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

```
node ec2_rebootinstances.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_rebootinstances.js).