通过AWS CDK创建SFTP服务器时是否可以设置自定义主机名?

问题描述 投票:0回答:2

我想使用 AWS Transfer Family 设置一个简单的 SFTP 服务器。 我使用 AWS CDK (typescript) 来设置它。 我想在创建 SFTP 服务器时使用自定义主机名(Route53 子域)。

我尝试了以下选项...

  1. 从 CDK 添加标签不起作用,aws:transfer:route53HostedZoneId 和 aws:transfer:customHostname。我不知道如何获取 CDK 内的 SFTP 端点 url。有人能拿到吗

  2. 从 CLI 添加标签是可行的,但我不想为此编写后续脚本。找到作为 CDK 执行的一部分创建的 SFTP 服务器也是一个挑战。该解决方案不适合我的用例。

有人遇到过这个问题吗?

所以,我想设置AWS Transfer SFTP服务器,用它来传输文件并将其拆除。 但是,我想保持 SFTP url 相同(Route53 url)。

提前致谢!

sftp aws-cdk aws-transfer-family
2个回答
0
投票

是的,这是可能的。这是通过 CDK 的标签完成的

SFTP服务器: 类型:'AWS::传输::服务器' 特性: 标签: - 键:“aws:transfer:customHostname” 值:!Ref CustomHostname - 键:“aws:transfer:route53HostedZoneId” 值: !Join [ '/', [ "/hostedzone", !Ref HostedZoneID] ]

它会是这样的:

    Tags.of(cfnServer).add("transfer:route53HostedZoneId", hostedZoneId);

    Tags.of(cfnServer).add("transfer:customHostname", sftpDomainName);

0
投票

您可能需要使用标签创建 sftp 服务器以及同一域名的 r53 Cname 记录。

这是一个例子:

    const sftpServer = new transfer.CfnServer(this, "sftp-server", {
        endpointType: "PUBLIC",
        certificate: certificate.certificateArn,
        protocols: ["SFTP"],
        tags: [
            {
                key: "transfer:customHostname",
                value: domainName,
            },
            {
                key: "transfer:route53HostedZoneId",
                value: hostedZone.hostedZoneId,
            },
        ],
    });

    const sftpRecord = new r53.CnameRecord(this, "sftp-record", {
        domainName: `${sftpServer.attrServerId}.server.transfer.us-east-1.amazonaws.com`,
        recordName: domainName,
        zone: hostedZone,
    });
© www.soinside.com 2019 - 2024. All rights reserved.