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