从零开始贡献 Azure Community-Policy:开发者必知的贡献指南
从零开始贡献 Azure Community-Policy开发者必知的贡献指南【免费下载链接】Community-PolicyThis repo is for Microsoft Azure customers and Microsoft teams to collaborate in making custom policies.项目地址: https://gitcode.com/gh_mirrors/co/Community-PolicyAzure Community-Policy 是一个由微软 Azure 用户和内部团队共同维护的开源项目旨在分享和协作开发自定义策略。这些策略由社区构建虽然不是微软官方内置策略但为 Azure 资源治理提供了丰富的自定义解决方案。本文将详细介绍如何从零开始贡献你的第一个 Azure Policy帮助开发者快速掌握贡献流程和规范。准备工作了解项目结构与规范在开始贡献前首先需要了解项目的文件结构和命名规范。Community-Policy 采用严格的目录层次结构所有策略定义都位于policyDefinitions文件夹下遵循两级子目录结构一级目录根据metadata.category命名对应 Azure 资源提供程序如Compute计算、Storage存储、Key Vault密钥保管库等。完整的有效类别列表可参考 Scripts/Format-PolicyDefinition.ps1。二级目录以策略显示名称命名将空格和特殊字符替换为连字符所有字母转换为小写例如deny-vm-storage-account或allowed-network-locations。每个策略必须包含三个文件且文件名固定azurepolicy.json完整的策略定义 JSON包含参数和规则。azurepolicy.rules.json仅包含策略规则的 JSON。azurepolicy.parameters.json仅包含参数定义的 JSON。注意不要嵌套文件夹超过两级且所有文件和二级文件夹名称必须使用小写字母以确保 GitHub 上的一致性排序。核心步骤贡献策略的完整流程1. 克隆项目仓库首先将项目仓库克隆到本地开发环境git clone https://gitcode.com/gh_mirrors/co/Community-Policy cd Community-Policy2. 创建策略文件根据上述结构在policyDefinitions下创建对应目录并编写三个必要的 JSON 文件。以下是策略文件的核心要求必备元素顶层属性name必须是 GUID确保策略可更新type必须为Microsoft.Authorization/policyDefinitions。嵌套属性displayName策略名称、description策略描述、metadata元数据含version和category、mode策略模式均为必填项。参数定义参数名称需使用 camelCase提供allowedValues允许值、defaultValue默认值和displayName参数显示名称。效果参数化策略的effect必须参数化名称固定为effect类型为String且必须包含allowedValues和defaultValue。例如{ parameters: { effect: { type: String, metadata: { displayName: Effect, description: DeployIfNotExists, AuditIfNotExists or Disabled the execution of the Policy }, allowedValues: [DeployIfNotExists, AuditIfNotExists, Disabled], defaultValue: DeployIfNotExists } } }3. 验证与格式化策略在提交 PR 前必须使用项目提供的脚本验证和格式化策略文件确保符合规范验证脚本Scripts/Confirm-PolicyDefinitionIsValid.ps1检查策略文件的必填元素和格式是否正确。格式化脚本Scripts/Out-FormattedPolicyDefinition.ps1自动修复格式问题如 GUID 生成、版本号标准化并将完整策略拆分为三个 required 文件。运行示例.\Scripts\Out-FormattedPolicyDefinition.ps1 -InputFile .\policyDefinitions\Compute\your-policy\azurepolicy.json4. 提交 Pull Request提交 PR 时需满足以下条件每个 PR 仅包含一个策略且位于独立文件夹中。响应 PR 评审意见的时间不超过 10 天否则 PR 将被关闭。确保已签署 Contributor License Agreement (CLA)提交 PR 时会由 CLA 机器人自动检测。常见问题与支持资源如何获取帮助一般问题访问 Azure Governance 社区论坛 或 StackOverflow。文档反馈直接在 Azure Policy 文档页面底部提交反馈。新策略建议通过 Azure Governance Ideas 提交建议。必备学习资源Azure Policy 概述策略定义结构策略效果详解使用 GitHub 管理策略即代码总结贡献 Azure Community-Policy 不仅能帮助你深入理解 Azure 资源治理还能为全球开发者社区提供有价值的解决方案。只需遵循本文介绍的步骤从了解项目规范、编写策略文件到使用脚本验证和提交 PR即可完成你的第一次贡献。开始行动吧让你的策略成为社区的一部分 【免费下载链接】Community-PolicyThis repo is for Microsoft Azure customers and Microsoft teams to collaborate in making custom policies.项目地址: https://gitcode.com/gh_mirrors/co/Community-Policy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考