mwi*_*son 7 sftp terraform terraform-provider-aws
我正在尝试使用 AWS Transfer 设置具有自定义主机名的 SFTP 服务器。我正在使用 Terraform 管理资源。我目前已启动并运行资源,并且已使用 Terraform 创建一条 Route53 记录以指向 SFTP 服务器,但 SFTP 仪表板上的自定义主机名条目显示为空白。

当然,当我通过 AWS 控制台手动创建服务器并将 Route53 记录与其关联时,它看起来就像我所期望的那样:

我浏览了terraform 资源文档,并尝试了解如何通过 aws cli 或 cloudformation 完成它,但我没有任何运气。
我的服务器资源如下所示:
resource "aws_transfer_server" "sftp" {
identity_provider_type = "SERVICE_MANAGED"
logging_role = "${aws_iam_role.logging.arn}"
force_destroy = "false"
tags {
Name = ${local.product}-${terraform.workspace}"
}
}
Run Code Online (Sandbox Code Playgroud)
我的 Route53 记录如下所示:
resource "aws_route53_record" "dns_record_cname" {
zone_id = "${data.aws_route53_zone.sftp.zone_id}"
name = "${local.product}-${terraform.workspace}"
type = "CNAME"
records = ["${aws_transfer_server.sftp.endpoint}"]
ttl = "300"
}
Run Code Online (Sandbox Code Playgroud)
从功能上讲,我可以继续使用现有的功能,我可以使用 DNS 连接到服务器,但我正在尝试了解完整的情况。
小智 4
在AWS中,
当您使用 AWS Cloud Development Kit (AWS CDK) 或通过 CLI 创建服务器时,如果您希望该服务器具有自定义主机名,则必须添加标签。当您使用控制台创建 Transfer Family 服务器时,标记会自动完成。
因此,您需要能够使用 Terraform 添加这些标签。在v4.35.0中,他们添加了对新资源的支持:aws_transfer_tag。
GitHub Issue 中提供的示例(我还没有亲自测试过。):
resource "aws_transfer_server" "with_custom_domain" {
# config here
}
resource "aws_transfer_tag" "with_custom_domain_route53_zone_id" {
resource_arn = aws_transfer_server.with_custom_domain.arn
key = "aws:transfer:route53HostedZoneId"
value = "/hostedzone/ABCDE1111222233334444"
}
resource "aws_transfer_tag" "with_custom_domain_name" {
resource_arn = aws_transfer_server.with_custom_domain.arn
key = "aws:transfer:customHostname"
value = "abc.example.com"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4383 次 |
| 最近记录: |