aws-codepipeline/Pipeline是AWS CDK中的高级抽象类,用于创建AWS CodePipeline管道。而pipelines/CodePipelines是AWS CDK中的低级抽象类,可用于构建与自定义AWS CodePipeline管道。
下面是使用aws-codepipeline/Pipeline创建AWS CodePipeline管道的示例代码:
from aws_cdk import (
aws_codepipeline as codepipeline,
aws_codepipeline_actions as actions,
aws_s3 as s3,
core,
)
class MyStack(core.Stack):
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
source_artifact = codepipeline.Artifact()
output_artifact = codepipeline.Artifact()
# Create an S3 bucket to hold the source code
source_bucket = s3.Bucket(
self, "SourceBucket",
versioned=True
)
# Create the CodePipeline pipeline
pipeline = codepipeline.Pipeline(
self, "Pipeline",
pipeline_name="MyPipeline"
)
# Define pipeline stages
source_stage = pipeline.add_stage(
stage_name="Source",
actions=[
actions.S3SourceAction(
action_name="S3Source",
bucket=source_bucket,
bucket_key="src.zip",
output=source_artifact
)
]
)
build_stage = pipeline.add_stage(
stage_name="Build",
actions=[
actions.CodeBuildAction(
action_name="CodeBuild",
project=codebuild_project,
input=source_artifact,
outputs=[output_artifact]
)
]
)
# Add a manual approval action
approval_stage = pipeline.add_stage(
stage_name="Approval",
actions=[
actions.ManualApprovalAction(
action_name="Approval"
)
]
)
# Define the pipeline's deployment stage
deploy_stage = pipeline.add_stage(
stage_name="Deploy",
actions=[
actions.CloudFormationCreateUpdateStackAction(
action_name="Deploy",
stack_name="MyStack",
template_path=output_artifact.at_path("template.yaml"),
admin_permissions=True
)
]
)
下面是使用pipelines/CodePipelines创建AWS CodePipeline管道的示例代码:
from aws_cdk import (
aws_cloudformation as cfn,
aws_lambda as lambda_,
aws_events as events,
aws_events_targets as targets,
aws_codepipeline as codepipeline,
aws_codepipeline_actions as actions,
aws_iam as iam,
aws_codebuild as codebuild,
aws_s3_assets as s3_assets,
aws_s3 as s3,
core,
)
class MyStack(core.Stack):
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
source_artifact = codepipeline.Artifact()
output_artifact = codepipeline.Artifact()
pipeline = codepipeline.Pipeline(
self, "Pipeline",
pipeline_name="MyPipeline"
)
# Add a source stage to the pipeline
source_stage = pipeline.add_stage(
stage_name="Source"
)
# Create an S3 bucket to hold the source code
source_bucket = s3.Bucket(
self, "SourceBucket",
versioned=True
)
# Add an S3 source action to the pipeline
source_action = actions.S3SourceAction(
action_name="S