

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

# Atualização do tipo de endpoint AWS Transfer Family do servidor de VPC\$1ENDPOINT para VPC
<a name="update-endpoint-type-vpc"></a>

Você pode usar a Console de gerenciamento da AWS, CloudFormation, ou a API Transfer Family para atualizar a API de um servidor `EndpointType` de `VPC_ENDPOINT` para`VPC`. Procedimentos detalhados e exemplos para usar cada um desses métodos para atualizar um tipo de endpoint de servidor são apresentados nas seções a seguir. Se você tiver servidores em várias AWS regiões e em várias AWS contas, poderá usar o script de exemplo fornecido na seção a seguir, com modificações, para identificar servidores usando o `VPC_ENDPOINT` tipo que você precisará atualizar.

**Topics**
+ [Identificação de servidores usando o tipo de endpoint `VPC_ENDPOINT`](#id-servers)
+ [Atualizando o tipo de endpoint do servidor usando o Console de gerenciamento da AWS](#update-endpoint-console)
+ [Atualizando o tipo de endpoint do servidor usando CloudFormation](#update-endpoint-cloudformation)
+ [Atualizando o servidor EndpointType usando a API](#update-endpoint-cli)

## Identificação de servidores usando o tipo de endpoint `VPC_ENDPOINT`
<a name="id-servers"></a>

Você pode identificar quais servidores estão usando o `VPC_ENDPOINT` com o Console de gerenciamento da AWS.

**Para identificar servidores usando o tipo de endpoint `VPC_ENDPOINT` usando o console**

1. Abra o AWS Transfer Family console em [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Escolha **Servidores** no painel de navegação para exibir a lista de servidores em sua conta nessa Região.

1. Classifique a lista de servidores pelo **Tipo de endpoint** para ver todos os servidores usando `VPC_ENDPOINT`.

**Para identificar servidores que usam `VPC_ENDPOINT` em várias AWS regiões e contas**

Se você tiver servidores em várias AWS regiões e em várias AWS contas, poderá usar o script de exemplo a seguir, com modificações, para identificar servidores usando o tipo de `VPC_ENDPOINT` endpoint. O script de exemplo usa o Amazon EC2 [DescribeRegions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeRegions.html)e as operações da [https://docs.aws.amazon.com/transfer/latest/APIReference/API_ListServers.html](https://docs.aws.amazon.com/transfer/latest/APIReference/API_ListServers.html)API Transfer Family. Se você tiver muitas contas da AWS , poderá percorrê-las usando um perfil do IAM com acesso de auditor somente de leitura se você se autenticar usando perfis de sessão no seu provedor de identidade.

1. Veja a seguir um exemplo simples.

   ```
   import boto3
   
   profile = input("Enter the name of the AWS account you'll be working in: ")
   session = boto3.Session(profile_name=profile)
   
   ec2 = session.client("ec2")
   
   regions = ec2.describe_regions()
   
   for region in regions['Regions']:
       region_name = region['RegionName']
       if region_name=='ap-northeast-3': #https://github.com/boto/boto3/issues/1943
           continue
       transfer = session.client("transfer", region_name=region_name)
       servers = transfer.list_servers()
       for server in servers['Servers']:
          if server['EndpointType']=='VPC_ENDPOINT':
              print(server['ServerId'], region_name)
   ```

1. Depois que você tiver a lista dos servidores a serem atualizados, poderá usar um dos métodos descritos nas seções a seguir para atualizar o `EndpointType` para `VPC`.

## Atualizando o tipo de endpoint do servidor usando o Console de gerenciamento da AWS
<a name="update-endpoint-console"></a>

1. Abra o AWS Transfer Family console em [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. No painel de navegação, selecione **Servidores**.

1. Marque a caixa de seleção da predefinição do servidor no qual você deseja alterar o tipo de endpoint.
**Importante**  
Você deve interromper o servidor antes de alterar o endpoint.

1. Em **Ações**, escolha **Interromper**.

1. Na caixa de diálogo de confirmação exibida, escolha **Parar** para confirmar que quer interromper o servidor.
**nota**  
Antes de prosseguir para a próxima etapa, aguarde até que o **Status** do servidor mude para **Offline**; isso pode levar alguns minutos. Talvez você precise selecionar **Atualizar** na página dos **Servidores** para ver a alteração de status.

1. Depois que o status mudar para **Offline**, escolha o servidor para exibir a página de detalhes do servidor.

1. Na seção **Detalhes do endpoint**, escolha **Editar**.

1. Escolha **VPC hospedada** para o **Tipo de endpoint**.

1. Escolha **Salvar**.

1. Em **Ações**, escolha **Iniciar** e aguarde até que o status do servidor mude para **Online**; isso pode levar alguns minutos.

## Atualizando o tipo de endpoint do servidor usando CloudFormation
<a name="update-endpoint-cloudformation"></a>

Esta seção descreve como usar CloudFormation para atualizar um servidor `EndpointType` para`VPC`. Use esse procedimento para os servidores Transfer Family que você implantou usando CloudFormation. Neste exemplo, o modelo de CloudFormation original usado para implantar o servidor do Transfer Family é mostrado a seguir:

```
AWS TemplateFormatVersion: '2010-09-09'
Description: 'Create AWS Transfer Server with VPC_ENDPOINT endpoint type'
Parameters:
  SecurityGroupId:
    Type: AWS::EC2::SecurityGroup::Id
  SubnetIds:
    Type: List<AWS::EC2::Subnet::Id>
  VpcId:
    Type: AWS::EC2::VPC::Id
Resources:
  TransferServer:
    Type: AWS::Transfer::Server
    Properties:
      Domain: S3
      EndpointDetails:
        VpcEndpointId: !Ref VPCEndpoint
      EndpointType: VPC_ENDPOINT
      IdentityProviderType: SERVICE_MANAGED
      Protocols:
        - SFTP
  VPCEndpoint:
    Type: AWS::EC2::VPCEndpoint
    Properties:
      ServiceName: com.amazonaws.us-east-1.transfer.server
      SecurityGroupIds:
        - !Ref SecurityGroupId
      SubnetIds:
        - !Select [0, !Ref SubnetIds]
        - !Select [1, !Ref SubnetIds]
        - !Select [2, !Ref SubnetIds]
      VpcEndpointType: Interface
      VpcId: !Ref VpcId
```

O modelo é atualizado com as seguintes alterações:
+ O `EndpointType` foi alterado para `VPC`.
+ O recurso `AWS::EC2::VPCEndpoint` foi removido.
+ O `SecurityGroupId`, o `SubnetIds` e o `VpcId` foram movidos para a seção `EndpointDetails` do recurso `AWS::Transfer::Server`,
+ A propriedade `VpcEndpointId` de `EndpointDetails` foi removida.

O modelo atualizado é semelhante ao seguinte:

```
AWS TemplateFormatVersion: '2010-09-09'
Description: 'Create AWS Transfer Server with VPC endpoint type'
Parameters:
  SecurityGroupId:
    Type: AWS::EC2::SecurityGroup::Id
  SubnetIds:
    Type: List<AWS::EC2::Subnet::Id>
  VpcId:
    Type: AWS::EC2::VPC::Id
Resources:
  TransferServer:
    Type: AWS::Transfer::Server
    Properties:
      Domain: S3
      EndpointDetails:
        SecurityGroupIds:
          - !Ref SecurityGroupId
        SubnetIds:
          - !Select [0, !Ref SubnetIds]
          - !Select [1, !Ref SubnetIds]
          - !Select [2, !Ref SubnetIds]
        VpcId: !Ref VpcId
      EndpointType: VPC
      IdentityProviderType: SERVICE_MANAGED
      Protocols:
        - SFTP
```

**Para atualizar o tipo de endpoint dos servidores Transfer Family implantados usando CloudFormation**

1. Pare o servidor que você deseja atualizar usando as etapas a seguir.

   1. Abra o AWS Transfer Family console em [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

   1. No painel de navegação, selecione **Servidores**.

   1. Marque a caixa de seleção da predefinição do servidor no qual você deseja alterar o tipo de endpoint.
**Importante**  
Você deve interromper o servidor antes de alterar o endpoint.

   1. Em **Ações**, escolha **Interromper**.

   1. Na caixa de diálogo de confirmação exibida, escolha **Parar** para confirmar que quer interromper o servidor.
**nota**  
Antes de prosseguir para a próxima etapa, aguarde até que o **Status** do servidor mude para **Offline**; isso pode levar alguns minutos. Talvez você precise selecionar **Atualizar** na página dos **Servidores** para ver a alteração de status.

1. Atualize a CloudFormation pilha

   1. Abra o CloudFormation console em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

   1. Escolha a pilha usada para criar o servidor do Transfer Family.

   1. Selecione **Atualizar**.

   1. Escolha **Substituir modelo atual** 

   1. Faça o upload do novo modelo. CloudFormation Os conjuntos de alterações ajudam você a entender como as alterações do modelo afetarão os recursos em execução antes de implementá-las. Neste exemplo, o recurso do servidor de transferência será modificado e o VPCEndpoint recurso será removido. O servidor do tipo endpoint da VPC cria um Endpoint da VPC em seu nome, substituindo o recurso `VPCEndpoint` original.

      Depois de carregar o novo modelo, o conjunto de alterações será semelhante ao seguinte:  
![\[Mostra a página de visualização do conjunto de alterações para substituir o CloudFormation modelo atual.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/vpc-endpoint-update-cfn.png)

   1. Atualize a pilha.

1. Quando a atualização da pilha estiver concluída, navegue até o console de gerenciamento do Transfer Family em [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Reinicie o servidor. Escolha o servidor no qual você atualizou e CloudFormation, em seguida, escolha **Iniciar** no menu **Ações**.

## Atualizando o servidor EndpointType usando a API
<a name="update-endpoint-cli"></a>

Você pode usar o comando AWS CLI [describe-server](https://docs.aws.amazon.com/cli/latest/reference/transfer/update-server.html) ou o comando da API [UpdateServer](https://docs.aws.amazon.com/transfer/latest/APIReference/API_UpdateServer.html). O script de exemplo a seguir interrompe o servidor Transfer Family, atualiza o EndpointType, remove o VPC\$1ENDPOINT e inicia o servidor.

```
import boto3
import time

profile = input("Enter the name of the AWS account you'll be working in: ")
region_name = input("Enter the AWS Region you're working in: ")
server_id = input("Enter the AWS Transfer Server Id: ")

session = boto3.Session(profile_name=profile)

ec2 = session.client("ec2", region_name=region_name)
transfer = session.client("transfer", region_name=region_name)

group_ids=[]

transfer_description = transfer.describe_server(ServerId=server_id)
if transfer_description['Server']['EndpointType']=='VPC_ENDPOINT':
    transfer_vpc_endpoint = transfer_description['Server']['EndpointDetails']['VpcEndpointId']
    transfer_vpc_endpoint_descriptions = ec2.describe_vpc_endpoints(VpcEndpointIds=[transfer_vpc_endpoint])
    for transfer_vpc_endpoint_description in transfer_vpc_endpoint_descriptions['VpcEndpoints']:
        subnet_ids=transfer_vpc_endpoint_description['SubnetIds']
        group_id_list=transfer_vpc_endpoint_description['Groups']
        vpc_id=transfer_vpc_endpoint_description['VpcId']
        for group_id in group_id_list:
             group_ids.append(group_id['GroupId'])
    if transfer_description['Server']['State']=='ONLINE':
        transfer_stop = transfer.stop_server(ServerId=server_id)
        print(transfer_stop)
        time.sleep(300) #safe
        transfer_update = transfer.update_server(ServerId=server_id,EndpointType='VPC',EndpointDetails={'SecurityGroupIds':group_ids,'SubnetIds':subnet_ids,'VpcId':vpc_id})
        print(transfer_update)
        time.sleep(10) 
        transfer_start = transfer.start_server(ServerId=server_id)
        print(transfer_start)
        delete_vpc_endpoint = ec2.delete_vpc_endpoints(VpcEndpointIds=[transfer_vpc_endpoint])
```