Terraform 地形AWS批次作业定义参数(AWS\u批次作业定义)
我试图理解在启动AWS批处理作业时如何进行参数替换。我需要做的是为我的AWS批处理作业提供一个S3对象键。我还没有找到一个Terraform示例,其中参数被传递给批处理作业,而我似乎无法让它工作 的文档包含以下示例:Terraform 地形AWS批次作业定义参数(AWS\u批次作业定义),terraform,terraform-provider-aws,aws-batch,Terraform,Terraform Provider Aws,Aws Batch,我试图理解在启动AWS批处理作业时如何进行参数替换。我需要做的是为我的AWS批处理作业提供一个S3对象键。我还没有找到一个Terraform示例,其中参数被传递给批处理作业,而我似乎无法让它工作 的文档包含以下示例: resource "aws_batch_job_definition" "test" { name = "tf_test_batch_job_definition" type = "container&q
resource "aws_batch_job_definition" "test" {
name = "tf_test_batch_job_definition"
type = "container"
container_properties = <<CONTAINER_PROPERTIES
{
"command": ["ls", "-la"],
"image": "busybox",
"memory": 1024,
"vcpus": 1,
"volumes": [
{
"host": {
"sourcePath": "/tmp"
},
"name": "tmp"
}
],
"environment": [
{"name": "VARNAME", "value": "VARVAL"}
],
"mountPoints": [
{
"sourceVolume": "tmp",
"containerPath": "/tmp",
"readOnly": false
}
],
"ulimits": [
{
"hardLimit": 1024,
"name": "nofile",
"softLimit": 1024
}
]
}
CONTAINER_PROPERTIES
}
resource“aws\u批处理作业\u定义”“测试”{
name=“tf\u测试\u批量\u作业\u定义”
type=“容器”
容器属性=aws\u批处理作业定义的地形文档。参数目前非常稀少
但是,通过对aws中的现有作业运行aws批处理描述作业--jobs$job_id
,参数对象似乎需要一个映射:
{
"jobs": [
{
"parameters": {},
"container": {
"image": "",
"command": []
}
}
]
}
因此,您可以使用Terraform使用map变量定义批处理参数,然后在批处理资源命令定义中使用CloudFormation语法,如Ref::myVariableKey
,提交AWS作业后,该语法将正确插入。示例:
variable "batch_params" {
type = map
default = {
bucketName = "defaultBucketName",
}
}
resource "aws_batch_job_definition" "test" {
name = "tf_test_batch_job_definition"
type = "container"
parameters = var.batch_params
container_properties = <<CONTAINER_PROPERTIES
{
"command": ["Ref::bucketName"],
"image": "busybox",
"memory": 1024,
"vcpus": 1,
"volumes": [
{
"host": {
"sourcePath": "/tmp"
},
"name": "tmp"
}
],
"environment": [
{"name": "VARNAME", "value": "VARVAL"}
],
"mountPoints": [
{
"sourceVolume": "tmp",
"containerPath": "/tmp",
"readOnly": false
}
],
"ulimits": [
{
"hardLimit": 1024,
"name": "nofile",
"softLimit": 1024
}
]
}
CONTAINER_PROPERTIES
}
变量“批处理参数”{
类型=映射
默认值={
bucketName=“defaultBucketName”,
}
}
资源“aws\u批处理\u作业\u定义”“测试”{
name=“tf\u测试\u批量\u作业\u定义”
type=“容器”
参数=变量批处理参数
容器属性=