Terraform 0.11

aws_codebuild_project




terraform

aws_codebuild_project

एक CodeBuild परियोजना संसाधन प्रदान करता है।

उदाहरण उपयोग

resource "aws_s3_bucket" "example" {
  bucket = "example"
  acl    = "private"
}

resource "aws_iam_role" "example" {
  name = "example"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "codebuild.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
EOF
}

resource "aws_iam_role_policy" "example" {
  role        = "${aws_iam_role.example.name}"

  policy = <<POLICY
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DeleteNetworkInterface",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeVpcs"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:*"
      ],
      "Resource": [
        "${aws_s3_bucket.example.arn}",
        "${aws_s3_bucket.example.arn}/*"
      ]
    }
  ]
}
POLICY
}

resource "aws_codebuild_project" "example" {
  name         = "test-project"
  description  = "test_codebuild_project"
  build_timeout      = "5"
  service_role = "${aws_iam_role.example.arn}"

  artifacts {
    type = "NO_ARTIFACTS"
  }

  cache {
    type     = "S3"
    location = "${aws_s3_bucket.example.bucket}"
  }

  environment {
    compute_type = "BUILD_GENERAL1_SMALL"
    image        = "aws/codebuild/nodejs:6.3.1"
    type         = "LINUX_CONTAINER"

    environment_variable {
      "name"  = "SOME_KEY1"
      "value" = "SOME_VALUE1"
    }

    environment_variable {
      "name"  = "SOME_KEY2"
      "value" = "SOME_VALUE2"
      "type"  = "PARAMETER_STORE"
    }
  }

  source {
    type            = "GITHUB"
    location        = "https://github.com/mitchellh/packer.git"
    git_clone_depth = 1
  }

  vpc_config {
    vpc_id = "vpc-725fca"

    subnets = [
      "subnet-ba35d2e0",
      "subnet-ab129af1",
    ]

    security_group_ids = [
      "sg-f9f27d91",
      "sg-e4f48g23",
    ]
  }

  tags {
    "Environment" = "Test"
  }
}

तर्क संदर्भ

निम्नलिखित तर्क समर्थित हैं:

  • artifacts - (आवश्यक) परियोजना के निर्माण की कलाकृतियों के बारे में जानकारी। विरूपण साक्ष्य ब्लॉक नीचे प्रलेखित हैं।
  • environment - (आवश्यक) परियोजना के निर्माण पर्यावरण के बारे में जानकारी। पर्यावरण ब्लॉक नीचे प्रलेखित हैं।
  • name - (आवश्यक) परियोजनाओं का नाम।
  • source - (आवश्यक) परियोजना के इनपुट स्रोत कोड के बारे में जानकारी। स्रोत ब्लॉक नीचे दिए गए हैं।
  • badge_enabled - (वैकल्पिक) बैज बनाने वाली परियोजनाओं के लिए सार्वजनिक रूप से सुलभ URL बनाता है। सक्षम होने पर badge_url विशेषता के रूप में उपलब्ध।
  • build_timeout - (वैकल्पिक) AWS CodeBuild के लिए मिनटों में कितने समय, 5 से 480 (8 घंटे) तक, किसी भी संबंधित बिल्ड को पूरा होने तक प्रतीक्षा करने के लिए जो पूरा नहीं हुआ है। डिफ़ॉल्ट 60 मिनट है।
  • cache - (वैकल्पिक) परियोजना के लिए कैश भंडारण के बारे में जानकारी। कैश ब्लॉक नीचे दिए गए हैं।
  • description - (वैकल्पिक) परियोजना का संक्षिप्त विवरण।
  • encryption_key - (वैकल्पिक) AWS कुंजी प्रबंधन सेवा (AWS KMS) ग्राहक मास्टर कुंजी (CMK) का उपयोग बिल्ड प्रोजेक्ट की बिल्ड आउटपुट कलाकृतियों को एन्क्रिप्ट करने के लिए किया जाता है।
  • service_role - (वैकल्पिक) AWS पहचान और अभिगम प्रबंधन (IAM) की अमेज़न संसाधन नाम (ARN) भूमिका जो AWS कोड की ओर से आश्रित AWS सेवाओं के साथ बातचीत करने के लिए AWS CodeBuild सक्षम करता है।
  • tags - (वैकल्पिक) संसाधन को असाइन करने के लिए टैग की मैपिंग।
  • vpc_config - (वैकल्पिक) एक VPC के अंदर चलाने के लिए बनाता है। वीपीसी कॉन्फिग ब्लॉक नीचे प्रलेखित हैं।

artifacts निम्नलिखित का समर्थन करती हैं:

  • type - (आवश्यक) निर्माण आउटपुट विरूपण साक्ष्य के प्रकार। इस पैरामीटर के लिए मान्य मान हैं: CODEPIPELINE , NO_ARTIFACTS या S3
  • location - (वैकल्पिक) निर्माण आउटपुट विरूपण साक्ष्य स्थान के बारे में जानकारी। यदि type CODEPIPELINE या NO_ARTIFACTS सेट है तो इस मान को अनदेखा कर दिया जाएगा। यदि type S3 सेट है, तो यह आउटपुट बकेट का नाम है। यदि path भी निर्दिष्ट नहीं है, तो location आउटपुट बकेट में आउटपुट विरूपण साक्ष्य के पथ को भी निर्दिष्ट कर सकता है।
  • name - (वैकल्पिक) परियोजना का नाम। यदि type S3 सेट है, तो यह आउटपुट आर्टिफ़ैक्ट ऑब्जेक्ट का नाम है
  • namespace_type - (वैकल्पिक) नाम का उपयोग कलाकृतियों के निर्माण में किया जाता है। यदि type S3 सेट है, तो इस पैरामीटर के लिए मान्य मान हैं: BUILD_ID या NONE
  • packaging - (वैकल्पिक) बनाने के लिए आउटपुट आर्टवर्क का प्रकार। यदि type S3 सेट है, तो इस पैरामीटर के लिए मान्य मान हैं: NONE या ZIP
  • path - (वैकल्पिक) यदि type S3 सेट है, तो आउटपुट आर्टिफिकेशन के लिए यह मार्ग है

