

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Actualización del tipo de punto final AWS Transfer Family del servidor de VPC\$1ENDPOINT a VPC
<a name="update-endpoint-type-vpc"></a>

Puedes usar la Consola de administración de AWS API Transfer Family o la API Transfer Family para actualizar el servidor `EndpointType` de `VPC_ENDPOINT` a`VPC`. CloudFormation En las siguientes secciones se proporcionan procedimientos detallados y ejemplos para usar cada uno de estos métodos para actualizar un tipo de punto de conexión de servidor. Si tiene servidores en varias AWS regiones y en varias AWS cuentas, puede usar el script de ejemplo que se proporciona en la siguiente sección, con las modificaciones, para identificar los servidores mediante el `VPC_ENDPOINT` tipo que necesitará actualizar.

**Topics**
+ [Identificar los servidores mediante el tipo de `VPC_ENDPOINT` punto de conexión](#id-servers)
+ [Actualización del tipo de punto final del servidor mediante el Consola de administración de AWS](#update-endpoint-console)
+ [Actualización del tipo de punto final del servidor mediante CloudFormation](#update-endpoint-cloudformation)
+ [Actualización del servidor EndpointType mediante la API](#update-endpoint-cli)

## Identificar los servidores mediante el tipo de `VPC_ENDPOINT` punto de conexión
<a name="id-servers"></a>

Puede identificar qué servidores utilizan `VPC_ENDPOINT` mediante Consola de administración de AWS.

**Identificación de los servidores que utilizan el punto de conexión `VPC_ENDPOINT` mediante la consola**

1. Abra la AWS Transfer Family consola en [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Seleccione **Servidores** en el panel de navegación para ver la lista de servidores de su cuenta en esa región.

1. Ordene la lista de servidores por **tipo de punto de conexión** para ver todos los servidores que utilizan `VPC_ENDPOINT`.

**Para identificar los servidores que se utilizan `VPC_ENDPOINT` en varias AWS regiones y cuentas**

Si tiene servidores en varias AWS regiones y en varias AWS cuentas, puede utilizar el siguiente script de ejemplo, con modificaciones, para identificar los servidores mediante el tipo de `VPC_ENDPOINT` punto final. El script de ejemplo utiliza las operaciones de la [https://docs.aws.amazon.com/transfer/latest/APIReference/API_ListServers.html](https://docs.aws.amazon.com/transfer/latest/APIReference/API_ListServers.html)API Amazon EC2 [DescribeRegions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeRegions.html)y Transfer Family. Si tiene varias cuentas de AWS , puede recorrerlas utilizando un rol de IAM con acceso de auditor de solo lectura si se autentica mediante perfiles de sesión ante su proveedor de identidad.

1. A continuación se muestra un ejemplo simple.

   ```
   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. Una vez que tenga la lista de servidores que desea actualizar, puede utilizar uno de los métodos descritos en las siguientes secciones para actualizar `EndpointType` a `VPC`.

## Actualización del tipo de punto final del servidor mediante el Consola de administración de AWS
<a name="update-endpoint-console"></a>

1. Abra la AWS Transfer Family consola en [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. En el panel de navegación, seleccione **Servers (Servidores)**.

1. Seleccione la casilla de verificación del servidor para el que desee cambiar el tipo de punto de conexión.
**importante**  
Debe detener el servidor para poder cambiar el punto de conexión.

1. En **Acciones**, seleccione **Detener**.

1. En el cuadro de diálogo de confirmación que aparece, seleccione **Detener** para confirmar que desea detener el servidor.
**nota**  
Antes de continuar con el siguiente paso, espere a que el **estado** del servidor cambie a **Desconectado**; esto puede tardar un par de minutos. Puede que tenga que elegir **Actualizar** en la página de **Servidores** para ver el cambio de estado.

1. Cuando el estado cambie a **Sin conexión**, seleccione el servidor para que aparezca la página de detalles del servidor.

1. En la sección **Detalles del punto de conexión**, elija **Editar**.

1. Elija **VPC alojada como tipo** de **punto de conexión**.

1. Seleccione **Save**.

1. En **Acciones**, seleccione **Iniciar** y espere a que el estado del servidor cambie a En **línea**; esto puede tardar un par de minutos.

## Actualización del tipo de punto final del servidor mediante CloudFormation
<a name="update-endpoint-cloudformation"></a>

En esta sección se describe CloudFormation cómo actualizar el servidor `EndpointType` a`VPC`. Utilice este procedimiento para los servidores Transfer Family que haya desplegado mediante CloudFormation. En este ejemplo, la plantilla original CloudFormation utilizada para implementar el servidor de Transfer Family se muestra de la siguiente manera:

```
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
```

La plantilla se actualiza con los siguientes cambios:
+ `EndpointType` cambió a `VPC`.
+ Se ha eliminado el recurso `AWS::EC2::VPCEndpoint`.
+ `SecurityGroupId`, `SubnetIds` y `VpcId` pasaron a la sección `EndpointDetails` del recurso `AWS::Transfer::Server`,
+ Se ha eliminado `VpcEndpointId` propiedad de `EndpointDetails`.

La plantilla actualizada es el siguiente:

```
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 actualizar el tipo de punto final de los servidores Transfer Family implementados mediante CloudFormation**

1. Detenga el servidor que desea actualizar siguiendo estos pasos.

   1. Abra la AWS Transfer Family consola en [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

   1. En el panel de navegación, seleccione **Servers (Servidores)**.

   1. Seleccione la casilla de verificación del servidor para el que desee cambiar el tipo de punto de conexión.
**importante**  
Debe detener el servidor para poder cambiar el punto de conexión.

   1. En **Acciones**, seleccione **Detener**.

   1. En el cuadro de diálogo de confirmación que aparece, seleccione **Detener** para confirmar que desea detener el servidor.
**nota**  
Antes de continuar con el siguiente paso, espere a que el **estado** del servidor cambie a **Desconectado**; esto puede tardar un par de minutos. Puede que tenga que elegir **Actualizar** en la página de **Servidores** para ver el cambio de estado.

1. Actualiza la CloudFormation pila

   1. Abre la CloudFormation consola en [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

   1. Seleccione la pila de que se va a utilizar para crear el servidor de Transfer Family.

   1. Elija **Actualizar**.

   1. Elija **Reemplazar la plantilla actual**

   1. Cargue la nueva plantilla. CloudFormation Los conjuntos de cambios le ayudan a comprender cómo afectarán los cambios en las plantillas a los recursos en ejecución antes de implementarlos. En este ejemplo, se modificará el recurso del servidor de transferencias y se eliminará el VPCEndpoint recurso. El servidor de tipo punto de conexión de VPC crea un punto de conexión de VPC en su nombre y reemplaza el recurso original `VPCEndpoint`.

      Tras cargar la nueva plantilla, el conjunto de cambios será el siguiente:  
![\[Muestra la página de vista previa del conjunto de cambios para reemplazar la CloudFormation plantilla actual.\]](http://docs.aws.amazon.com/es_es/transfer/latest/userguide/images/vpc-endpoint-update-cfn.png)

   1. Actualice la pila.

1. Cuando se complete la actualización de la pila, diríjase a la consola de administración de Transfer Family en [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Reinicie el servidor. Elija el servidor en el que realizó la actualización y CloudFormation, a continuación, seleccione **Iniciar** en el menú **Acciones**.

## Actualización del servidor EndpointType mediante la API
<a name="update-endpoint-cli"></a>

Puede usar el comando [describe-server](https://docs.aws.amazon.com/cli/latest/reference/transfer/update-server.html) AWS CLI o el comando API [UpdateServer](https://docs.aws.amazon.com/transfer/latest/APIReference/API_UpdateServer.html). El siguiente script de ejemplo detiene el servidor Transfer Family, lo actualiza EndpointType, elimina el VPC\$1ENDPOINT e inicia el 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])
```