Terraform 0.11

aws_codepipeline




terraform

aws_codepipeline

एक CodePipeline प्रदान करता है।

उदाहरण उपयोग

resource "aws_s3_bucket" "foo" {
  bucket = "test-bucket"
  acl    = "private"
}

resource "aws_iam_role" "foo" {
  name = "test-role"

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

resource "aws_iam_role_policy" "codepipeline_policy" {
  name = "codepipeline_policy"
  role = "${aws_iam_role.codepipeline_role.id}"
  policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect":"Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:GetBucketVersioning"
      ],
      "Resource": [
        "${aws_s3_bucket.foo.arn}",
        "${aws_s3_bucket.foo.arn}/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "codebuild:BatchGetBuilds",
        "codebuild:StartBuild"
      ],
      "Resource": "*"
    }
  ]
}
EOF
}

data "aws_kms_alias" "s3kmskey" {
  name = "alias/myKmsKey"
}

resource "aws_codepipeline" "foo" {
  name     = "tf-test-pipeline"
  role_arn = "${aws_iam_role.foo.arn}"

  artifact_store {
    location = "${aws_s3_bucket.foo.bucket}"
    type     = "S3"
    encryption_key {
      id   = "${data.aws_kms_alias.s3kmskey.arn}"
      type = "KMS"
    }
  }

  stage {
    name = "Source"

    action {
      name             = "Source"
      category         = "Source"
      owner            = "ThirdParty"
      provider         = "GitHub"
      version          = "1"
      output_artifacts = ["test"]

      configuration {
        Owner      = "my-organization"
        Repo       = "test"
        Branch     = "master"
      }
    }
  }

  stage {
    name = "Build"

    action {
      name            = "Build"
      category        = "Build"
      owner           = "AWS"
      provider        = "CodeBuild"
      input_artifacts = ["test"]
      version         = "1"

      configuration {
        ProjectName = "test"
      }
    }
  }
}

तर्क संदर्भ

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

  • name - (आवश्यक) पाइपलाइन का नाम।
  • role_arn - (आवश्यक) एक सेवा भूमिका अमेज़न संसाधन नाम (ARN) जो आपकी ओर से AWS सेवाओं को कॉल करने के लिए AWS CodePipeline की अनुमति देता है।
  • artifact_store (आवश्यक) एक आर्टवर्क_स्टोर ब्लॉक। विरूपण साक्ष्य भंडार नीचे प्रलेखित हैं।
  • stage (आवश्यक) एक स्टेज ब्लॉक। चरणों का दस्तावेजीकरण नीचे किया गया है।

एक artifact_store ब्लॉक निम्नलिखित तर्कों का समर्थन करता है:

  • location - (आवश्यक) वह स्थान जहाँ AWS CodePipeline एक पाइपलाइन के लिए कलाकृतियों को संग्रहीत करता है, जैसे कि S3 बाल्टी।
  • type - (आवश्यक) अमेज़ॅन स्टोर का प्रकार, जैसे अमेज़ॅन एस 3
  • encryption_key - (वैकल्पिक) एन्क्रिप्शन कुंजी ब्लॉक AWS CodePipeline एक AWS कुंजी प्रबंधन सेवा (AWS KMS) कुंजी जैसे विरूपण साक्ष्य स्टोर में डेटा एन्क्रिप्ट करने के लिए उपयोग करता है। यदि आप एक कुंजी निर्दिष्ट नहीं करते हैं, तो AWS CodePipeline Amazon Simple Storage Service (Amazon S3) के लिए डिफ़ॉल्ट कुंजी का उपयोग करता है। नीचे एक encryption_key ब्लॉक प्रलेखित है।

एक encryption_key ब्लॉक निम्नलिखित तर्कों का समर्थन करती है:

  • id - (आवश्यक) KMS कुंजी ARN या ID
  • type - (आवश्यक) कुंजी का प्रकार; वर्तमान में केवल KMS समर्थित है

एक stage ब्लॉक निम्नलिखित तर्कों का समर्थन करता है:

  • name - (आवश्यक) मंच का नाम।
  • action - (आवश्यक) कार्रवाई (ओं) को चरण में शामिल करने के लिए। नीचे एक action ब्लॉक के रूप में परिभाषित किया गया है

एक action ब्लॉक निम्नलिखित तर्कों का समर्थन करता है:

  • category - (आवश्यक) एक श्रेणी परिभाषित करती है कि किस प्रकार की कार्रवाई को चरण में लिया जा सकता है, और कार्रवाई के लिए प्रदाता प्रकार को बाधित करता है। संभावित मूल्य Approval , Build , Deploy , Invoke , Source और Test
  • owner - (आवश्यक) कार्रवाई के निर्माता कहा जा रहा है। संभावित मूल्य AWS , Custom और ThirdParty
  • name - (आवश्यक) कार्रवाई घोषणा का नाम।
  • provider - (आवश्यक) सेवा के प्रदाता को कार्रवाई द्वारा बुलाया जा रहा है। मान्य प्रदाताओं को कार्रवाई श्रेणी द्वारा निर्धारित किया जाता है। उदाहरण के लिए, डिप्लॉय श्रेणी प्रकार की एक कार्रवाई में AWS कोडडेप्लो का एक प्रदाता हो सकता है, जिसे कोडडेप्लो के रूप में निर्दिष्ट किया जाएगा।
  • version - (आवश्यक) एक स्ट्रिंग जो क्रिया प्रकार की पहचान करती है।
  • configuration - (वैकल्पिक) एक्शन घोषणा के कॉन्फ़िगरेशन का एक नक्शा। संदर्भ पाइपलाइन संरचना प्रलेखन में एक्शन कॉन्फ़िगरेशन को कॉन्फ़िगर करने के बारे में अधिक जानकारी प्राप्त करें।
  • input_artifacts - (वैकल्पिक) काम करने के लिए कलाकृतियों के नामों की एक सूची।
  • output_artifacts - (वैकल्पिक) आउटपुट के लिए कलाकृतियों के नामों की एक सूची। आउटपुट विरूपण साक्ष्य नाम एक पाइपलाइन के भीतर अद्वितीय होना चाहिए।
  • role_arn - (वैकल्पिक) IAM सेवा भूमिका का ARN जो घोषित कार्रवाई करेगा। यह पाइपलाइन के लिए भूमिका के माध्यम से माना जाता है।
  • run_order - (ऑप्शनल) वह क्रम जिसमें कार्य चलाए जाते हैं।

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

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

  • id - कोडपिपलीन आईडी।
  • arn - कोडपिपलीन एआरएन।

आयात

CodePipelines नाम, जैसे का उपयोग करके आयात किया जा सकता है

$ terraform import aws_codepipeline.foo example