cache निम्नलिखित का समर्थन करता है:

  • type - (वैकल्पिक) भंडारण का प्रकार जो एडब्ल्यूएस कोडबिल्ड प्रोजेक्ट कैश के लिए उपयोग किया जाएगा। मान्य मान: NO_CACHE और S3NO_CACHE
  • location - (आवश्यक है जब कैश प्रकार S3 ) वह स्थान जहां AWS CodeBuild प्रोजेक्ट संग्रहीत संसाधनों को संग्रहीत करता है। S3 प्रकार के लिए मान एक मान्य S3 बाल्टी नाम / उपसर्ग होना चाहिए।

environment निम्नलिखित का समर्थन करता है:

  • compute_type - (आवश्यक) कंप्यूट प्रोजेक्ट के बारे में जानकारी जो बिल्ड प्रोजेक्ट उपयोग करेगा। इस पैरामीटर के लिए उपलब्ध मूल्य हैं: BUILD_GENERAL1_SMALL , BUILD_GENERAL1_MEDIUM या BUILD_GENERAL1_LARGEBUILD_GENERAL1_SMALL केवल तभी मान्य है जब type LINUX_CONTAINER सेट किया गया LINUX_CONTAINER
  • image - (आवश्यक) इस बिल्ड प्रोजेक्ट के लिए उपयोग करने के लिए डॉकर छवि की छवि पहचानकर्ता ( AWS CodeBuild द्वारा प्रदान की गई डॉकटर छवियों की सूची। )। आप documentation में AWS क्यूरेटेड पर्यावरण छवियों के बारे में अधिक पढ़ सकते हैं।
  • type - (आवश्यक) संबंधित बिल्ड के लिए उपयोग करने के लिए बिल्ड वातावरण का प्रकार। उपलब्ध मान हैं: LINUX_CONTAINER या WINDOWS_CONTAINER
  • environment_variable - (वैकल्पिक) इस निर्माण परियोजना के लिए बिल्डरों को उपलब्ध कराने के लिए पर्यावरण चर का एक सेट।
  • privileged_mode - (वैकल्पिक) यदि सही पर सेट किया गया है, तो डोकर कंटेनर के अंदर डॉकर डेमन को चलाने में सक्षम बनाता है। false अवहेलना करता false

environment_variable निम्नलिखित का समर्थन करता है:

  • name - (आवश्यक) पर्यावरण चर का नाम या कुंजी।
  • value - (आवश्यक) पर्यावरण चर का मान।
  • type - (वैकल्पिक) पर्यावरण चर का प्रकार। मान्य मान: PARAMETER_STORE , PLAINTEXT

source निम्नलिखित का समर्थन करता है:

  • type - (आवश्यक) प्रकार का भंडार जिसमें स्रोत कोड बनाया जाना है। इस पैरामीटर के लिए मान्य मूल्य हैं: CODECOMMIT , CODEPIPELINE , GITHUB , GITHUB_ENTERPRISE , BITBUCKET या S3
  • auth - (वैकल्पिक) निर्मित किए जाने वाले स्रोत कोड तक पहुंचने के लिए AWS कोडबल्ड के लिए प्राधिकरण सेटिंग्स के बारे में जानकारी। प्रामाणिक ब्लॉक नीचे दिए गए हैं।
  • buildspec - (वैकल्पिक) इस बिल्ड प्रोजेक्ट के संबंधित बिल्ड के लिए उपयोग करने के लिए बिल्ड स्पेक घोषणा।
  • git_clone_depth - (वैकल्पिक) यह कई git_clone_depth करने के लिए इतिहास को git_clone_depth है।
  • insecure_ssl - (वैकल्पिक) स्रोत नियंत्रण से कनेक्ट करते समय SSL चेतावनियों को अनदेखा करें।
  • location - (वैकल्पिक) git या s3 से स्रोत कोड का स्थान।

auth निम्नलिखित का समर्थन करता है:

  • type - (आवश्यक) प्राधिकरण प्रकार का उपयोग करने के लिए। केवल मान्य मान OAUTH
  • resource - (वैकल्पिक) वह संसाधन मान जो निर्दिष्ट प्राधिकरण प्रकार पर लागू होता है।

vpc_config निम्नलिखित का समर्थन करता है:

  • security_group_ids - (आवश्यक) रनिंग बिल्ड को असाइन करने के लिए सुरक्षा समूह IDs।
  • subnets - (आवश्यक) सबनेट आईडी जिसमें बिल्ड चलाना है।
  • vpc_id - (आवश्यक) vpc_id की आईडी जिसके भीतर vpc_id को चलाना है।

संदर्भ संदर्भित करता है

उपरोक्त सभी तर्कों के अलावा, निम्नलिखित विशेषताएँ निर्यात की जाती हैं:

  • id - कोडबील परियोजना के एआरएन।
  • badge_url - badge_url सक्षम होने पर बिल्ड बैज का URL।

आयात

CodeBuild प्रोजेक्ट को name का उपयोग करके आयात किया जा सकता है, जैसे

$ terraform import aws_codebuild_project.name project-name