

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Mise à jour du type de point de terminaison du AWS Transfer Family serveur de VPC\$1ENDPOINT à VPC
<a name="update-endpoint-type-vpc"></a>

Vous pouvez utiliser l'API AWS Management Console CloudFormation, ou l'API Transfer Family pour mettre à jour le fichier `EndpointType` d'un serveur `VPC_ENDPOINT` vers`VPC`. Des procédures détaillées et des exemples d'utilisation de chacune de ces méthodes pour mettre à jour un type de point de terminaison de serveur sont fournis dans les sections suivantes. Si vous avez des serveurs dans plusieurs AWS régions et sur plusieurs AWS comptes, vous pouvez utiliser l'exemple de script fourni dans la section suivante, avec des modifications, pour identifier les serveurs en utilisant le `VPC_ENDPOINT` type que vous devrez mettre à jour.

**Topics**
+ [Identifier les serveurs à l'aide du type de `VPC_ENDPOINT` point de terminaison](#id-servers)
+ [Mise à jour du type de point de terminaison du serveur à l'aide AWS Management Console](#update-endpoint-console)
+ [Mise à jour du type de point de terminaison du serveur avec CloudFormation](#update-endpoint-cloudformation)
+ [Mettre à jour le serveur EndpointType à l'aide de l'API](#update-endpoint-cli)

## Identifier les serveurs à l'aide du type de `VPC_ENDPOINT` point de terminaison
<a name="id-servers"></a>

Vous pouvez identifier les serveurs qui `VPC_ENDPOINT` utilisent le AWS Management Console.

**Pour identifier les serveurs utilisant le type de `VPC_ENDPOINT` point de terminaison à l'aide de la console**

1. Ouvrez la AWS Transfer Family console à l'adresse [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Choisissez **Servers** dans le volet de navigation pour afficher la liste des serveurs de votre compte dans cette région.

1. Triez la liste des serveurs par **type de point de terminaison** pour voir tous les serveurs utilisés`VPC_ENDPOINT`.

**Pour identifier les serveurs utilisés `VPC_ENDPOINT` dans plusieurs AWS régions et comptes**

Si vous avez des serveurs dans plusieurs AWS régions et dans plusieurs AWS comptes, vous pouvez utiliser l'exemple de script suivant, avec des modifications, pour identifier les serveurs à l'aide du type de point de `VPC_ENDPOINT` terminaison. L'exemple de script utilise les opérations d'[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)et Transfer Family. Si vous avez de nombreux AWS comptes, vous pouvez les parcourir en utilisant un rôle IAM avec accès auditeur en lecture seule si vous vous authentifiez à l'aide de profils de session auprès de votre fournisseur d'identité.

1. Voici un exemple 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. Une fois que vous avez la liste des serveurs à mettre à jour, vous pouvez utiliser l'une des méthodes décrites dans les sections suivantes pour mettre à jour le `EndpointType` vers`VPC`.

## Mise à jour du type de point de terminaison du serveur à l'aide AWS Management Console
<a name="update-endpoint-console"></a>

1. Ouvrez la AWS Transfer Family console à l'adresse [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Dans le volet de navigation, choisissez **Servers (Serveurs)**.

1. Cochez la case du serveur dont vous souhaitez modifier le type de point de terminaison.
**Important**  
Vous devez arrêter le serveur avant de pouvoir modifier son point de terminaison.

1. Pour **Actions**, choisissez **Arrêter**.

1. Dans la boîte de dialogue de confirmation qui apparaît, choisissez **Stop** pour confirmer que vous souhaitez arrêter le serveur.
**Note**  
Avant de passer à l'étape suivante, attendez que le **statut** du serveur passe à **Hors ligne** ; cela peut prendre quelques minutes. Vous devrez peut-être sélectionner **Actualiser** sur la page **Serveurs** pour voir le changement d'état.

1. Lorsque le statut passe à **Hors ligne**, choisissez le serveur pour afficher la page de détails du serveur.

1. Dans la section **Détails du point de terminaison**, choisissez **Modifier**.

1. Choisissez **VPC hébergé** pour le type de **point de terminaison**.

1. Choisissez **Enregistrer**.

1. Pour **Actions**, choisissez **Démarrer** et attendez que le statut du serveur passe à **En ligne** ; cela peut prendre quelques minutes.

## Mise à jour du type de point de terminaison du serveur avec CloudFormation
<a name="update-endpoint-cloudformation"></a>

Cette section décrit comment procéder pour mettre CloudFormation à jour celui d'un serveur `EndpointType` vers`VPC`. Utilisez cette procédure pour les serveurs Transfer Family que vous avez déployés avec CloudFormation. Dans cet exemple, le CloudFormation modèle d'origine utilisé pour déployer le serveur Transfer Family est présenté comme suit :

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

Le modèle est mis à jour avec les modifications suivantes :
+ Le `EndpointType` a été changé en`VPC`.
+ La `AWS::EC2::VPCEndpoint` ressource est supprimée.
+ Les `SecurityGroupId``SubnetIds`, et `VpcId` ont été déplacés vers la `EndpointDetails` section de la `AWS::Transfer::Server` ressource,
+ La `VpcEndpointId` propriété de `EndpointDetails` a été supprimée.

Le modèle mis à jour se présente comme suit :

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

**Pour mettre à jour le type de point de terminaison des serveurs Transfer Family déployés à l'aide de CloudFormation**

1. Arrêtez le serveur que vous souhaitez mettre à jour en procédant comme suit.

   1. Ouvrez la AWS Transfer Family console à l'adresse [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

   1. Dans le volet de navigation, choisissez **Servers (Serveurs)**.

   1. Cochez la case du serveur dont vous souhaitez modifier le type de point de terminaison.
**Important**  
Vous devez arrêter le serveur avant de pouvoir modifier son point de terminaison.

   1. Pour **Actions**, choisissez **Arrêter**.

   1. Dans la boîte de dialogue de confirmation qui apparaît, choisissez **Stop** pour confirmer que vous souhaitez arrêter le serveur.
**Note**  
Avant de passer à l'étape suivante, attendez que le **statut** du serveur passe à **Hors ligne** ; cela peut prendre quelques minutes. Vous devrez peut-être sélectionner **Actualiser** sur la page **Serveurs** pour voir le changement d'état.

1. Mettre à jour la CloudFormation pile

   1. Ouvrez la CloudFormation console à l'adresse [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

   1. Choisissez la pile utilisée pour créer le serveur Transfer Family.

   1. Choisissez **Mettre à jour**.

   1. Choisissez **Remplacer le modèle actuel**

   1. Téléchargez le nouveau modèle. CloudFormation Les ensembles de modifications vous aident à comprendre comment les modifications apportées aux modèles affecteront les ressources en cours d'exécution avant de les implémenter. Dans cet exemple, la ressource du serveur de transfert sera modifiée et supprimée. VPCEndpoint Le serveur de type point de terminaison VPC crée un point de terminaison VPC en votre nom, en remplacement de la ressource d'origine. `VPCEndpoint`

      Après avoir chargé le nouveau modèle, l'ensemble de modifications ressemblera à ce qui suit :  
![\[Affiche la page d'aperçu du kit de modification permettant de remplacer le CloudFormation modèle actuel.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/vpc-endpoint-update-cfn.png)

   1. Mettez à jour la pile.

1. Une fois la mise à jour de la pile terminée, accédez à la console de gestion Transfer Family à l'adresse [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Redémarrez le serveur. Choisissez le serveur sur lequel vous avez effectué la mise à jour CloudFormation, puis sélectionnez **Démarrer** dans le menu **Actions**.

## Mettre à jour le serveur EndpointType à l'aide de l'API
<a name="update-endpoint-cli"></a>

Vous pouvez utiliser la commande [describe-server](https://docs.aws.amazon.com/cli/latest/reference/transfer/update-server.html) ou la AWS CLI commande [UpdateServer](https://docs.aws.amazon.com/transfer/latest/APIReference/API_UpdateServer.html)API. L'exemple de script suivant arrête le serveur Transfer Family, le met à jour EndpointType, supprime le VPC\$1ENDPOINT et démarre le serveur.

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