我想使用 AWS Transfer Family 设置一个简单的 SFTP 服务器。 我使用 AWS CDK (typescript) 来设置它。 我想在创建 SFTP 服务器时使用自定义主机名(Route53 子域)。
我尝试了以下选项...
从 CDK 添加标签不起作用,aws:transfer:route53HostedZoneId 和 aws:transfer:customHostname。我不知道如何获取 CDK 内的 SFTP 端点 url。有人能拿到吗
从 CLI 添加标签是可行的,但我不想为此编写后续脚本。找到作为 CDK 执行的一部分创建的 SFTP 服务器也是一个挑战。该解决方案不适合我的用例。
有人遇到过这个问题吗?
所以,我想设置AWS Transfer SFTP服务器,用它来传输文件并将其拆除。 但是,我想保持 SFTP url 相同(Route53 url)。
提前致谢!
是的,这是可能的。这是通过 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);
您可能需要使用标签创建 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,
});