如何将AWS CodeBuild配置导出为云形成模板

问题描述 投票:0回答:1

我已经通过aws控制台UI手动设置了aws代码,现在我想知道是否仍然可以在不手动编写云形成文件的情况下将配置导出为JSON或YAML格式?我基本上正在寻找类似cloud-former的东西。

amazon-web-services amazon-cloudformation aws-codebuild
1个回答
0
投票

您可以查询AWS API来描述您现有的CodeBuild项目,然后将结果复制/粘贴到CF模板的AWS::CodeBuild::Project资源中。这是在命令行上使用awscli工具集的示例。

$ AWS_PROFILE=mycompanyinc aws codebuild batch-get-projects --names myproject --output json

给出此结果:

{
    "projects": [
        {
            "name": "myproject",
            "arn": "arn:aws:codebuild:us-east-1:999999999999:project/myproject",
            "source": {
                "type": "GITHUB",
                "location": "https://github.com/mycompanyinc/myproject",
                "gitCloneDepth": 1,
                "buildspec": "",
                "reportBuildStatus": true,
                "insecureSsl": false
            },
            "artifacts": {
                "type": "S3",
                "location": "mybucket",
                "path": "myproject/builds/",
                "namespaceType": "NONE",
                "name": "myproject",
                "packaging": "ZIP",
                "overrideArtifactName": false,
                "encryptionDisabled": false
            },
            "secondaryArtifacts": [],
            "cache": {
                "type": "S3",
                "location": "mybucket2/myproject/cache/archives"
            },
            "environment": {
                "type": "LINUX_CONTAINER",
                "image": "aws/codebuild/standard:2.0",
                "computeType": "BUILD_GENERAL1_LARGE",
                "environmentVariables": [],
                "privilegedMode": false,
                "imagePullCredentialsType": "CODEBUILD"
            },
            "serviceRole": "arn:aws:iam::999999999999:role/aws-codesuite-myproject20190904155707307200000001",
            "timeoutInMinutes": 60,
            "queuedTimeoutInMinutes": 480,
            "encryptionKey": "arn:aws:kms:us-east-1:999999999999:alias/aws/s3",
            "tags": [],
            "created": 156762637.466,
            "lastModified": 157385985.25,
            "webhook": {
                "url": "https://api.github.com/repos/mycompanyinc/myproject/hooks/999",
                "payloadUrl": "https://codebuild.us-east-1.amazonaws.com/webhooks?t=xxxbmNyeXB0ZWREYXRhIjoiRk1jVXMyVTlhQzF6QjhLRmhQanRpRxxxxxQxxFiMGZvVzB1QVVrNTg4OEQ4YWFEeHc5MGdra0ZWRHc2OWpHcXBLUmwv0MvbHBkWi9zS1g2dUFFQ1BJPSIsIml2UGFyYW1ldGVyU3BlYyI6Ik9ETElPSFppWjBaOGNHbUwiLCJtYXRlcmlhbFNldFNlcmlhbxxxx%3D&v=1"
            },
            "badge": {
                "badgeEnabled": true,
                "badgeRequestUrl": "https://codebuild.us-east-1.amazonaws.com/badges?uuid=xxxxbmNyeXB0ZWREYXRhIjoiSk9vRG9lWWtBbExKcVp5ZVJzdlhyYnlOckUxL1BJcFUzbWFrUHN3dXMyUmVJWHByS3N1S0ZzZ1haWGFCbUtsVEhpQVxb3hhbWNXQUdTVFVPxxRUcWRRPSIsIml2UGFyYW1ldGVyU3BlYyI6IkVKMUNkNThUbVBJSDArcksiLCJtYXRlcmlhbFNldFNlcmlhbCIxxxx%3D&branch=master"
            },
            "logsConfig": {
                "cloudWatchLogs": {
                    "status": "ENABLED"
                },
                "s3Logs": {
                    "status": "DISABLED",
                    "encryptionDisabled": false
                }
            }
        }
    ],
    "projectsNotFound": []
}
© www.soinside.com 2019 - 2024. All rights reserved.