Terraform aws - 无法使用 terraform 脚本创建 AWS SFTP 服务器

Sas*_*san 5 amazon-web-services terraform terraform-provider-aws

我正在尝试使用脚本创建AWS SFTP服务器terraform

我能够使用命令进行验证,并且也terraform validate能够使用计划terraform plan

terraform apply但我在尝试运行命令时遇到以下错误

错误:创建传输服务器时出错:InvalidRequestException:必须在 .terraform/modules/sftp/sftp.tf 第 1 行,资源“aws_transfer_server”“sftp”中指定具有 IdentityProviderDetails 的 IdentityProviderType:1:资源“aws_transfer_server”“sftp”{ 在此输入图像描述

我已在脚本中提供了identity_provider_type = "SERVICE_MANAGED",但仍然收到错误并且无法创建 AWS SFTP 服务器。

这是我的脚本

sftp.tf

provider "aws" {
   version = "~> 2.0"
   region  = "us-east-1"
}

resource "aws_transfer_server" "sftp" {
  identity_provider_type = "SERVICE_MANAGED"
  invocation_role = "arn:aws:iam::<id>"

  tags = {
        NAME     = "test-sftp"
  }
}
Run Code Online (Sandbox Code Playgroud)

主.tf

provider "aws" {
    version = "~> 2.0"
    region  = "us-east-1"
}

module "sftp" {
    source = "/home/sasi/TerraForm/terraform-scripts/modules/sftp"
    aws-transfer-server-name = "test-sftp"
    iam-role-name-for-sftp = "test-sftp-role"
    s3-access-policy-name = "s3-specific-bucket-access"
    sftp-user-name = "sasi-sftp"
    sftp-s3-bucket-name = "/sasi-learn-test-bucket"
    ssh-public-key-file-location = "${file("/home/sasi/TerraForm/terraform-scripts/modules/sftp/rsa.pub")}"
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*o E 1

看来你不需要invocation_rolewhen identity_provider_typeis SERVICE_MANAGED以下是来自 Terraform 传输服务器资源页面的信息:

invocation_role - (Optional) Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an identity_provider_type of API_GATEWAY.
Run Code Online (Sandbox Code Playgroud)

由于您identity_provider_type不是API_GATEWAY,您可以尝试不提供invocation_role.