Amazon web services 将cloudformation无服务器模板转换为Terraform的最佳方法

Amazon web services 将cloudformation无服务器模板转换为Terraform的最佳方法,amazon-web-services,terraform,amazon-cloudformation,serverless-framework,Amazon Web Services,Terraform,Amazon Cloudformation,Serverless Framework,我正在尝试将无服务器框架YML文件转换为Terraform脚本 这是我第一次使用terraform,我对infra也没有太多经验 我的地形有一些错误,但我的问题更多的是关于我的方法 有没有更好/更简单/更智能的方法在Terraform中编写相同的无服务器yml 也许有一些模块可以让我的生活更轻松。 地形 # Lambda invoke function role data data "aws_iam_policy_document" "lambda_invoke_function_role" {

我正在尝试将
无服务器框架
YML文件转换为Terraform脚本

这是我第一次使用
terraform
,我对infra也没有太多经验

我的地形有一些错误,但我的问题更多的是关于我的方法

有没有更好/更简单/更智能的方法在Terraform中编写相同的无服务器yml

也许有一些模块可以让我的生活更轻松。

地形

# Lambda invoke function role data
data "aws_iam_policy_document" "lambda_invoke_function_role" {
  version = "2012-10-17"
  statement {
    sid     = ""
    effect  = "Allow"
    actions = ["sts:AssumeRole"]

    principals {
      service = "lambda.amazonaws.com"
    }
  }
}

# Lambda ec2
data "aws_iam_policy_document" "ec2_lambda_policies_role" {
  version = "2012-10-17"
  statement {
    sid    = ""
    effect = "Allow"
    actions = [
      "ec2:CreateNetworkInterface",
      "ec2:DescribeNetworkInterfaces",
      "ec2:DetachNetworkInterface",
      "ec2:DeleteNetworkInterface"
    ]
    resources = "*"
  }
}

# Lambda allow invoke
data "aws_iam_policy_document" "allow_invoke_role" {
  version = "2012-10-17"
  statement {
    sid    = ""
    effect = "Allow"
    actions = [
      "lambda:InvokeFunction"
    ]
    resources = "*"
  }
}


# Lambda invoke function role
resource "aws_iam_role" "lambda_invoke_function_role" {
  name               = "lambdaRole"
  assume_role_policy = "${data.aws_iam_policy_document.lambda_invoke_function_role.json}"
}


# EC2 ##############################################################################
resource "aws_iam_policy" "ec2_lambda_policies_policy" {
  name               = "ec2LambdaPolicy"
  assume_role_policy = "${data.aws_iam_policy_document.ec2_lambda_policies_role.json}"
}

resource "aws_iam_role_policy_attachment" "ec2_lambda_policies_policy_attachment" {
  role       = "${aws_iam_role.lambda_invoke_function_role.name}"
  policy_arn = "${aws_iam_policy.ec2_lambda_policies_policy.arn}"
}
###############################################################################


# Allow Invoke #####################################################################
resource "aws_iam_policy" "allow_invoke_policy" {
  name               = "allowInvokePolicy"
  assume_role_policy = "${data.aws_iam_policy_document.allow_invoke_role.json}"
}

resource "aws_iam_role_policy_attachment" "allow_invoke_policy_attachment" {
  role       = "${aws_iam_role.lambda_invoke_function_role.name}"
  policy_arn = "${aws_iam_policy.allow_invoke_policy.arn}"
}
###############################################################################


# Lambda invoke function role policy attachment
resource "aws_iam_role_policy_attachment" "aws_lambda_basic_execution_role" {
  role       = "${aws_iam_role.lambda_invoke_function_role.name}"
  policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
}

# Lambda invoke function role policy attachment
resource "aws_iam_role_policy_attachment" "aws_lambda_vpc_access_execution_role" {
  role       = "${aws_iam_role.lambda_invoke_function_role.name}"
  policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"
}
无服务器YML(云形成)


你可能想看看哪一种将云层转化为地形

cf-to-tf --stack foobarbaz config | json2hcl | cf-to-tf clean-hcl | terraform fmt -

这将从AWS导入堆栈
foobarbaz
,并将其转换为terraform,然后将其打印到标准输出。

您可能想看看哪个将cloudformation转换为terraform

cf-to-tf --stack foobarbaz config | json2hcl | cf-to-tf clean-hcl | terraform fmt -

这将从AWS导入您的堆栈
foobarbaz
,并将其转换为terraform并将其打印到stdout。

足够公平。我会更新这个问题。我正在处理错误。这就是为什么我想找到更好的方法。这似乎是很平常的事。我做了一些研究,试图找到流行的模块,但没有幸运地删除任何与错误相关的东西,以避免误解。我会更新这个问题。我正在处理错误。这就是为什么我想找到更好的方法。这似乎是很平常的事。我做了一些研究,试图找到流行的模块,但没有幸运地删除任何与错误相关的东西,以避免误解。我以前没有想过类似的事情。这是一个很好的观点,甚至可以理解我的infra应该如何在terraform中设置。我将尝试转换400多行云信息。非常好的叫声。我以前没想过这样的事。这是一个很好的观点,甚至可以理解我的infra应该如何在terraform中设置。我将尝试转换400多行云信息。非常好的叫声。