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 _ ENDPOINT à VPC
Vous pouvez utiliser le AWS Management Console AWS CloudFormation, ou le Transfer Family API pour mettre à jour le nom EndpointType
d'un serveur VPC_ENDPOINT
versVPC
. 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.
Rubriques
Identifier les serveurs à l'aide du type de VPC_ENDPOINT
point de terminaison
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
-
Ouvrez la AWS Transfer Family console à l'adresse https://console.aws.amazon.com/transfer/
. Choisissez Servers dans le volet de navigation pour afficher la liste des serveurs de votre compte dans cette région.
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 ListServers API appels Amazon EC2 DescribeRegionset Transfer Family pour obtenir une liste du serveur IDs et des régions de tous les serveurs que vous utilisezVPC_ENDPOINT
. Si vous avez de nombreux AWS comptes, vous pouvez les parcourir en utilisant un IAM rôle avec accès auditeur en lecture seule si vous vous authentifiez à l'aide de profils de session auprès de votre fournisseur d'identité.
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)
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
versVPC
.
Mise à jour du type de point de terminaison du serveur à l'aide AWS Management Console
-
Ouvrez la AWS Transfer Family console à l'adresse https://console.aws.amazon.com/transfer/
. -
Dans le volet de navigation, choisissez Servers (Serveurs).
-
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.
-
Pour Actions, choisissez Arrêter.
-
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.
Lorsque le statut passe à Hors ligne, choisissez le serveur pour afficher la page de détails du serveur.
Dans la section Détails du point de terminaison, choisissez Modifier.
Choisissez VPChébergé pour le type de point de terminaison.
Choisissez Enregistrer.
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 AWS CloudFormation
Cette section décrit comment procéder pour mettre AWS CloudFormation à jour celui d'un serveur EndpointType
versVPC
. Utilisez cette procédure pour les serveurs Transfer Family que vous avez déployés avec AWS CloudFormation. Dans cet exemple, le AWS 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é enVPC
.La
AWS::EC2::VPCEndpoint
ressource est supprimée.Les
SecurityGroupId
SubnetIds
, etVpcId
ont été déplacés vers laEndpointDetails
section de laAWS::Transfer::Server
ressource,La
VpcEndpointId
propriété deEndpointDetails
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 AWS CloudFormation
Arrêtez le serveur que vous souhaitez mettre à jour en procédant comme suit.
-
Ouvrez la AWS Transfer Family console à l'adresse https://console.aws.amazon.com/transfer/
. -
Dans le volet de navigation, choisissez Servers (Serveurs).
-
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.
-
Pour Actions, choisissez Arrêter.
-
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.
-
Mettre à jour la CloudFormation pile
Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.
Choisissez la pile utilisée pour créer le serveur Transfer Family.
Choisissez Mettre à jour.
Choisissez Remplacer le modèle actuel
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 de VPC point de VPC terminaison crée un point de terminaison en votre nom, en remplacement de la
VPCEndpoint
ressource d'origine.Après avoir chargé le nouveau modèle, l'ensemble de modifications ressemblera à ce qui suit :
Mettez à jour la pile.
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/
. Redémarrez le serveur. Choisissez le serveur sur lequel vous avez effectué la mise à jour AWS CloudFormation, puis sélectionnez Démarrer dans le menu Actions.
Mettre à jour le serveur EndpointType à l'aide du API
Vous pouvez utiliser la commande describe-server ou la AWS CLI UpdateServer API commande. L'exemple de script suivant arrête le serveur Transfer Family, met à jour le EndpointType, supprime le VPC _ ENDPOINT 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])