到目前为止,我通过控制台和/或boto3库部署了我的胶水作业。
我想使用Terraform移动到Infrastructure as Code,并使用这个工具管理所有的胶水资源。现在,为了导入已经存在的资源,我知道命令terraform import ADDR ID,但是我不确定它是如何工作的。
谁能给我解释一下如何使用AWS Glue进行导入?
发布于 2021-05-15 00:21:58
在导入AWS Glue Job之前,有必要在https://www.terraform.io/docs/cli/import/usage.html的当前工作目录中创建一个.tf文件。
因此,让我们像这样创建一个main.tf文件:
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.27"
}
}
}
provider "aws" {
region = "my-region-1"
assume_role {
role_arn = "arn:aws:iam::012345678901:role/MyRole"
}
}
resource "aws_glue_job" "my_job_resource" {
name = "my-glue-job"
role_arn = "arn:aws:iam::012345678901:role/MyGlueJobRole"
command {
name = "glueetl"
script_location = "s3://my-bucket/my-script.py"
python_version = "3"
}
}其中:
my-region-1是AWS区域,其中operatingarn:aws:iam::012345678901:role/MyRole是在运行Terraform命令时承担的AWS角色(这是将访问AWS /与AWS进行交互的内容) Resources)my-glue-job是现有胶水Jobarn:aws:iam::012345678901:role/MyGlueJobRole的名称是现有胶水的AWS角色Jobs3://my-bucket/my-script.py是胶水作业脚本的S3位置
对于其他字段引用和/或变体,command字段是胶水作业导入的特定字段,被视为必填字段:https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/glue_job
准备好main.tf文件后,从包含该文件的同一文件夹中的命令行界面运行以下命令:
terraform init
terraform import aws_glue_job.my_job_resource my-glue-job
terraform show以下是关于这些命令的一些详细信息:
AWS
my_job_resource是标识资源的块的名称,而my-glue-job是实际的粘合作业名称(在两种情况下都参考main.tf文件)将上一步生成的输出复制并替换到main.tf文件中,替换块resource "aws_glue_job" "my_job_resource"。
现在将其导入到Terraform脚本中。
同样的原理可以重用于任何其他胶水资源,只需参考文档页面https://registry.terraform.io/providers/hashicorp/aws/latest/docs
https://stackoverflow.com/questions/67537640
复制相似问题