From 647fbeecb32432b87f4ba09e31e7861d9006e4b6 Mon Sep 17 00:00:00 2001 From: chethazn Date: Mon, 23 Mar 2026 22:10:38 +0000 Subject: [PATCH 01/10] Add Azure DevOps integration with Feature + Child Task hierarchy --- azuredevops/README-ado.md | 531 ++++++++++++++++ .../cloudformation/cloudformation.yaml | 585 ++++++++++++++++++ azuredevops/code/HealthEventADOIntegration.py | 455 ++++++++++++++ .../code/HealthEventProcessorLambda.py | 531 ++++++++++++++++ 4 files changed, 2102 insertions(+) create mode 100644 azuredevops/README-ado.md create mode 100644 azuredevops/cloudformation/cloudformation.yaml create mode 100644 azuredevops/code/HealthEventADOIntegration.py create mode 100644 azuredevops/code/HealthEventProcessorLambda.py diff --git a/azuredevops/README-ado.md b/azuredevops/README-ado.md new file mode 100644 index 0000000..c47e9e8 --- /dev/null +++ b/azuredevops/README-ado.md @@ -0,0 +1,531 @@ +# AWS HealthCompass - Azure DevOps (ADO) Integration + +**AWS HealthCompass Azure DevOps Integration** is a serverless solution that converts AWS Health planned lifecycle events into actionable work items in Azure DevOps. This solution reduces operational overhead by automating the creation and management of ADO work items for AWS Health planned lifecycle events, ensuring resource owners are notified about relevant changes through configurable routing capabilities. + +## Key Features + +1. **Automated Work Item Management**: Automatically creates Azure DevOps Feature and Child Task work items for AWS Health planned lifecycle events, eliminating manual monitoring and ticket creation while ensuring consistent documentation of infrastructure changes. + +2. **Event-Driven Architecture**: Leverages a serverless, event-driven design that processes events in near real-time with minimal operational overhead, automatically scaling to handle event volume fluctuations. + +3. **Flexible Routing Models**: Supports three deployment models: + - **Account-based routing**: Directs work items based on affected AWS accounts + - **Service-based routing**: Organizes work items by AWS service type (EC2, S3, etc.) + - **Tag-based routing**: Directs work items based on resource tags, enabling team-specific notifications + +4. **Intelligent Work Item Updates**: Updates existing work items when new resources are affected by the same AWS Health event, preventing duplicate items and providing consolidated tracking. Updates are posted as comments on the existing Feature work item. + +5. **Two-Level Work Item Hierarchy**: Creates a parent Feature work item with full event details, and a linked Child Task for the operations team to track effort. Both Feature and Child Task share the same Iteration Path (when configured). The Child Task's Effort field is left empty for the task owner to populate. + +6. **Cross-Organization Visibility**: Aggregates health events across all accounts, providing comprehensive visibility through a single deployment. + +7. **Resilient Message Processing**: Implements dead letter queues with configurable retry policies to handle processing failures, ensuring no events are lost. + +8. **Secure Credential Management**: Uses AWS Secrets Manager to securely store and manage Azure DevOps Personal Access Token (PAT). + +## Architecture + +The solution consists of the following components: + +1. **AWS Health Events**: Supports single account or event aggregation across Organization using AWS Health's organizational view with delegated account feature. + +2. **AWS EventBridge**: Combines AWS default EventBridge and a custom EventBridge bus to efficiently aggregate and route AWS Health planned lifecycle events across an organization. + +3. **AWS Lambda Functions**: + - **HealthEventProcessorLambda**: Processes incoming AWS Health events, categorizes resources, and prepares messages for work item creation or updates + - **HealthEventADOIntegration**: Creates and updates Azure DevOps work items based on processed AWS Health events using the [ADO REST API](https://learn.microsoft.com/en-us/rest/api/azure/devops/wit/work-items). For each event, it creates a parent Feature with full event details and a linked Child Task for operational tracking. + +4. **SQS Queues**: Provides buffering and resilience between Lambda components with Dead Letter Queue (DLQ) implementation for failed message processing. + +5. **AWS Secrets Manager**: Securely stores Azure DevOps PAT. + +6. **DynamoDB Tables**: Maintains the relationship between AWS Health events, affected resources, and their corresponding Azure DevOps work items. A routing table maps AWS identifiers to ADO projects and Area Paths based on the deployment model. + +7. **IAM Roles and Policies**: Provides appropriate permissions for Lambda execution and cross-account access (Tag model only). + +## Prerequisites + +1. **AWS Health Organizational View**: Enable [AWS Health organizational view](https://docs.aws.amazon.com/health/latest/ug/enable-organizational-view.html) and [AWS Health delegated account](https://docs.aws.amazon.com/health/latest/ug/delegated-administrator-organizational-view.html) to aggregate events across your organization. + +2. **Deployment Account**: Deploy the solution in the AWS Health delegated account (referenced as `deployment-account`). + +3. **Azure DevOps Instance**: + - Azure DevOps organization URL (e.g., `https://dev.azure.com/your-organization`) + - Personal Access Token (PAT) with **Work Items: Read & Write** scope (`vso.work_write`) + - Target ADO project name(s) — the project's process template must support **Feature** and **Task** work item types + + > **Note on Work Item Types**: The solution creates a Feature (parent) and Task (child) hierarchy. This requires a process template that supports both types: + > - **Agile**: ✅ Feature, Task + > - **Scrum**: ✅ Feature, Task + > - **CMMI**: ✅ Feature, Task + > - **Basic**: ❌ Does not support Feature + > + > Ensure your ADO project uses Agile, Scrum, or CMMI process template. + +4. **Deployment Region**: Identify preferred regions for solution deployment. You will configure event forwarding from all other AWS Regions to the deployment region for event aggregation. + +5. **S3 Bucket**: S3 bucket for Lambda deployment packages in the deployment account. + +6. **Cross-Account Role** (Tag deployment model only): + - IAM Role name to be used for cross-account access to linked accounts + - Tag key to monitor for routing events + +## Deployment Instructions + +### 1. Prepare Lambda Packages + +```bash +zip -r HealthEventProcessorLambda.zip HealthEventProcessorLambda.py +zip -r HealthEventADOIntegration.zip HealthEventADOIntegration.py +``` + +### 2. Upload to S3 + +1. Login to your `deployment-account` +2. Switch to your preferred deployment region +3. Upload the Lambda zip files to your S3 bucket +4. Ensure CloudFormation has access to this bucket + +### 3. Deploy CloudFormation Template + +1. Open AWS CloudFormation console in your deployment account +2. Select "Create Stack" → "With new resources (standard)" +3. Choose "Upload a template file" → Select `cloudformation.yaml` +4. Click "Next" +5. Provide the following parameters: + +#### Required Parameters + +| Parameter | Description | Example | +|-----------|-------------|---------| +| **Stack name** | Name for your CloudFormation stack | `aws-health-ado-integration` | +| **DeployModel** | Deployment model (Account/Service/Tag) | `Account` | +| **ADOOrganizationUrl** | Azure DevOps organization URL | `https://dev.azure.com/your-organization` | +| **ADOPat** | Azure DevOps Personal Access Token | `your-pat-token` | +| **S3BucketName** | S3 bucket containing Lambda packages | `my-lambda-deployment-bucket` | +| **HealthEventProcessorLambdaKey** | S3 key for processor Lambda | `HealthEventProcessorLambda.zip` | +| **HealthEventADOIntegrationLambdaKey** | S3 key for ADO integration Lambda | `HealthEventADOIntegration.zip` | + +#### Optional Parameters + +| Parameter | Description | Example | +|-----------|-------------|---------| +| **ADOIterationPathPrefix** | Iteration path prefix in ADO. If provided, the solution appends the current month and year automatically (e.g., `March 2026`). If left empty, ADO defaults to the project root iteration. | `VF UK IT Cloud Infrastructure\Sprint` | +| **ADOAreaPath** | Fixed Area Path for all work items. If set, this overrides DynamoDB-based routing for Area Path assignment. If left empty, Area Path is determined by the Account/Service/Tag routing model via DynamoDB mapping. | `VF UK IT Cloud Infrastructure\Operations and Support` | + +#### Conditional Parameters (Tag Model Only) + +| Parameter | Description | Example | +|-----------|-------------|---------| +| **AssumeRoleName** | IAM role name for cross-account access | `HealthEventTagRole` | +| **TagKey** | Tag key to monitor for routing | `Environment` | + +6. Click "Next" → Configure stack options → Click "Next" +7. Review configuration and select "I acknowledge that AWS CloudFormation might create IAM resources" +8. Click "Create stack" + +### 4. Monitor Deployment + +Monitor stack creation progress in the CloudFormation console. Once complete, note the outputs for resource details. + +## Configuration + +### Configure Health Event Aggregation + +Create rules to send AWS Health events from default EventBridge to the custom EventBridge bus: + +1. **Locate Custom Event Bus**: In your deployment account and region, find the custom EventBridge bus from CloudFormation outputs. Note the custom Event bus ARN. + +2. **Create EventBridge Rules** (repeat for each region): + - Go to EventBridge console → Event buses → Select default Event bus → Create rule + - **Name**: `health-event-forwarding-rule` + - **Rule type**: Rule with an event pattern + - **Event source**: AWS events or EventBridge partner events + - **Event pattern**: Use pattern form + - **AWS Service**: Health + - **Event type**: All events + - **Target**: EventBridge event bus → select your custom event bus + - **Execution role**: Create a new role for this specific resource + +3. **Repeat for All Regions**: Create similar rules in all AWS regions to forward events to your deployment region. + +### Area Path Routing + +The solution supports two approaches for assigning the Area Path on work items: + +**Single-Route (Fixed Area Path)**: Set the `ADOAreaPath` CloudFormation parameter to a fixed value (e.g., `VF UK IT Cloud Infrastructure\Operations and Support`). All work items will be created under this Area Path regardless of the deployment model. The DynamoDB routing table is still used for project selection, but Area Path is overridden by this parameter. This is ideal for teams where all AWS Health events are handled by a single operations group. + +**Multi-Route (DynamoDB-based)**: Leave the `ADOAreaPath` parameter empty. The Area Path is then determined by the Account/Service/Tag routing model via the DynamoDB mapping table. This is ideal for organizations where different teams handle different accounts, services, or tagged resources. + +> **Note**: Both approaches can coexist with the three deployment models (Account/Service/Tag). The deployment model always controls which ADO project a work item is routed to. The `ADOAreaPath` parameter only controls whether the Area Path within that project is fixed or dynamically routed. + +### Configure DynamoDB Mapping + +Configure the DynamoDB routing table with mapping information based on your chosen deployment model. The project name is always required. The Area Path column is only used when the `ADOAreaPath` CloudFormation parameter is left empty (multi-route mode). + +1. Locate the DynamoDB table from CloudFormation stack outputs +2. Access the DynamoDB console and select your table +3. Use the PartiQL editor or item creation interface to add mapping entries +4. Always create a `DefaultProjectCode` entry to handle unmapped resources + +#### Account Model + +```sql +-- Default mapping (catches all for unmapped accounts) +INSERT into "AccountADOTable" value { + 'Account': 'DefaultProjectCode', + 'ACADOProjectName': 'MyADOProject', + 'ACADOAreaPath': 'MyADOProject\\Operations' +} + +-- Account-specific mapping +INSERT into "AccountADOTable" value { + 'Account': '123456789012', + 'ACADOProjectName': 'ProductionOps', + 'ACADOAreaPath': 'ProductionOps\\Cloud Infrastructure' +} +``` + +#### Service Model + +```sql +-- Default mapping (catches all for unmapped services) +INSERT into "ServiceADOTable" value { + 'Service': 'DefaultProjectCode', + 'SADOProjectName': 'MyADOProject', + 'SADOAreaPath': 'MyADOProject\\Operations' +} + +-- Service-specific mapping +INSERT into "ServiceADOTable" value { + 'Service': 'EC2', + 'SADOProjectName': 'InfraOps', + 'SADOAreaPath': 'InfraOps\\Compute' +} +``` + +#### Tag Model + +```sql +-- Default mapping (catches all for unmapped tag values) +INSERT into "TagADOTable" value { + 'HostTag': 'DefaultProjectCode', + 'HTADOProjectName': 'MyADOProject', + 'HTADOAreaPath': 'MyADOProject\\Operations' +} + +-- Tag-specific mapping +INSERT into "TagADOTable" value { + 'HostTag': 'production-web', + 'HTADOProjectName': 'WebOps', + 'HTADOAreaPath': 'WebOps\\Production' +} +``` + +> **Note**: Replace table names, project names, and Area Paths with your actual values. The Area Path column in the DynamoDB mapping is only used when the `ADOAreaPath` CloudFormation parameter is left empty (multi-route mode). If `ADOAreaPath` is set, it overrides the DynamoDB Area Path for all work items. + +### Azure DevOps API Details + +The solution interacts with Azure DevOps using the [Work Item Tracking REST API](https://learn.microsoft.com/en-us/rest/api/azure/devops/wit). + +#### Creating Work Items + +The solution creates a two-level work item hierarchy for each health event: a **Feature** (parent) and a **Child Task** linked to it. + +**Step 1: Create the Feature** + +The Feature is created using a `POST` request with a JSON Patch document (`application/json-patch+json`): + +``` +POST https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/$Feature?api-version=7.1 +``` + +Note: The `$` before the type is literal and required by the ADO API. + +Example request body: +```json +[ + { + "op": "add", + "path": "/fields/System.Title", + "value": "Account: 123456789012 - AWS EC2 Planned Maintenance - AWS_EC2_PLANNED_LIFECYCLE_EVENT" + }, + { + "op": "add", + "path": "/fields/System.State", + "value": "New" + }, + { + "op": "add", + "path": "/fields/System.AreaPath", + "value": "MyProject\\Operations and Support" + }, + { + "op": "add", + "path": "/fields/System.IterationPath", + "value": "MyProject\\Sprint March 2026" + }, + { + "op": "add", + "path": "/fields/System.Description", + "value": "

Event Description: Scheduled maintenance for EC2 instances...

Affected Resources:

Resource: arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0
Status: OPEN
Last Updated: 2023-10-15T10:30:00Z

" + } +] +``` + +> **Note**: The `System.Description` field accepts HTML content. The `System.IterationPath` is dynamically constructed from the `ADOIterationPathPrefix` CloudFormation parameter plus the current month and year. If the prefix is not configured, the iteration path field is omitted and ADO uses the project default. + +**Step 2: Create the Child Task** + +After the Feature is created, a Child Task is created and linked to the parent Feature using a parent-child relationship: + +``` +POST https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/$Task?api-version=7.1 +``` + +Example request body: +```json +[ + { + "op": "add", + "path": "/fields/System.Title", + "value": "Task: Account: 123456789012 - AWS EC2 Planned Maintenance - AWS_EC2_PLANNED_LIFECYCLE_EVENT" + }, + { + "op": "add", + "path": "/fields/System.State", + "value": "New" + }, + { + "op": "add", + "path": "/fields/System.AreaPath", + "value": "MyProject\\Operations and Support" + }, + { + "op": "add", + "path": "/fields/System.IterationPath", + "value": "MyProject\\Sprint March 2026" + }, + { + "op": "add", + "path": "/relations/-", + "value": { + "rel": "System.LinkTypes.Hierarchy-Reverse", + "url": "https://dev.azure.com/{organization}/{project}/_apis/wit/workItems/{featureId}" + } + } +] +``` + +> **Note**: The Child Task's `Effort` field is intentionally left empty for the task owner to populate during sprint planning. The `System.LinkTypes.Hierarchy-Reverse` relation links the Task as a child of the Feature. When `ADOIterationPathPrefix` is configured, both Feature and Child Task receive the same dynamically constructed Iteration Path. + +#### Updating Work Items (Adding Comments) + +When new resources are affected by an existing tracked event, the solution adds a comment to the existing Feature work item using the [Comments API](https://learn.microsoft.com/en-us/rest/api/azure/devops/wit/comments/add-comment). The Feature is identified by its integer `id` returned during creation, which is stored in the DynamoDB tracking table as `adoWorkItemId`. + +``` +POST https://dev.azure.com/{organization}/{project}/_apis/wit/workItems/{workItemId}/comments?api-version=7.1-preview.4 +``` + +Example request body: +```json +{ + "text": "Update for resources:

Resource: arn:aws:ec2:us-east-1:123456789012:instance/i-abcdef1234567890
Status: CLOSED
Last Updated: 2023-10-15T14:30:00Z" +} +``` + +> **Note**: The comment `text` field supports HTML formatting. + +#### Work Item Fields Used + +**Feature (Parent):** + +| Field | Path | Description | +|-------|------|-------------| +| **Title** | `/fields/System.Title` | Summary based on deployment model | +| **State** | `/fields/System.State` | Set to "New" on creation | +| **Area Path** | `/fields/System.AreaPath` | Fixed via `ADOAreaPath` parameter, or determined by DynamoDB routing model | +| **Iteration Path** | `/fields/System.IterationPath` | Dynamically set from `ADOIterationPathPrefix` + current month/year | +| **Description** | `/fields/System.Description` | AWS Health event description with affected resource details (HTML) | + +**Child Task:** + +| Field | Path | Description | +|-------|------|-------------| +| **Title** | `/fields/System.Title` | Prefixed with "Task: " followed by the Feature title | +| **State** | `/fields/System.State` | Set to "New" on creation | +| **Area Path** | `/fields/System.AreaPath` | Same as parent Feature | +| **Iteration Path** | `/fields/System.IterationPath` | Same as parent Feature (dynamically set when `ADOIterationPathPrefix` is configured) | +| **Effort** | `/fields/Microsoft.VSTS.Scheduling.Effort` | Left empty — task owner populates during sprint planning | +| **Parent Link** | `/relations/-` | Linked to parent Feature via `System.LinkTypes.Hierarchy-Reverse` | + +#### Title Format by Deployment Model + +| Model | Title Format | +|-------|-------------| +| Account | `Account: 123456789012 - AWS EC2 Planned Maintenance - AWS_EC2_PLANNED_LIFECYCLE_EVENT` | +| Service | `Service: EC2 - AWS EC2 Planned Maintenance - AWS_EC2_PLANNED_LIFECYCLE_EVENT - Service Based` | +| Tag | `Tag: production-web - AWS EC2 Planned Maintenance - AWS_EC2_PLANNED_LIFECYCLE_EVENT - Tag Based` | + +### Create Cross-Account IAM Role (Tag Model Only) + +Create the following role in every linked account: + +**Role Permission Policy:** +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "tag:GetResources", + "tag:GetTagKeys", + "tag:GetTagValues" + ], + "Resource": "*" + }, + { + "Effect": "Allow", + "Action": [ + "s3:GetBucketTagging", + "iam:ListRoleTags", + "iam:ListUserTags", + "route53:ListTagsForResource", + "autoscaling:DescribeTags" + ], + "Resource": "*" + } + ] +} +``` + +**Role Trust Policy:** +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "AWS": "arn:aws:iam:::role/-HealthEventProcessorRole-" + }, + "Action": "sts:AssumeRole" + } + ] +} +``` + +> **Note**: Replace `` and `` with your actual values. The processor role name can be found in CloudFormation outputs. + +## Testing the Solution + +### 1. Verify Deployment + +Check CloudFormation stack outputs for: +- DynamoDB table name +- Lambda function ARNs +- SQS queue URLs +- ADO secret name + +### 2. Test ADO Connectivity + +1. Use the ADO Integration Lambda function test console with a sample event +2. Check CloudWatch Logs for both Lambda functions +3. Verify ADO PAT in Secrets Manager is correct and not expired + +### 3. Simulate Health Events + +Test with sample events from the `test/` directory (if available), or wait for a real AWS scheduled maintenance event. + +### 4. Monitor Processing + +1. **SQS Queues**: Check for messages in processing queues +2. **DLQ**: Monitor dead letter queues for failed messages +3. **CloudWatch Logs**: Review Lambda execution logs +4. **Azure DevOps**: Verify Feature and Child Task work items are created in the correct projects, and that the parent-child link between them is intact + +## Troubleshooting + +### Common Issues + +#### 1. Lambda Function Errors +- Check CloudWatch Logs for error messages +- Verify IAM permissions are correctly configured +- Ensure ADO PAT is valid and has the `vso.work_write` scope +- Validate ADO organization URL is accessible from Lambda + +#### 2. ADO Authentication Failures (HTTP 401/403) +- Verify PAT in Secrets Manager is valid and not expired +- Ensure PAT has **Work Items: Read & Write** scope +- Check that the ADO organization URL is correct (format: `https://dev.azure.com/{organization}`) +- Test PAT manually: + ```bash + curl -u : \ + "https://dev.azure.com//_apis/projects?api-version=7.1" + ``` + +#### 3. Work Item Creation Failures (HTTP 400) +- Verify the project's process template supports Feature and Task work item types (Agile, Scrum, or CMMI) +- Ensure the ADO project name in DynamoDB mapping matches the actual project name exactly (case-sensitive) +- If `ADOIterationPathPrefix` is configured, verify the resulting iteration path (e.g., `MyProject\Sprint March 2026`) exists in the ADO project. Sprints must be created in ADO ahead of time. +- If using multi-route mode, check that the Area Path in the DynamoDB mapping exists in the ADO project +- If using single-route mode, check that the `ADOAreaPath` CloudFormation parameter value exists in the ADO project + +#### 4. Missing Work Items +- Check SQS queues for stuck messages +- Verify EventBridge rules are properly configured +- Review DynamoDB tracking table for event records + +#### 5. Feature Created Without Child Task +- If the Feature was created successfully but the Child Task creation failed, check CloudWatch Logs for errors on the second API call +- Common causes: Area Path or Iteration Path valid for Feature but not for Task in the project's process template +- The Feature will exist in ADO without a child — manually create the Task or reprocess the event after fixing the issue + +#### 6. Cross-Account Tag Discovery Issues (Tag Model) +- Verify IAM roles are correctly set up in all accounts +- Check trust relationships between accounts +- Ensure tag permissions are properly configured +- Test role assumption manually using AWS CLI + +### Debugging Steps + +1. **Check CloudWatch Logs**: + ```bash + aws logs describe-log-groups --log-group-name-prefix "/aws/lambda/your-stack-name" + ``` + +2. **Monitor SQS Queues**: + ```bash + aws sqs get-queue-attributes --queue-url --attribute-names All + ``` + +3. **Verify DynamoDB Records**: + ```bash + aws dynamodb scan --table-name + ``` + +4. **Test ADO API - List Projects**: + ```bash + curl -u : \ + "https://dev.azure.com//_apis/projects?api-version=7.1" + ``` + +5. **Test ADO API - Get Work Item**: + ```bash + curl -u : \ + "https://dev.azure.com///_apis/wit/workitems/?api-version=7.1" + ``` + +## Security Considerations + +- ADO PAT is stored securely in AWS Secrets Manager +- IAM roles follow least privilege principle +- ADO communication occurs over HTTPS +- Consider implementing VPC endpoints for enhanced security +- Regularly rotate ADO Personal Access Tokens (PATs have a maximum lifetime of 1 year) +- Use a dedicated service account for the PAT rather than a personal user account + +## License + +This library is licensed under the MIT-0 License. See the LICENSE file. diff --git a/azuredevops/cloudformation/cloudformation.yaml b/azuredevops/cloudformation/cloudformation.yaml new file mode 100644 index 0000000..0403153 --- /dev/null +++ b/azuredevops/cloudformation/cloudformation.yaml @@ -0,0 +1,585 @@ +AWSTemplateFormatVersion: 2010-09-09 +Description: 'CloudFormation template for AWS Health Event to Azure DevOps Integration' + +Metadata: + AWS::CloudFormation::Interface: + ParameterGroups: + - Label: + default: "Deployment Configuration" + Parameters: + - DeployModel + - AssumeRoleName + - TagKey + - Label: + default: "Azure DevOps Configuration" + Parameters: + - ADOOrganizationUrl + - ADOPat + - ADOAreaPath + - ADOIterationPathPrefix + - Label: + default: "Lambda Code Location" + Parameters: + - S3BucketName + - HealthEventProcessorLambdaKey + - HealthEventADOIntegrationLambdaKey + ParameterLabels: + DeployModel: + default: "Deployment Model" + AssumeRoleName: + default: "Assume Role Name" + TagKey: + default: "Tag Key to Monitor" + ADOOrganizationUrl: + default: "Azure DevOps Organization URL" + ADOPat: + default: "Azure DevOps Personal Access Token" + ADOAreaPath: + default: "Fixed Area Path (Optional)" + ADOIterationPathPrefix: + default: "Iteration Path Prefix (Optional)" + S3BucketName: + default: "S3 Bucket Name" + HealthEventProcessorLambdaKey: + default: "Health Event Processor Lambda S3 Key" + HealthEventADOIntegrationLambdaKey: + default: "ADO Integration Lambda S3 Key" + +Parameters: + DeployModel: + Type: String + AllowedValues: + - Account + - Service + - Tag + Description: Select the deployment model for integration (Account, Service, Tag) + + AssumeRoleName: + Type: String + Description: | + (Required only if DeploymentModel is Tag) + Name of the IAM role to assume in Tag deployment model for cross account resource tag listing + MinLength: 0 + MaxLength: 64 + AllowedPattern: "^$|^[\\w+=,.@-]+$" + ConstraintDescription: Role name must be empty or contain only alphanumeric and [+=,.@-] characters + Default: "" + + TagKey: + Type: String + Description: | + (Required only if DeploymentModel is Tag) + The tag key to monitor for routing Health events (e.g., 'Environment', 'Application', 'Team') + MinLength: 0 + MaxLength: 128 + AllowedPattern: "^$|^[\\w+=,.@-]+$" + ConstraintDescription: Tag key must be empty or contain only alphanumeric and [+=,.@-] characters + Default: "" + + ADOOrganizationUrl: + Type: String + Description: Azure DevOps organization URL (e.g., https://dev.azure.com/your-organization) + + ADOPat: + Type: String + Description: Azure DevOps Personal Access Token with Work Items Read & Write scope + NoEcho: true + + ADOAreaPath: + Type: String + Description: | + (Optional) Fixed Area Path for all work items. If set, overrides DynamoDB-based Area Path routing. + Leave empty to use Account/Service/Tag routing model for Area Path assignment. + Default: "" + + ADOIterationPathPrefix: + Type: String + Description: | + (Optional) Iteration path prefix. If provided, the solution appends current month and year + automatically (e.g., prefix 'MyProject\Sprint' becomes 'MyProject\Sprint March 2026'). + Leave empty to use ADO project default iteration. + Default: "" + + S3BucketName: + Type: String + Description: S3 bucket containing Lambda code + + HealthEventProcessorLambdaKey: + Type: String + Description: S3 key for Health Event Processor Lambda code zip file + + HealthEventADOIntegrationLambdaKey: + Type: String + Description: S3 key for ADO Integration Lambda code zip file + +Rules: + ValidateAssumeRoleName: + RuleCondition: !Equals + - !Ref DeployModel + - 'Tag' + Assertions: + - Assert: !Not [!Equals [!Ref AssumeRoleName, ""]] + AssertDescription: AssumeRoleName is required when DeploymentModel is Tag + - Assert: !Not [!Equals [!Ref TagKey, ""]] + AssertDescription: TagKey is required when DeploymentModel is Tag + +Conditions: + IsAccountModel: !Equals [!Ref DeployModel, 'Account'] + IsServiceModel: !Equals [!Ref DeployModel, 'Service'] + IsTagModel: !Equals [!Ref DeployModel, 'Tag'] + HasAreaPath: !Not [!Equals [!Ref ADOAreaPath, ""]] + HasIterationPrefix: !Not [!Equals [!Ref ADOIterationPathPrefix, ""]] + +Resources: + # DynamoDB Mapping Tables (one per deployment model) + AccountADOTable: + Condition: IsAccountModel + Type: AWS::DynamoDB::Table + Properties: + AttributeDefinitions: + - AttributeName: Account + AttributeType: S + KeySchema: + - AttributeName: Account + KeyType: HASH + BillingMode: PAY_PER_REQUEST + SSESpecification: + SSEEnabled: true + + ServiceADOTable: + Condition: IsServiceModel + Type: AWS::DynamoDB::Table + Properties: + AttributeDefinitions: + - AttributeName: Service + AttributeType: S + KeySchema: + - AttributeName: Service + KeyType: HASH + BillingMode: PAY_PER_REQUEST + SSESpecification: + SSEEnabled: true + + TagADOTable: + Condition: IsTagModel + Type: AWS::DynamoDB::Table + Properties: + AttributeDefinitions: + - AttributeName: HostTag + AttributeType: S + KeySchema: + - AttributeName: HostTag + KeyType: HASH + BillingMode: PAY_PER_REQUEST + SSESpecification: + SSEEnabled: true + + # Event tracking table + TrackEventTable: + Type: AWS::DynamoDB::Table + Properties: + AttributeDefinitions: + - AttributeName: eventArn + AttributeType: S + - AttributeName: resourceArn + AttributeType: S + KeySchema: + - AttributeName: resourceArn + KeyType: HASH + - AttributeName: eventArn + KeyType: RANGE + GlobalSecondaryIndexes: + - IndexName: TETkeyIndex + KeySchema: + - AttributeName: eventArn + KeyType: HASH + Projection: + ProjectionType: ALL + BillingMode: PAY_PER_REQUEST + SSESpecification: + SSEEnabled: true + TimeToLiveSpecification: + AttributeName: expirationTime + Enabled: true + + # ADO PAT in Secrets Manager + ADOSecret: + Type: AWS::SecretsManager::Secret + Properties: + Description: Azure DevOps PAT for AWS Health Event integration + SecretString: !Sub | + { + "pat": "${ADOPat}" + } + + # SQS Queues + HealthEventIngestionDLQ: + Type: AWS::SQS::Queue + Properties: + QueueName: !Sub '${AWS::StackName}-HealthEventIngestion-DLQ' + MessageRetentionPeriod: 1209600 + + HealthEventIngestionQueue: + Type: AWS::SQS::Queue + Properties: + QueueName: !Sub '${AWS::StackName}-HealthEventIngestionQueue' + VisibilityTimeout: 300 + MessageRetentionPeriod: 345600 + RedrivePolicy: + deadLetterTargetArn: !GetAtt HealthEventIngestionDLQ.Arn + maxReceiveCount: 3 + + HealthEventQueue: + Type: AWS::SQS::Queue + Properties: + QueueName: !Sub '${AWS::StackName}-health-event-queue' + VisibilityTimeout: 300 + MessageRetentionPeriod: 345600 + RedrivePolicy: + deadLetterTargetArn: !GetAtt HealthEventDLQ.Arn + maxReceiveCount: 3 + + HealthEventDLQ: + Type: AWS::SQS::Queue + Properties: + QueueName: !Sub '${AWS::StackName}-health-event-dlq' + MessageRetentionPeriod: 1209600 + + # SQS Queue Policy for EventBridge + HealthEventIngestionQueuePolicy: + Type: AWS::SQS::QueuePolicy + Properties: + Queues: + - !Ref HealthEventIngestionQueue + PolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: + Service: events.amazonaws.com + Action: sqs:SendMessage + Resource: !GetAtt HealthEventIngestionQueue.Arn + Condition: + ArnEquals: + aws:SourceArn: !GetAtt HealthEventRule.Arn + + # Health Event Processor Lambda + HealthEventProcessorFunction: + Type: AWS::Lambda::Function + Properties: + FunctionName: !Sub '${AWS::StackName}-health-event-processor' + Runtime: python3.12 + Handler: HealthEventProcessorLambda.lambda_handler + Code: + S3Bucket: !Ref S3BucketName + S3Key: !Ref HealthEventProcessorLambdaKey + Environment: + Variables: + LOG_LEVEL: INFO + SQS_QUEUE_URL: !Ref HealthEventQueue + DYNAMODB_TRACK_TABLE: !Ref TrackEventTable + ADO_DYNAMODB_TABLE: !If + - IsAccountModel + - !Ref AccountADOTable + - !If + - IsServiceModel + - !Ref ServiceADOTable + - !Ref TagADOTable + DEPLOY_MODEL: !Ref DeployModel + ASSUME_ROLE_NAME: !If + - IsTagModel + - !Ref AssumeRoleName + - !Ref "AWS::NoValue" + TAG_KEY: !If + - IsTagModel + - !Ref TagKey + - !Ref "AWS::NoValue" + MemorySize: 256 + Timeout: 240 + Role: !GetAtt HealthEventProcessorRole.Arn + + # Event Source Mapping for Health Event Processor + HealthEventProcessorEventSource: + Type: AWS::Lambda::EventSourceMapping + Properties: + BatchSize: 1 + Enabled: true + EventSourceArn: !GetAtt HealthEventIngestionQueue.Arn + FunctionName: !Ref HealthEventProcessorFunction + MaximumBatchingWindowInSeconds: 60 + + # ADO Integration Lambda + ADOIntegrationFunction: + Type: AWS::Lambda::Function + Properties: + FunctionName: !Sub '${AWS::StackName}-health-event-ado-integration' + Runtime: python3.12 + Handler: HealthEventADOIntegration.lambda_handler + Code: + S3Bucket: !Ref S3BucketName + S3Key: !Ref HealthEventADOIntegrationLambdaKey + Environment: + Variables: + LOG_LEVEL: INFO + DYNAMODB_TRACK_TABLE: !Ref TrackEventTable + ADO_DYNAMODB_TABLE: !If + - IsAccountModel + - !Ref AccountADOTable + - !If + - IsServiceModel + - !Ref ServiceADOTable + - !Ref TagADOTable + ADO_SECRET_NAME: !Ref ADOSecret + ADO_ORG_URL: !Ref ADOOrganizationUrl + DEPLOY_MODEL: !Ref DeployModel + ADO_AREA_PATH: !If + - HasAreaPath + - !Ref ADOAreaPath + - !Ref "AWS::NoValue" + ADO_ITERATION_PATH_PREFIX: !If + - HasIterationPrefix + - !Ref ADOIterationPathPrefix + - !Ref "AWS::NoValue" + MemorySize: 256 + Timeout: 240 + Role: !GetAtt ADOIntegrationRole.Arn + + # Event Source Mapping for ADO Integration Lambda + ADOIntegrationEventMapping: + Type: AWS::Lambda::EventSourceMapping + Properties: + BatchSize: 1 + Enabled: true + EventSourceArn: !GetAtt HealthEventQueue.Arn + FunctionName: !Ref ADOIntegrationFunction + MaximumBatchingWindowInSeconds: 60 + + # IAM Roles + HealthEventProcessorRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: + Service: lambda.amazonaws.com + Action: sts:AssumeRole + ManagedPolicyArns: + - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole + Policies: + - PolicyName: SQSAccess + PolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Action: + - sqs:ReceiveMessage + - sqs:DeleteMessage + - sqs:GetQueueAttributes + Resource: !GetAtt HealthEventIngestionQueue.Arn + - PolicyName: HealthEventProcessorPolicy + PolicyDocument: + Version: '2012-10-17' + Statement: + - Sid: AWSHealthAccess + Effect: Allow + Action: + - health:DescribeEvents + - health:DescribeEventDetails + - health:DescribeAffectedEntities + Resource: !Sub "arn:aws:health:${AWS::Region}::*" + - !If + - IsTagModel + - Sid: CrossAccountAssumeRole + Effect: Allow + Action: + - sts:AssumeRole + Resource: !Sub 'arn:aws:iam::*:role/${AssumeRoleName}' + - !Ref AWS::NoValue + - Sid: TagAccess + Effect: Allow + Action: + - tag:GetResources + - tag:GetTagKeys + - tag:GetTagValues + Resource: '*' + - Sid: SQSAccess + Effect: Allow + Action: + - sqs:SendMessage + Resource: !GetAtt HealthEventQueue.Arn + - Sid: DynamoDBAccess + Effect: Allow + Action: + - dynamodb:GetItem + - dynamodb:Query + - dynamodb:Scan + - dynamodb:PutItem + - dynamodb:UpdateItem + - dynamodb:DeleteItem + - dynamodb:DescribeTable + Resource: + - !GetAtt TrackEventTable.Arn + - !Sub '${TrackEventTable.Arn}/index/*' + - !If + - IsAccountModel + - !GetAtt AccountADOTable.Arn + - !If + - IsServiceModel + - !GetAtt ServiceADOTable.Arn + - !GetAtt TagADOTable.Arn + Tags: + - Key: Name + Value: !Sub '${AWS::StackName}-processor-role' + + ADOIntegrationRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: + Service: lambda.amazonaws.com + Action: sts:AssumeRole + ManagedPolicyArns: + - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole + Policies: + - PolicyName: ADOIntegrationPolicy + PolicyDocument: + Version: '2012-10-17' + Statement: + - Sid: SQSAccess + Effect: Allow + Action: + - sqs:ReceiveMessage + - sqs:DeleteMessage + - sqs:GetQueueAttributes + Resource: !GetAtt HealthEventQueue.Arn + - Sid: SecretsManagerAccess + Effect: Allow + Action: + - secretsmanager:GetSecretValue + Resource: + - !Ref ADOSecret + - !Sub 'arn:aws:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:${ADOSecret}*' + - Sid: DynamoDBAccess + Effect: Allow + Action: + - dynamodb:GetItem + - dynamodb:Query + - dynamodb:Scan + - dynamodb:PutItem + - dynamodb:UpdateItem + - dynamodb:DeleteItem + - dynamodb:DescribeTable + Resource: + - !GetAtt TrackEventTable.Arn + - !Sub '${TrackEventTable.Arn}/index/*' + - !If + - IsAccountModel + - !GetAtt AccountADOTable.Arn + - !If + - IsServiceModel + - !GetAtt ServiceADOTable.Arn + - !GetAtt TagADOTable.Arn + Tags: + - Key: Name + Value: !Sub '${AWS::StackName}-ado-integration-role' + + # Custom Event Bus + HealthEventBus: + Type: AWS::Events::EventBus + Properties: + Name: !Sub '${AWS::StackName}-custom-health-event-bus' + + # EventBridge Rule + HealthEventRule: + Type: AWS::Events::Rule + Properties: + Name: !Sub '${AWS::StackName}-health-event-rule' + Description: 'Capture AWS Health scheduled change events' + EventBusName: !Ref HealthEventBus + EventPattern: + source: + - aws.health + detail-type: + - AWS Health Event + detail: + eventTypeCategory: + - scheduledChange + eventTypeCode: + - { "suffix": { "equals-ignore-case": "_PLANNED_LIFECYCLE_EVENT" }} + State: ENABLED + Targets: + - Arn: !GetAtt HealthEventIngestionQueue.Arn + Id: HealthEventIngestionQueue + + # Lambda Permission for EventBridge + EventBridgePermission: + Type: AWS::Lambda::Permission + Properties: + Action: lambda:InvokeFunction + FunctionName: !Ref HealthEventProcessorFunction + Principal: events.amazonaws.com + SourceArn: !GetAtt HealthEventRule.Arn + +Outputs: + DeployModel: + Description: Selected deployment model for ADO Integration + Value: !Ref DeployModel + + DynamoDBTrackTable: + Description: Name of the DynamoDB table used for event tracking + Value: !Ref TrackEventTable + + DynamoDBMappingTable: + Description: Name of the DynamoDB mapping table for routing + Value: !If + - IsAccountModel + - !Ref AccountADOTable + - !If + - IsServiceModel + - !Ref ServiceADOTable + - !Ref TagADOTable + + EventBridgeRuleName: + Description: Name of the EventBridge rule + Value: !Ref HealthEventRule + + ADOSecretName: + Description: Name of the ADO Secret in Secrets Manager + Value: !Ref ADOSecret + + HealthEventQueueURL: + Description: URL of the SQS queue for health events + Value: !Ref HealthEventQueue + + HealthEventIngestionQueueURL: + Description: URL of the SQS queue for health event ingestion + Value: !Ref HealthEventIngestionQueue + + HealthEventQueueARN: + Description: ARN of the SQS queue for health events + Value: !GetAtt HealthEventQueue.Arn + + HealthEventDLQURL: + Description: URL of the Dead Letter Queue + Value: !Ref HealthEventDLQ + + HealthEventProcessorFunctionArn: + Description: ARN of the Health Event Processor Lambda function + Value: !GetAtt HealthEventProcessorFunction.Arn + + HealthEventProcessorRoleArn: + Description: ARN of the Health Event Processor IAM Role (needed for Tag model cross-account setup) + Value: !GetAtt HealthEventProcessorRole.Arn + + ADOIntegrationFunctionArn: + Description: ARN of the ADO Integration Lambda function + Value: !GetAtt ADOIntegrationFunction.Arn + + CustomEventBusArn: + Description: ARN of the custom EventBridge event bus + Value: !GetAtt HealthEventBus.Arn diff --git a/azuredevops/code/HealthEventADOIntegration.py b/azuredevops/code/HealthEventADOIntegration.py new file mode 100644 index 0000000..23d57ab --- /dev/null +++ b/azuredevops/code/HealthEventADOIntegration.py @@ -0,0 +1,455 @@ +""" +AWS Health Compass - Azure DevOps Integration Lambda +Creates and updates Azure DevOps work items (Feature + Child Task) based on +processed AWS Health events. +""" + +import json +import os +import logging +import sys +import base64 +import urllib3 +import boto3 +from datetime import datetime +from botocore.exceptions import ClientError + +# Configure logging +logger = logging.getLogger('ado_lambda') +logger.setLevel(logging.INFO) +console_handler = logging.StreamHandler(sys.stdout) +console_handler.setLevel(logging.INFO) +formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') +console_handler.setFormatter(formatter) +logger.addHandler(console_handler) + +http = urllib3.PoolManager() + +ado_org_url = os.environ.get('ADO_ORG_URL') +if not ado_org_url: + raise ValueError("ADO_ORG_URL environment variable is not set") +# Strip trailing slash +ado_org_url = ado_org_url.rstrip('/') + +ado_area_path = os.environ.get('ADO_AREA_PATH', '') +ado_iteration_prefix = os.environ.get('ADO_ITERATION_PATH_PREFIX', '') + +# Setup boto3 session +session = boto3.session.Session() + +# Setup DynamoDB tracking table +track_table_name = os.environ.get('DYNAMODB_TRACK_TABLE') +if not track_table_name: + raise ValueError("DYNAMODB_TRACK_TABLE environment variable is not set") + +dynamodb = boto3.resource('dynamodb') +track_table = dynamodb.Table(track_table_name) +logger.info(f"DynamoDB tracking table status: {track_table.table_status}") + + +def get_secret(): + """Retrieve ADO PAT from Secrets Manager""" + secret_name = os.environ.get('ADO_SECRET_NAME') + if not secret_name: + raise ValueError("ADO_SECRET_NAME environment variable is not set") + + region_name = os.environ.get('AWS_REGION', 'us-east-1') + client = session.client(service_name='secretsmanager', region_name=region_name) + + try: + response = client.get_secret_value(SecretId=secret_name) + except ClientError as e: + raise e + + secret = json.loads(response['SecretString']) + return secret + + +def get_ado_headers(pat): + """Build HTTP headers for ADO REST API using PAT authentication""" + credentials = base64.b64encode(f":{pat}".encode()).decode() + return { + 'Content-Type': 'application/json-patch+json', + 'Authorization': f'Basic {credentials}' + } + + +def get_ado_headers_json(pat): + """Build HTTP headers for ADO REST API with standard JSON content type (for comments)""" + credentials = base64.b64encode(f":{pat}".encode()).decode() + return { + 'Content-Type': 'application/json', + 'Authorization': f'Basic {credentials}' + } + + +def get_iteration_path(): + """Build iteration path from prefix + current month/year""" + if ado_iteration_prefix: + return f"{ado_iteration_prefix} {datetime.now().strftime('%B %Y')}" + return None + + +def check_tracking_table(event_arn, resource_arn): + """Check if a resource is already being tracked for a specific event""" + try: + response = track_table.get_item( + Key={ + 'resourceArn': resource_arn, + 'eventArn': event_arn + } + ) + if 'Item' in response: + logger.info(f"Found tracking for resource {resource_arn} in event {event_arn}") + return response['Item'] + logger.info(f"No tracking found for resource {resource_arn} in event {event_arn}") + return None + except ClientError as e: + logger.error(f"Error querying tracking table: {e.response['Error']['Message']}") + return None + + +def find_existing_workitem_for_event(event_arn, identifier): + """Find an existing ADO work item ID for an event and identifier""" + try: + response = track_table.query( + IndexName='TETkeyIndex', + KeyConditionExpression='eventArn = :event_arn', + ExpressionAttributeValues={ + ':event_arn': event_arn + } + ) + + for item in response.get('Items', []): + if 'adoWorkItemId' in item: + work_item_id = int(item['adoWorkItemId']) + logger.info(f"Found existing work item {work_item_id} for event {event_arn}") + return work_item_id, item.get('adoProject', '') + + logger.info(f"No existing work item found for event {event_arn}") + return None, None + + except ClientError as e: + logger.error(f"Error querying tracking table for existing work item: {e.response['Error']['Message']}") + return None, None + + +def store_event_tracking(event_arn, start_time, work_item_id, resource_arn, project=None): + """Store event tracking information in DynamoDB""" + from dateutil.relativedelta import relativedelta + + try: + if isinstance(start_time, str): + try: + start_time_format = datetime.strptime(start_time, "%a, %d %b %Y %H:%M:%S %Z") + except ValueError: + try: + start_time_format = datetime.strptime(start_time, "%Y-%m-%dT%H:%M:%S.%fZ") + except ValueError: + start_time_format = datetime.now() + else: + start_time_format = datetime.now() + + expiration_time = int((start_time_format + relativedelta(years=2)).timestamp()) + + item = { + 'eventArn': event_arn, + 'resourceArn': resource_arn, + 'adoWorkItemId': int(work_item_id), + 'expirationTime': expiration_time + } + + if project: + item['adoProject'] = project + + track_table.put_item(Item=item) + logger.info(f"Successfully stored event tracking for resource: {resource_arn} with work item ID: {work_item_id}") + return True + + except Exception as e: + logger.error(f"Error storing event tracking: {str(e)}") + return False + + +def get_resource_arn(resource): + """Extract resource ARN from the resource object""" + if isinstance(resource.get('arn'), dict) and 'resource_arn' in resource['arn']: + return resource['arn']['resource_arn'] + return resource.get('arn') + + +def build_feature_payload(event_body, identifier, resources, area_path): + """Build JSON Patch document for creating a Feature work item""" + eventTypeCode = event_body['detail']['eventTypeCode'] + service = event_body['detail']['service'] + deployModel = event_body['deployModel'] + + # Build title based on deploy model + if deployModel == 'Account': + title = f"Account: {identifier} - AWS {service} Planned Maintenance - {eventTypeCode}" + elif deployModel == 'Tag': + title = f"Tag: {identifier} - AWS {service} Planned Maintenance - {eventTypeCode} - Tag Based" + elif deployModel == 'Service': + title = f"Service: {identifier} - AWS {service} Planned Maintenance - {eventTypeCode} - Service Based" + else: + title = f"AWS Planned Maintenance - {eventTypeCode}" + + # Build HTML description + event_description = event_body['detail']['eventDescription'] + description = f"

Event Description:

{event_description}

" + description += "

Affected Resources:

" + + for resource in resources: + resource_arn = get_resource_arn(resource) + if resource_arn: + status = resource.get('status', 'UNKNOWN') + last_updated = resource.get('last_updated_time', 'UNKNOWN') + description += ( + f"

Resource: {resource_arn}
" + f"Status: {status}
" + f"Last Updated: {last_updated}

" + ) + + # Build JSON Patch document + patch = [ + {"op": "add", "path": "/fields/System.Title", "value": title}, + {"op": "add", "path": "/fields/System.State", "value": "New"}, + {"op": "add", "path": "/fields/System.Description", "value": description} + ] + + if area_path: + patch.append({"op": "add", "path": "/fields/System.AreaPath", "value": area_path}) + + iteration_path = get_iteration_path() + if iteration_path: + patch.append({"op": "add", "path": "/fields/System.IterationPath", "value": iteration_path}) + + return patch, title + + +def build_child_task_payload(feature_title, feature_id, feature_url, area_path): + """Build JSON Patch document for creating a Child Task linked to a Feature""" + patch = [ + {"op": "add", "path": "/fields/System.Title", "value": f"Task: {feature_title}"}, + {"op": "add", "path": "/fields/System.State", "value": "New"}, + { + "op": "add", + "path": "/relations/-", + "value": { + "rel": "System.LinkTypes.Hierarchy-Reverse", + "url": feature_url + } + } + ] + + if area_path: + patch.append({"op": "add", "path": "/fields/System.AreaPath", "value": area_path}) + + iteration_path = get_iteration_path() + if iteration_path: + patch.append({"op": "add", "path": "/fields/System.IterationPath", "value": iteration_path}) + + return patch + + +def build_comment_payload(resources): + """Build comment payload for updating an existing Feature""" + text = "Update for resources:

" + for resource in resources: + resource_arn = get_resource_arn(resource) + if resource_arn: + status = resource.get('status', 'UNKNOWN') + last_updated = resource.get('last_updated_time', 'UNKNOWN') + text += ( + f"Resource: {resource_arn}
" + f"Status: {status}
" + f"Last Updated: {last_updated}

" + ) + return {"text": text} + + +def create_work_item(project, work_item_type, patch, headers): + """Create a work item in ADO""" + url = f"{ado_org_url}/{project}/_apis/wit/workitems/${work_item_type}?api-version=7.1" + logger.info(f"Creating {work_item_type} in project {project}") + + response = http.request('POST', url, headers=headers, body=json.dumps(patch)) + + if response.status in [200, 201]: + data = json.loads(response.data) + logger.info(f"Successfully created {work_item_type} with ID: {data['id']}") + return data + else: + logger.error(f"Failed to create {work_item_type}. Status: {response.status}, Response: {response.data.decode()}") + return None + + +def add_comment(project, work_item_id, payload, headers): + """Add a comment to an existing work item""" + url = f"{ado_org_url}/{project}/_apis/wit/workItems/{work_item_id}/comments?api-version=7.1-preview.4" + logger.info(f"Adding comment to work item {work_item_id} in project {project}") + + response = http.request('POST', url, headers=headers, body=json.dumps(payload)) + + if response.status == 200: + data = json.loads(response.data) + logger.info(f"Successfully added comment to work item {work_item_id}") + return data + else: + logger.error(f"Failed to add comment to work item {work_item_id}. Status: {response.status}, Response: {response.data.decode()}") + return None + + +def get_project_and_area_path(event_body, identifier): + """Look up ADO project name and area path from DynamoDB mapping table""" + deploy_model = event_body['deployModel'] + mapping_table_name = os.environ.get('ADO_DYNAMODB_TABLE') + if not mapping_table_name: + raise ValueError("ADO_DYNAMODB_TABLE environment variable is not set") + + mapping_table = dynamodb.Table(mapping_table_name) + + # Model-specific key/attribute names + config = { + 'Account': {'key': 'Account', 'project_attr': 'ACADOProjectName', 'area_attr': 'ACADOAreaPath'}, + 'Service': {'key': 'Service', 'project_attr': 'SADOProjectName', 'area_attr': 'SADOAreaPath'}, + 'Tag': {'key': 'HostTag', 'project_attr': 'HTADOProjectName', 'area_attr': 'HTADOAreaPath'} + } + + model_config = config.get(deploy_model) + if not model_config: + raise ValueError(f"Invalid deploy model: {deploy_model}") + + # Look up identifier, fall back to DefaultProjectCode + for lookup_key in [identifier, 'DefaultProjectCode']: + try: + response = mapping_table.get_item(Key={model_config['key']: lookup_key}) + if 'Item' in response: + item = response['Item'] + project = item.get(model_config['project_attr']) + # Use fixed ADOAreaPath if set, otherwise use DynamoDB value + area_path = ado_area_path if ado_area_path else item.get(model_config['area_attr'], '') + logger.info(f"Found mapping for {lookup_key}: project={project}, area_path={area_path}") + return project, area_path + except ClientError as e: + logger.error(f"Error looking up mapping for {lookup_key}: {e.response['Error']['Message']}") + + logger.error(f"No mapping found for identifier {identifier} or DefaultProjectCode") + return None, None + + +def lambda_handler(event, context): + """Main Lambda handler""" + + # Parse SQS message + event_body = json.loads(event['Records'][0]['body']) + + eventArn = event_body['detail']['eventArn'] + deployModel = event_body['deployModel'] + startTime = event_body['detail'].get('startTime', '') + + logger.info(f"Processing event: {eventArn} with deploy model: {deployModel}") + + # Get ADO PAT from Secrets Manager + ado_secret = get_secret() + pat = ado_secret.get('pat', ado_secret.get('PAT', '')) + if not pat: + raise ValueError("PAT not found in secret") + + headers_patch = get_ado_headers(pat) + headers_json = get_ado_headers_json(pat) + + # Process untracked resources (new work items) + untracked_resources = event_body.get('untrackedResources', {}) + if untracked_resources is None or untracked_resources == []: + untracked_resources = {} + elif not isinstance(untracked_resources, dict): + logger.warning(f"untrackedResources is not a dictionary: {type(untracked_resources)}. Converting to empty dict.") + untracked_resources = {} + + for identifier, resources in untracked_resources.items(): + logger.info(f"Processing resources for {deployModel} {identifier} with {len(resources)} resources") + + # Look up project and area path + project, area_path = get_project_and_area_path(event_body, identifier) + if not project: + logger.error(f"No project mapping found for identifier {identifier}, skipping") + continue + + # Check if we already have a Feature for this event + existing_work_item_id, existing_project = find_existing_workitem_for_event(eventArn, identifier) + + if existing_work_item_id: + logger.info(f"Found existing Feature {existing_work_item_id} for event {eventArn}") + + # Add comment to existing Feature + comment_payload = build_comment_payload(resources) + add_comment(existing_project or project, existing_work_item_id, comment_payload, headers_json) + + # Track all resources + for resource in resources: + resource_arn = get_resource_arn(resource) + if resource_arn: + store_event_tracking(eventArn, startTime, existing_work_item_id, resource_arn, project) + else: + logger.info(f"No existing Feature found for event {eventArn}, creating new Feature + Child Task") + + # Step 1: Create Feature + feature_patch, feature_title = build_feature_payload(event_body, identifier, resources, area_path) + feature_data = create_work_item(project, 'Feature', feature_patch, headers_patch) + + if feature_data: + feature_id = feature_data['id'] + feature_url = feature_data['url'] + + logger.info(f"Successfully created Feature {feature_id} in project {project}") + + # Step 2: Create Child Task + task_patch = build_child_task_payload(feature_title, feature_id, feature_url, area_path) + task_data = create_work_item(project, 'Task', task_patch, headers_patch) + + if task_data: + logger.info(f"Successfully created Child Task {task_data['id']} linked to Feature {feature_id}") + else: + logger.error(f"Failed to create Child Task for Feature {feature_id}") + + # Track all resources against the Feature + for resource in resources: + resource_arn = get_resource_arn(resource) + if resource_arn: + store_event_tracking(eventArn, startTime, feature_id, resource_arn, project) + else: + logger.warning(f"Could not extract resource ARN from resource: {resource}") + + # Process tracked resources (updates to existing Features) + logger.info(f"Processing tracked resources for {deployModel} mode") + + tracked_resources = event_body.get('trackedResources', []) + if tracked_resources: + # Group resources by adoWorkItemId + work_item_groups = {} + for resource in tracked_resources: + resource_arn = resource.get('arn') + if not resource_arn: + logger.warning(f"Resource missing arn: {resource}") + continue + + tracking_info = check_tracking_table(eventArn, resource_arn) + if tracking_info and 'adoWorkItemId' in tracking_info: + wi_id = int(tracking_info['adoWorkItemId']) + wi_project = tracking_info.get('adoProject', '') + key = (wi_id, wi_project) + if key not in work_item_groups: + work_item_groups[key] = [] + work_item_groups[key].append(resource) + else: + logger.warning(f"No tracking info found for resource: {resource_arn}") + + # Add comments to each Feature + for (wi_id, wi_project), resources in work_item_groups.items(): + logger.info(f"Updating Feature {wi_id} with {len(resources)} resources") + comment_payload = build_comment_payload(resources) + add_comment(wi_project, wi_id, comment_payload, headers_json) + + +logger.info('Lambda function initialized') diff --git a/azuredevops/code/HealthEventProcessorLambda.py b/azuredevops/code/HealthEventProcessorLambda.py new file mode 100644 index 0000000..4578e22 --- /dev/null +++ b/azuredevops/code/HealthEventProcessorLambda.py @@ -0,0 +1,531 @@ +""" +AWS Health Compass - Health Event Processor Lambda for Azure DevOps Integration +Processes incoming AWS Health events, categorizes resources, and prepares messages +for work item creation or updates in Azure DevOps. +""" + +import json +import logging +import os +from typing import Dict, Any, List, Tuple +from datetime import datetime +import boto3 + + +# Setup Logger +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +deploy_model = os.environ.get('DEPLOY_MODEL') +tag_key = os.environ.get('TAG_KEY') +if not deploy_model: + raise ValueError("DEPLOY_MODEL environment variable is not set") +if deploy_model == 'Tag' and not tag_key: + raise ValueError("TAG_KEY environment variable is not set") + +class ResourceProcessor: + def __init__(self): + """Initialize with configuration based on deployment model""" + self.dynamodb = boto3.client('dynamodb') + self.table_name = os.environ.get('ADO_DYNAMODB_TABLE') + self.deploy_model = os.environ.get('DEPLOY_MODEL') + self.sqs = boto3.client('sqs') + self.queue_url = os.environ.get('SQS_QUEUE_URL') + self.organizations = boto3.client('organizations') + + if not self.table_name: + raise ValueError("ADO_DYNAMODB_TABLE environment variable is not set") + if not self.deploy_model: + raise ValueError("DEPLOY_MODEL environment variable is not set") + if not self.queue_url: + raise ValueError("SQS_QUEUE_URL environment variable is not set") + + # Model-specific configurations + self.config = { + 'Account': { + 'primary_key': 'Account', + 'project_key': 'ACADOProjectName', + 'area_path_key': 'ACADOAreaPath', + 'index_name': 'ACkeyIndex' + }, + 'Service': { + 'primary_key': 'Service', + 'project_key': 'SADOProjectName', + 'area_path_key': 'SADOAreaPath', + 'index_name': 'SkeyIndex' + }, + 'Tag': { + 'primary_key': 'HostTag', + 'project_key': 'HTADOProjectName', + 'area_path_key': 'HTADOAreaPath', + 'index_name': 'HTkeyIndex' + } + } + + if self.deploy_model not in self.config: + raise ValueError(f"Invalid deploy model: {self.deploy_model}") + + self.model_config = self.config[self.deploy_model] + + def send_to_queue(self, payload: Dict[str, Any]) -> Dict[str, Any]: + """Send message to SQS queue""" + try: + response = self.sqs.send_message( + QueueUrl=self.queue_url, + MessageBody=json.dumps(payload) + ) + logger.info(f"Message sent to queue: {response['MessageId']}") + logger.info(f"{json.dumps(payload)}") + return response + except Exception as e: + logger.error(f"Error sending message to queue: {str(e)}") + raise + + def prepare_queue_message(self, event: Dict[str, Any], + tracked_resources: Dict[str, List[Dict]], + untracked_resources: Dict[str, List[Dict]]) -> Dict[str, Any]: + """Prepare a single message containing both tracked and untracked resources""" + event_details = event['detail'] + + return { + 'timestamp': datetime.utcnow().isoformat(), + 'detail': { + 'eventTypeCode': event_details['eventTypeCode'], + 'eventDescription': event_details['eventDescription'][0]['latestDescription'], + 'startTime': event_details.get('startTime'), + 'endTime': event_details.get('endTime'), + 'eventArn': event_details['eventArn'], + 'service': event_details['service'], + 'eventRegion': event_details['eventRegion'], + 'account': event_details['affectedAccount'], + 'eventTypeCategory': event_details['eventTypeCategory'], + 'id': event['id'], + 'time': event['time'], + 'region': event['region'] + }, + 'deployModel': self.deploy_model, + 'trackedResources': tracked_resources, + 'untrackedResources': untracked_resources + } + + +def get_tags_using_resource_groups(resource_arn: str, region: str, target_account: str) -> str: + """Get tags using Resource Groups Tagging API with cross-account support""" + try: + sts = boto3.client('sts') + current_account = sts.get_caller_identity()['Account'] + logger.info(f"get_tags_using_resource_groups {resource_arn} in account {target_account}") + + if current_account == target_account: + logger.info("get_tags_using_resource_groups same account processing") + resourcetagging = boto3.client('resourcegroupstaggingapi', region_name=region) + else: + assume_role_name = os.environ.get('ASSUME_ROLE_NAME') + if not assume_role_name: + raise ValueError("ASSUME_ROLE_NAME environment variable not set") + logger.info(f"get_tags_using_resource_groups cross-account processing {target_account}") + role_arn = f"arn:aws:iam::{target_account}:role/{assume_role_name}" + + assumed_role = sts.assume_role( + RoleArn=role_arn, + RoleSessionName="AssumeRoleSession" + ) + + resourcetagging = boto3.client( + 'resourcegroupstaggingapi', + region_name=region, + aws_access_key_id=assumed_role['Credentials']['AccessKeyId'], + aws_secret_access_key=assumed_role['Credentials']['SecretAccessKey'], + aws_session_token=assumed_role['Credentials']['SessionToken'] + ) + logger.info(f"get_tags_using_resource_groups Successfully assumed role {assume_role_name}") + + response = resourcetagging.get_resources( + ResourceARNList=[resource_arn] + ) + + if response['ResourceTagMappingList']: + tags = response['ResourceTagMappingList'][0].get('Tags', []) + for tag in tags: + if tag['Key'] == tag_key: + return tag['Value'] + + return 'HOST_TAG_NOT_AVAILABLE' + + except Exception as e: + logger.error(f"Error getting {tag_key} tag using Resource Groups: {str(e)}") + return 'HOST_TAG_NOT_AVAILABLE' + + +def needs_special_handling(service: str) -> bool: + """Check if service needs special handling for tag retrieval""" + special_handling_services = { + 's3': True, + 'iam': True, + 'route53': True, + 'cloudfront': True, + 'autoscaling': True + } + return special_handling_services.get(service, False) + + +def get_tags_special_handling(resource_arn: str, region: str, target_account: str, service_name: str) -> str: + """Handle tag retrieval for services with special requirements""" + try: + sts = boto3.client('sts') + current_account = sts.get_caller_identity()['Account'] + logger.info(f"Special handling for Service {service_name}: Processing resource {resource_arn} in account {target_account}") + + if current_account == target_account: + logger.info(f"Special handling {service_name}: Processing using same account") + tagapi = boto3.client(service_name) + + if service_name == 's3': + bucket_name = resource_arn.split(':')[-1].split('/')[-1] + logger.info(f"Special handling for Service {service_name}: Processing {bucket_name}") + if '/' in resource_arn.split(':')[-1]: + logger.warning("S3 object tagging not supported") + return 'HOST_TAG_NOT_AVAILABLE' + response = tagapi.get_bucket_tagging(Bucket=bucket_name) + elif service_name == 'autoscaling': + asg_name = resource_arn.split(':')[-1].split('/')[-1] + logger.info(f"Extracted ASG name: {asg_name}") + response = tagapi.describe_tags( + Filters=[{'Name': 'auto-scaling-group', 'Values': [asg_name]}] + ) + else: + logger.warning(f"Special handling for {service_name} not implemented") + return 'HOST_TAG_NOT_AVAILABLE' + else: + assume_role_name = os.environ.get('ASSUME_ROLE_NAME') + if not assume_role_name: + logger.error("ASSUME_ROLE_NAME environment variable not set") + return 'HOST_TAG_NOT_AVAILABLE' + logger.info(f"Special handling: Using cross-account access to target {target_account} from {current_account}") + role_arn = f"arn:aws:iam::{target_account}:role/{assume_role_name}" + + assumed_role = sts.assume_role( + RoleArn=role_arn, + RoleSessionName="AssumeRoleSession" + ) + session = boto3.client( + service_name, + region_name=region, + aws_access_key_id=assumed_role['Credentials']['AccessKeyId'], + aws_secret_access_key=assumed_role['Credentials']['SecretAccessKey'], + aws_session_token=assumed_role['Credentials']['SessionToken'] + ) + logger.info(f"Successfully assumed role {assume_role_name}") + if service_name == 's3': + bucket_name = resource_arn.split(':')[-1].split('/')[-1] + logger.info(f"Special handling for Service {service_name}: Processing {bucket_name}") + if '/' in resource_arn.split(':')[-1]: + logger.warning("S3 object tagging not supported") + return 'HOST_TAG_NOT_AVAILABLE' + response = session.get_bucket_tagging(Bucket=bucket_name) + elif service_name == 'autoscaling': + asg_name = resource_arn.split(':')[-1].split('/')[-1] + logger.info(f"Extracted ASG name: {asg_name}") + response = session.describe_tags( + Filters=[{'Name': 'auto-scaling-group', 'Values': [asg_name]}] + ) + else: + logger.warning(f"Special handling for {service_name} not implemented") + return 'HOST_TAG_NOT_AVAILABLE' + + if service_name in ['s3', 'cloudfront']: + for tag in response.get('TagSet', []): + if tag['Key'] == tag_key: + logger.info(f"Found {tag_key} tag with value: {tag['Value']}") + return tag['Value'] + else: + for tag in response.get('Tags', []): + logger.info(f"Special handling for {service_name}: Found tag: {tag}") + if tag['Key'] == tag_key: + logger.info(f"Found Host tag with value: {tag['Value']}") + return tag['Value'] + return 'HOST_TAG_NOT_AVAILABLE' + except Exception as e: + logger.error(f"Error in special handling for {service_name}: {str(e)}") + return 'HOST_TAG_NOT_AVAILABLE' + + +def get_entity_details(resource_arn: str, event: Dict[str, Any]) -> Dict[str, Any]: + """Get entity details from event for a specific resource ARN""" + affected_entities = event.get('detail', {}).get('affectedEntities', []) + logger.info("get_entity_details: Looking up affected entities") + for entity in affected_entities: + if entity.get('entityValue') == resource_arn: + return { + 'entity_value': entity.get('entityValue'), + 'status': entity.get('status'), + 'last_updated_time': entity.get('lastUpdatedTime') + } + logger.warning(f"No entity details found for resource ARN: {resource_arn}") + return {} + + +def get_host_tag_for_resource(resource_arn: str, affected_account: str, region: str) -> str: + """Get tag for a resource with fallback for unsupported services""" + try: + arn_parts = resource_arn.split(':') + service_name = arn_parts[2].lower() + arn_region = arn_parts[3] + region = arn_region if arn_region else region + arn_account = arn_parts[4] + target_account = arn_account if arn_account else affected_account + logger.info(f"get_host_tag_for_resource {resource_arn}, Service {service_name}, region {region} target account {target_account}") + + if needs_special_handling(service_name): + return get_tags_special_handling(resource_arn, region, target_account, service_name) + + return get_tags_using_resource_groups(resource_arn, region, target_account) + + except Exception as e: + logger.error(f"Error getting {tag_key} tag: {str(e)}") + return 'HOST_TAG_NOT_AVAILABLE' + + +def get_resources_by_identifier(untracked_resources: List[Dict[str, Any]], event: Dict[str, Any]) -> Dict[str, List[Dict[str, Any]]]: + """Groups resources by their identifier based on deployment model""" + resources_by_identifier = {} + + try: + service = event['detail']['service'] + region = event['detail']['eventRegion'] + affected_account = event['detail'].get('affectedAccount') + main_account = event.get('account') + + logger.info(f"get_resources_by_identifier: Deployment model {deploy_model} service {service} region {region} affected_account {affected_account} main_account {main_account}") + + for resource_item in untracked_resources: + try: + resource_arn = resource_item.get('arn') + if not resource_arn: + logger.warning(f"Resource item missing resource_arn field: {resource_item}") + continue + + if deploy_model == 'Account': + identifier = affected_account or main_account + elif deploy_model == 'Service': + identifier = event['detail']['service'] + elif deploy_model == 'Tag': + identifier = get_host_tag_for_resource(resource_arn, affected_account, region) + + if identifier not in resources_by_identifier: + resources_by_identifier[identifier] = [] + + resources_by_identifier[identifier].append({ + 'arn': resource_arn, + 'status': resource_item.get('status'), + 'last_updated_time': resource_item.get('last_updated_time') + }) + + except Exception as e: + logger.error(f"Error processing resource {resource_item}: {e}") + if 'HOST_TAG_NOT_AVAILABLE' not in resources_by_identifier: + resources_by_identifier['HOST_TAG_NOT_AVAILABLE'] = [] + resources_by_identifier['HOST_TAG_NOT_AVAILABLE'].append({ + 'arn': resource_item.get('resource_arn', 'unknown'), + 'status': resource_item.get('status', 'unknown'), + 'last_updated_time': resource_item.get('last_updated_time', 'unknown'), + 'host_tag': 'HOST_TAG_NOT_AVAILABLE' + }) + logger.info(f"resources_by_identifier: {resources_by_identifier}") + return resources_by_identifier + + except KeyError as e: + logger.error(f"Missing required field in event: {e}") + raise ValueError(f"Invalid event structure: missing {e}") from e + except Exception as e: + logger.error(f"Error processing event: {e}") + raise + + +def check_existing_event(event_arn: str, resource_arn: str) -> list: + """Check if event ARN exists in DynamoDB and return ticket details""" + try: + logger.info(f"check_existing_event: Checking tracking for event_arn: {event_arn} and resource_arn: {resource_arn}") + dynamodb = boto3.resource('dynamodb') + table_name = os.environ.get('DYNAMODB_TRACK_TABLE') + table = dynamodb.Table(table_name) + + # Direct lookup using primary key + try: + response = table.get_item( + Key={ + 'resourceArn': resource_arn, + 'eventArn': event_arn + } + ) + if 'Item' in response: + logger.info(f"check_existing_event: Found existing tracking via direct lookup: {response['Item']}") + return [response['Item']] + except Exception as e: + logger.warning(f"Direct lookup failed: {str(e)}") + + # Fallback to GSI + response = table.query( + IndexName='TETkeyIndex', + KeyConditionExpression='eventArn = :event_arn', + FilterExpression='resourceArn = :resource_arn', + ExpressionAttributeValues={ + ':event_arn': event_arn, + ':resource_arn': resource_arn + } + ) + + items = response.get('Items', []) + if items: + logger.info(f"check_existing_event: Found existing tracking via GSI: {items}") + else: + logger.info("check_existing_event: No existing tracking found via GSI, trying scan") + scan_response = table.scan( + FilterExpression='eventArn = :event_arn AND resourceArn = :resource_arn', + ExpressionAttributeValues={ + ':event_arn': event_arn, + ':resource_arn': resource_arn + } + ) + scan_items = scan_response.get('Items', []) + if scan_items: + logger.info(f"check_existing_event: Found existing tracking via scan: {scan_items}") + return scan_items + else: + logger.info("check_existing_event: No existing tracking found via any method") + + return items + + except Exception as e: + logger.error(f"Error checking existing event: {str(e)}") + return [] + + +def generate_resource_arn(service, region, resource_id, affected_account): + """Generate AWS resource ARN based on service type and resource ID""" + logger.info(f"generate_resource_arn: Generating ARN for service: {service}, resource_id: {resource_id}") + + if 'arn:' in resource_id: + return resource_id + + try: + if service == 'EC2': + return f"arn:aws:ec2:{region}:{affected_account}:instance/{resource_id}" + if service == 'S3': + return f"arn:aws:s3:::{resource_id}" + if service == 'EBS': + if ':' in resource_id: + resource_id = resource_id.split(':')[-1] + return f"arn:aws:ec2:{region}:{affected_account}:volume/{resource_id}" + + logger.warning(f"Unsupported service type: {service}") + return resource_id + + except Exception as e: + logger.error(f"Error generating ARN: {str(e)}") + raise + + +def group_resources_by_tracking_status(event: Dict[str, Any]) -> Tuple[List[Dict[str, str]], List[str]]: + """Groups resources into tracked and untracked based on DynamoDB records""" + try: + logger.info("group_resources_by_tracking_status: Checking for event tracking and creating list of existing vs new") + + detail = event.get('detail', {}) + event_arn = detail.get('eventArn') + service = detail.get('service') + region = detail.get('eventRegion') + affected_account = detail.get('affectedAccount') + + tracked_resources: List[Dict[str, str]] = [] + untracked_resources: List[str] = [] + + resource_list = [] + for entity in event.get('detail', {}).get('affectedEntities', []): + if entity.get('entityValue'): + resource_list.append(entity.get('entityValue')) + + logger.info(f"Processing {len(resource_list)} resources from event {event_arn}") + + for resource_id in resource_list: + resource_arn = generate_resource_arn( + service=service, + region=region, + resource_id=resource_id, + affected_account=affected_account + ) + + entity_info = get_entity_details(resource_arn, event) + + existing_tracking = check_existing_event( + event_arn=event_arn, + resource_arn=resource_arn + ) + + if existing_tracking: + logger.info(f"Resource {resource_arn} is already tracked with ticket info: {existing_tracking}") + resource_info = { + 'arn': entity_info.get('entity_value'), + 'status': entity_info.get('status'), + 'last_updated_time': entity_info.get('last_updated_time') + } + for tracking_item in existing_tracking: + if 'adoWorkItemId' in tracking_item: + resource_info['ticket_id'] = int(tracking_item['adoWorkItemId']) + tracked_resources.append(resource_info) + else: + logger.info(f"Resource {resource_arn} is not tracked yet") + untracked_resources.append({ + 'arn': entity_info.get('entity_value'), + 'status': entity_info.get('status'), + 'last_updated_time': entity_info.get('last_updated_time') + }) + + logger.info(f"Found {len(tracked_resources)} tracked and {len(untracked_resources)} untracked resources") + return tracked_resources, untracked_resources + + except Exception as e: + logger.error(f"Error grouping resources: {str(e)}") + raise + + +def lambda_handler(event: Dict[str, Any], context: Any) -> Dict[str, Any]: + """Main Lambda handler""" + try: + logger.info(f"Received SQS event:{json.dumps(event)}") + event_body = json.loads(event['Records'][0]['body']) + + untracked_resources_by_identifier = {} + + tracked_resources, untracked_resources = group_resources_by_tracking_status(event_body) + + logger.info(f"main:TrackedResources:{tracked_resources}") + logger.info(f"main:UntrackedResources:{untracked_resources}") + + if untracked_resources: + logger.info(f"main:Processing {len(untracked_resources)} untracked resources") + untracked_resources_by_identifier = get_resources_by_identifier(untracked_resources, event_body) + + logger.info(f"main:UntrackedResourcesByIdentifier:{untracked_resources_by_identifier}") + processor = ResourceProcessor() + message = processor.prepare_queue_message( + event_body, + tracked_resources, + untracked_resources_by_identifier + ) + + response = processor.send_to_queue(message) + + return { + 'statusCode': 200, + 'body': json.dumps({ + 'message': 'Successfully processed event and sent to queue', + 'messageId': response['MessageId'], + 'trackedResourcesCount': len(tracked_resources), + 'untrackedResourcesCount': len(untracked_resources) + }) + } + + except Exception as e: + logger.error(f"Error processing event: {str(e)}") + raise From 7dc4a5b2b93175e6d844e786bfc1f45c915a5af9 Mon Sep 17 00:00:00 2001 From: chethazn Date: Mon, 23 Mar 2026 22:46:33 +0000 Subject: [PATCH 02/10] Add deployment and testing guide for ADO integration --- azuredevops/TESTING.md | 213 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 azuredevops/TESTING.md diff --git a/azuredevops/TESTING.md b/azuredevops/TESTING.md new file mode 100644 index 0000000..1c96162 --- /dev/null +++ b/azuredevops/TESTING.md @@ -0,0 +1,213 @@ +# Deployment & Testing Guide — Azure DevOps Integration + +This guide walks you through deploying and testing the AWS HealthCompass Azure DevOps integration in your environment. + +## Prerequisites Checklist + +Before you begin, confirm you have: + +- [ ] AWS account with [AWS Health organizational view](https://docs.aws.amazon.com/health/latest/ug/enable-organizational-view.html) and [delegated account](https://docs.aws.amazon.com/health/latest/ug/delegated-administrator-organizational-view.html) enabled +- [ ] Azure DevOps organization with a project using Agile, Scrum, or CMMI process template +- [ ] Azure DevOps PAT with **Work Items: Read & Write** scope (`vso.work_write`) +- [ ] S3 bucket in the deployment account for Lambda packages +- [ ] AWS CLI configured with appropriate permissions +- [ ] (Tag model only) IAM role name for cross-account tag discovery + +## Step 1: Prepare Lambda Deployment Packages + +```bash +cd azuredevops/code + +# Create zip packages +zip HealthEventProcessorLambda.zip HealthEventProcessorLambda.py +zip HealthEventADOIntegration.zip HealthEventADOIntegration.py +``` + +## Step 2: Upload to S3 + +```bash +aws s3 cp HealthEventProcessorLambda.zip s3:/// +aws s3 cp HealthEventADOIntegration.zip s3:/// +``` + +## Step 3: Deploy CloudFormation Stack + +```bash +aws cloudformation create-stack \ + --stack-name aws-health-ado-integration \ + --template-body file://azuredevops/cloudformation/cloudformation.yaml \ + --capabilities CAPABILITY_IAM \ + --parameters \ + ParameterKey=DeployModel,ParameterValue=Account \ + ParameterKey=ADOOrganizationUrl,ParameterValue=https://dev.azure.com/ \ + ParameterKey=ADOPat,ParameterValue= \ + ParameterKey=S3BucketName,ParameterValue= \ + ParameterKey=HealthEventProcessorLambdaKey,ParameterValue=HealthEventProcessorLambda.zip \ + ParameterKey=HealthEventADOIntegrationLambdaKey,ParameterValue=HealthEventADOIntegration.zip +``` + +**Optional parameters** — append as needed: +``` + ParameterKey=ADOAreaPath,ParameterValue= \ + ParameterKey=ADOIterationPathPrefix,ParameterValue= +``` + +**Tag model** — append these: +``` + ParameterKey=AssumeRoleName,ParameterValue= \ + ParameterKey=TagKey,ParameterValue= +``` + +Monitor deployment: +```bash +aws cloudformation describe-stacks --stack-name aws-health-ado-integration --query 'Stacks[0].StackStatus' +``` + +## Step 4: Note Stack Outputs + +```bash +aws cloudformation describe-stacks \ + --stack-name aws-health-ado-integration \ + --query 'Stacks[0].Outputs' \ + --output table +``` + +Note down: +- `DynamoDBTrackTable` — tracking table name +- `DynamoDBMappingTable` — mapping table name (for DynamoDB configuration) +- `CustomEventBusArn` — needed for EventBridge forwarding rules +- `HealthEventProcessorRoleArn` — needed for Tag model cross-account setup + +## Step 5: Configure DynamoDB Mapping Table + +Using the `DynamoDBMappingTable` name from the stack outputs, add your routing entries. + +**Account model example:** +```bash +aws dynamodb put-item \ + --table-name \ + --item '{ + "Account": {"S": "DefaultProjectCode"}, + "ACADOProjectName": {"S": ""}, + "ACADOAreaPath": {"S": "\\"} + }' +``` + +> **Note**: Always create a `DefaultProjectCode` entry. See [README-ado.md](README-ado.md#configure-dynamodb-mapping) for Service and Tag model examples. + +## Step 6: Configure EventBridge Forwarding + +Follow the instructions in [README-ado.md — Configure Health Event Aggregation](README-ado.md#configure-health-event-aggregation) to create EventBridge rules that forward AWS Health events from each region to the custom event bus. + +## Testing + +### Test 1: Validate Stack Resources + +Verify all resources were created: +```bash +# Check Lambda functions +aws lambda get-function --function-name aws-health-ado-integration-health-event-processor +aws lambda get-function --function-name aws-health-ado-integration-health-event-ado-integration + +# Check SQS queues +aws sqs get-queue-url --queue-name aws-health-ado-integration-HealthEventIngestionQueue +aws sqs get-queue-url --queue-name aws-health-ado-integration-health-event-queue + +# Check DynamoDB tables +aws dynamodb describe-table --table-name +aws dynamodb describe-table --table-name + +# Check Secrets Manager +aws secretsmanager describe-secret --secret-id +``` + +### Test 2: Test ADO Connectivity + +Verify your PAT works against your ADO instance: +```bash +curl -s -o /dev/null -w "%{http_code}" \ + -u : \ + "https://dev.azure.com//_apis/projects?api-version=7.1" +``` + +Expected: `200` + +### Test 3: End-to-End Test with Sample Event + +Invoke the Processor Lambda with a sample health event. Create a file `test-event.json`: + +```json +{ + "Records": [ + { + "body": "{\"id\":\"test-event-001\",\"time\":\"2026-03-23T10:00:00Z\",\"region\":\"us-east-1\",\"detail\":{\"eventArn\":\"arn:aws:health:us-east-1::event/EC2/AWS_EC2_PLANNED_LIFECYCLE_EVENT/test001\",\"service\":\"EC2\",\"eventTypeCode\":\"AWS_EC2_PLANNED_LIFECYCLE_EVENT\",\"eventTypeCategory\":\"scheduledChange\",\"eventRegion\":\"us-east-1\",\"startTime\":\"2026-04-01T00:00:00Z\",\"endTime\":\"2026-04-02T00:00:00Z\",\"eventDescription\":[{\"latestDescription\":\"Test: Amazon EC2 has detected degradation of the underlying hardware hosting your EC2 instance.\"}],\"affectedAccount\":\"123456789012\",\"affectedEntities\":[{\"entityValue\":\"arn:aws:ec2:us-east-1:123456789012:instance/i-0123456789abcdef0\",\"status\":\"UPCOMING\",\"lastUpdatedTime\":\"2026-03-23T10:00:00Z\"}]}}" + } + ] +} +``` + +Invoke the Processor Lambda: +```bash +aws lambda invoke \ + --function-name aws-health-ado-integration-health-event-processor \ + --payload file://test-event.json \ + --cli-binary-format raw-in-base64-out \ + response.json + +cat response.json +``` + +Expected: `statusCode: 200` with `untrackedResourcesCount: 1` + +### Test 4: Verify ADO Work Items + +After the test event processes through both Lambdas: + +1. Check CloudWatch Logs for both Lambda functions: + ```bash + aws logs tail /aws/lambda/aws-health-ado-integration-health-event-processor --since 5m + aws logs tail /aws/lambda/aws-health-ado-integration-health-event-ado-integration --since 5m + ``` + +2. Verify in Azure DevOps: + - A **Feature** work item should be created with the health event details + - A **Child Task** should be linked to the Feature + - Both should have the correct Area Path and Iteration Path (if configured) + - The Child Task's Effort field should be empty + +3. Check DynamoDB tracking table: + ```bash + aws dynamodb scan --table-name + ``` + You should see an entry with `adoWorkItemId` matching the Feature ID in ADO. + +### Test 5: Test Update Flow + +Run the same test event again (Test 3). This time: +- No new Feature should be created +- A **comment** should be added to the existing Feature +- CloudWatch Logs should show "Found existing Feature" message + +### Troubleshooting + +If tests fail, check in this order: + +1. **CloudWatch Logs** — Look for error messages in both Lambda log groups +2. **SQS DLQ** — Check if messages landed in the dead letter queues: + ```bash + aws sqs get-queue-attributes \ + --queue-url $(aws sqs get-queue-url --queue-name aws-health-ado-integration-health-event-dlq --query QueueUrl --output text) \ + --attribute-names ApproximateNumberOfMessages + ``` +3. **DynamoDB mapping** — Verify your mapping table has the correct entries for the identifier in your test event +4. **ADO PAT** — Verify the PAT hasn't expired and has the correct scope +5. **Area Path / Iteration Path** — Verify these exist in your ADO project + +## Cleanup + +To remove all resources: +```bash +aws cloudformation delete-stack --stack-name aws-health-ado-integration +``` + +> **Note**: The DynamoDB tables have deletion protection disabled by default. If you enabled it manually, you'll need to disable it before stack deletion. From 681d0c84fa3969cb6625e6c96ec7c9018dbcc3ec Mon Sep 17 00:00:00 2001 From: chethazn Date: Mon, 23 Mar 2026 22:56:04 +0000 Subject: [PATCH 03/10] Add Priority P3 to Feature creation and deployment testing guide --- azuredevops/code/HealthEventADOIntegration.py | 1 + 1 file changed, 1 insertion(+) diff --git a/azuredevops/code/HealthEventADOIntegration.py b/azuredevops/code/HealthEventADOIntegration.py index 23d57ab..3d587b0 100644 --- a/azuredevops/code/HealthEventADOIntegration.py +++ b/azuredevops/code/HealthEventADOIntegration.py @@ -214,6 +214,7 @@ def build_feature_payload(event_body, identifier, resources, area_path): patch = [ {"op": "add", "path": "/fields/System.Title", "value": title}, {"op": "add", "path": "/fields/System.State", "value": "New"}, + {"op": "add", "path": "/fields/Microsoft.VSTS.Common.Priority", "value": 3}, {"op": "add", "path": "/fields/System.Description", "value": description} ] From 5107e8f5c274dd68f94d7a5c981a865121ccbc63 Mon Sep 17 00:00:00 2001 From: chethazn Date: Thu, 9 Apr 2026 11:43:43 +0100 Subject: [PATCH 04/10] feat: bi-weekly sprint naming and auto-activate on Health event updates --- azuredevops/README-ado.md | 41 ++++++++++++---- azuredevops/TESTING.md | 4 +- .../cloudformation/cloudformation.yaml | 23 ++++++++- azuredevops/code/HealthEventADOIntegration.py | 48 +++++++++++++++++-- 4 files changed, 101 insertions(+), 15 deletions(-) diff --git a/azuredevops/README-ado.md b/azuredevops/README-ado.md index c47e9e8..5f92df2 100644 --- a/azuredevops/README-ado.md +++ b/azuredevops/README-ado.md @@ -13,7 +13,7 @@ - **Service-based routing**: Organizes work items by AWS service type (EC2, S3, etc.) - **Tag-based routing**: Directs work items based on resource tags, enabling team-specific notifications -4. **Intelligent Work Item Updates**: Updates existing work items when new resources are affected by the same AWS Health event, preventing duplicate items and providing consolidated tracking. Updates are posted as comments on the existing Feature work item. +4. **Intelligent Work Item Updates**: Updates existing work items when new resources are affected by the same AWS Health event, preventing duplicate items and providing consolidated tracking. Updates are posted as comments on the existing Feature work item. Optionally, when `EnableAutoActivate` is enabled, the Feature status is set to "Active" and reassigned to the current sprint iteration. 5. **Two-Level Work Item Hierarchy**: Creates a parent Feature work item with full event details, and a linked Child Task for the operations team to track effort. Both Feature and Child Task share the same Iteration Path (when configured). The Child Task's Effort field is left empty for the task owner to populate. @@ -110,8 +110,9 @@ zip -r HealthEventADOIntegration.zip HealthEventADOIntegration.py | Parameter | Description | Example | |-----------|-------------|---------| -| **ADOIterationPathPrefix** | Iteration path prefix in ADO. If provided, the solution appends the current month and year automatically (e.g., `March 2026`). If left empty, ADO defaults to the project root iteration. | `VF UK IT Cloud Infrastructure\Sprint` | +| **ADOIterationPathPrefix** | Iteration path prefix in ADO. The solution appends a bi-weekly sprint identifier automatically using the format `Sprint N Mon FY YY-YY` (e.g., `Sprint 1 Apr FY 26-27` for the first half of April in financial year 2026-27). If left empty, ADO defaults to the project root iteration. | `VF UK IT Cloud Infrastructure` | | **ADOAreaPath** | Fixed Area Path for all work items. If set, this overrides DynamoDB-based routing for Area Path assignment. If left empty, Area Path is determined by the Account/Service/Tag routing model via DynamoDB mapping. | `VF UK IT Cloud Infrastructure\Operations and Support` | +| **EnableAutoActivate** | When set to `true`, subsequent Health notifications for already-tracked events will update the Feature status to "Active" and reassign it to the current sprint iteration. Default: `false`. | `true` | #### Conditional Parameters (Tag Model Only) @@ -263,7 +264,7 @@ Example request body: { "op": "add", "path": "/fields/System.IterationPath", - "value": "MyProject\\Sprint March 2026" + "value": "MyProject\\Sprint 1 Apr FY 26-27" }, { "op": "add", @@ -273,7 +274,7 @@ Example request body: ] ``` -> **Note**: The `System.Description` field accepts HTML content. The `System.IterationPath` is dynamically constructed from the `ADOIterationPathPrefix` CloudFormation parameter plus the current month and year. If the prefix is not configured, the iteration path field is omitted and ADO uses the project default. +> **Note**: The `System.Description` field accepts HTML content. The `System.IterationPath` is dynamically constructed from the `ADOIterationPathPrefix` CloudFormation parameter using a bi-weekly sprint naming convention (`Sprint N Mon FY YY-YY`). If the prefix is not configured, the iteration path field is omitted and ADO uses the project default. **Step 2: Create the Child Task** @@ -304,7 +305,7 @@ Example request body: { "op": "add", "path": "/fields/System.IterationPath", - "value": "MyProject\\Sprint March 2026" + "value": "MyProject\\Sprint 1 Apr FY 26-27" }, { "op": "add", @@ -323,6 +324,30 @@ Example request body: When new resources are affected by an existing tracked event, the solution adds a comment to the existing Feature work item using the [Comments API](https://learn.microsoft.com/en-us/rest/api/azure/devops/wit/comments/add-comment). The Feature is identified by its integer `id` returned during creation, which is stored in the DynamoDB tracking table as `adoWorkItemId`. +If `EnableAutoActivate` is set to `true`, the solution also updates the Feature's state to "Active" and reassigns it to the current sprint iteration (based on the configured `ADOIterationPathPrefix`). This is done via a `PATCH` request to the Work Items API: + +``` +PATCH https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/{workItemId}?api-version=7.1 +``` + +Example request body: +```json +[ + { + "op": "replace", + "path": "/fields/System.State", + "value": "Active" + }, + { + "op": "replace", + "path": "/fields/System.IterationPath", + "value": "MyProject\\Sprint 1 Apr FY 26-27" + } +] +``` + +The comment is added using: + ``` POST https://dev.azure.com/{organization}/{project}/_apis/wit/workItems/{workItemId}/comments?api-version=7.1-preview.4 ``` @@ -343,9 +368,9 @@ Example request body: | Field | Path | Description | |-------|------|-------------| | **Title** | `/fields/System.Title` | Summary based on deployment model | -| **State** | `/fields/System.State` | Set to "New" on creation | +| **State** | `/fields/System.State` | Set to "New" on creation. Updated to "Active" on subsequent notifications if `EnableAutoActivate` is `true`. | | **Area Path** | `/fields/System.AreaPath` | Fixed via `ADOAreaPath` parameter, or determined by DynamoDB routing model | -| **Iteration Path** | `/fields/System.IterationPath` | Dynamically set from `ADOIterationPathPrefix` + current month/year | +| **Iteration Path** | `/fields/System.IterationPath` | Dynamically set from `ADOIterationPathPrefix` + bi-weekly sprint identifier (`Sprint N Mon FY YY-YY`). Updated to current sprint on subsequent notifications if `EnableAutoActivate` is `true`. | | **Description** | `/fields/System.Description` | AWS Health event description with affected resource details (HTML) | **Child Task:** @@ -468,7 +493,7 @@ Test with sample events from the `test/` directory (if available), or wait for a #### 3. Work Item Creation Failures (HTTP 400) - Verify the project's process template supports Feature and Task work item types (Agile, Scrum, or CMMI) - Ensure the ADO project name in DynamoDB mapping matches the actual project name exactly (case-sensitive) -- If `ADOIterationPathPrefix` is configured, verify the resulting iteration path (e.g., `MyProject\Sprint March 2026`) exists in the ADO project. Sprints must be created in ADO ahead of time. +- If `ADOIterationPathPrefix` is configured, verify the resulting iteration path (e.g., `MyProject\Sprint 1 Apr FY 26-27`) exists in the ADO project. Sprints must be created in ADO ahead of time. - If using multi-route mode, check that the Area Path in the DynamoDB mapping exists in the ADO project - If using single-route mode, check that the `ADOAreaPath` CloudFormation parameter value exists in the ADO project diff --git a/azuredevops/TESTING.md b/azuredevops/TESTING.md index 1c96162..f2fe578 100644 --- a/azuredevops/TESTING.md +++ b/azuredevops/TESTING.md @@ -49,7 +49,8 @@ aws cloudformation create-stack \ **Optional parameters** — append as needed: ``` ParameterKey=ADOAreaPath,ParameterValue= \ - ParameterKey=ADOIterationPathPrefix,ParameterValue= + ParameterKey=ADOIterationPathPrefix,ParameterValue= \ + ParameterKey=EnableAutoActivate,ParameterValue=true ``` **Tag model** — append these: @@ -187,6 +188,7 @@ Run the same test event again (Test 3). This time: - No new Feature should be created - A **comment** should be added to the existing Feature - CloudWatch Logs should show "Found existing Feature" message +- If `EnableAutoActivate` is `true`, the Feature status should change to "Active" and the Iteration Path should update to the current sprint ### Troubleshooting diff --git a/azuredevops/cloudformation/cloudformation.yaml b/azuredevops/cloudformation/cloudformation.yaml index 0403153..4aab9f1 100644 --- a/azuredevops/cloudformation/cloudformation.yaml +++ b/azuredevops/cloudformation/cloudformation.yaml @@ -17,6 +17,7 @@ Metadata: - ADOPat - ADOAreaPath - ADOIterationPathPrefix + - EnableAutoActivate - Label: default: "Lambda Code Location" Parameters: @@ -38,6 +39,8 @@ Metadata: default: "Fixed Area Path (Optional)" ADOIterationPathPrefix: default: "Iteration Path Prefix (Optional)" + EnableAutoActivate: + default: "Auto-Activate Feature on Update (Optional)" S3BucketName: default: "S3 Bucket Name" HealthEventProcessorLambdaKey: @@ -95,10 +98,21 @@ Parameters: ADOIterationPathPrefix: Type: String Description: | - (Optional) Iteration path prefix. If provided, the solution appends current month and year - automatically (e.g., prefix 'MyProject\Sprint' becomes 'MyProject\Sprint March 2026'). + (Optional) Iteration path prefix. If provided, the solution appends a bi-weekly sprint + identifier automatically (e.g., prefix 'VF UK IT Cloud Infrastructure' becomes + 'VF UK IT Cloud Infrastructure\Sprint 1 Apr FY 26-27'). Leave empty to use ADO project default iteration. Default: "" + + EnableAutoActivate: + Type: String + AllowedValues: + - "true" + - "false" + Default: "false" + Description: | + (Optional) When enabled, subsequent Health notifications for already-tracked events + will set the Feature status to Active and update the Iteration Path to the current sprint. S3BucketName: Type: String @@ -129,6 +143,7 @@ Conditions: IsTagModel: !Equals [!Ref DeployModel, 'Tag'] HasAreaPath: !Not [!Equals [!Ref ADOAreaPath, ""]] HasIterationPrefix: !Not [!Equals [!Ref ADOIterationPathPrefix, ""]] + IsAutoActivateEnabled: !Equals [!Ref EnableAutoActivate, "true"] Resources: # DynamoDB Mapping Tables (one per deployment model) @@ -340,6 +355,10 @@ Resources: - HasIterationPrefix - !Ref ADOIterationPathPrefix - !Ref "AWS::NoValue" + ENABLE_AUTO_ACTIVATE: !If + - IsAutoActivateEnabled + - "true" + - !Ref "AWS::NoValue" MemorySize: 256 Timeout: 240 Role: !GetAtt ADOIntegrationRole.Arn diff --git a/azuredevops/code/HealthEventADOIntegration.py b/azuredevops/code/HealthEventADOIntegration.py index 3d587b0..10cd696 100644 --- a/azuredevops/code/HealthEventADOIntegration.py +++ b/azuredevops/code/HealthEventADOIntegration.py @@ -33,6 +33,7 @@ ado_area_path = os.environ.get('ADO_AREA_PATH', '') ado_iteration_prefix = os.environ.get('ADO_ITERATION_PATH_PREFIX', '') +enable_auto_activate = os.environ.get('ENABLE_AUTO_ACTIVATE', 'false').lower() == 'true' # Setup boto3 session session = boto3.session.Session() @@ -84,10 +85,19 @@ def get_ado_headers_json(pat): def get_iteration_path(): - """Build iteration path from prefix + current month/year""" - if ado_iteration_prefix: - return f"{ado_iteration_prefix} {datetime.now().strftime('%B %Y')}" - return None + """Build iteration path from prefix + bi-weekly sprint naming. + Format: \\Sprint N Mon FY YY-YY + where N=1 (day 1-15) or N=2 (day 16+), Mon=abbreviated month, + FY=financial year starting April (e.g., FY 26-27). + """ + if not ado_iteration_prefix: + return None + now = datetime.now() + sprint = 1 if now.day <= 15 else 2 + month_abbr = now.strftime('%b') + fy_start = now.year if now.month >= 4 else now.year - 1 + fy_end = fy_start + 1 + return f"{ado_iteration_prefix}\\Sprint {sprint} {month_abbr} FY {fy_start % 100}-{fy_end % 100}" def check_tracking_table(event_arn, resource_arn): @@ -301,6 +311,28 @@ def add_comment(project, work_item_id, payload, headers): return None +def activate_work_item(project, work_item_id, headers): + """Update a work item's state to Active and set current iteration path""" + patch = [ + {"op": "replace", "path": "/fields/System.State", "value": "Active"} + ] + iteration_path = get_iteration_path() + if iteration_path: + patch.append({"op": "replace", "path": "/fields/System.IterationPath", "value": iteration_path}) + + url = f"{ado_org_url}/{project}/_apis/wit/workitems/{work_item_id}?api-version=7.1" + logger.info(f"Activating work item {work_item_id} in project {project}") + + response = http.request('PATCH', url, headers=headers, body=json.dumps(patch)) + + if response.status == 200: + logger.info(f"Successfully activated work item {work_item_id}") + return json.loads(response.data) + else: + logger.error(f"Failed to activate work item {work_item_id}. Status: {response.status}, Response: {response.data.decode()}") + return None + + def get_project_and_area_path(event_body, identifier): """Look up ADO project name and area path from DynamoDB mapping table""" deploy_model = event_body['deployModel'] @@ -387,6 +419,10 @@ def lambda_handler(event, context): comment_payload = build_comment_payload(resources) add_comment(existing_project or project, existing_work_item_id, comment_payload, headers_json) + # Auto-activate if enabled + if enable_auto_activate: + activate_work_item(existing_project or project, existing_work_item_id, headers_patch) + # Track all resources for resource in resources: resource_arn = get_resource_arn(resource) @@ -452,5 +488,9 @@ def lambda_handler(event, context): comment_payload = build_comment_payload(resources) add_comment(wi_project, wi_id, comment_payload, headers_json) + # Auto-activate if enabled + if enable_auto_activate: + activate_work_item(wi_project, wi_id, headers_patch) + logger.info('Lambda function initialized') From bb1e895904d5fa752564568897a5833b75b541df Mon Sep 17 00:00:00 2001 From: chethazn Date: Thu, 23 Apr 2026 16:04:12 +0100 Subject: [PATCH 05/10] feat: add support for ADO custom required fields on Feature work items - Add ADOCustomFields CloudFormation parameter (optional, JSON-encoded) - Parse ADO_CUSTOM_FIELDS env var in ADO Integration Lambda and append custom fields to Feature work item patch - Update README-ado.md: optional params table, Feature creation example, troubleshooting section - Update TESTING.md: optional params block, troubleshooting checklist --- azuredevops/README-ado.md | 10 +++++++++- azuredevops/TESTING.md | 4 +++- .../cloudformation/cloudformation.yaml | 19 +++++++++++++++++++ azuredevops/code/HealthEventADOIntegration.py | 14 ++++++++++++++ 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/azuredevops/README-ado.md b/azuredevops/README-ado.md index 5f92df2..e1fdd6f 100644 --- a/azuredevops/README-ado.md +++ b/azuredevops/README-ado.md @@ -113,6 +113,7 @@ zip -r HealthEventADOIntegration.zip HealthEventADOIntegration.py | **ADOIterationPathPrefix** | Iteration path prefix in ADO. The solution appends a bi-weekly sprint identifier automatically using the format `Sprint N Mon FY YY-YY` (e.g., `Sprint 1 Apr FY 26-27` for the first half of April in financial year 2026-27). If left empty, ADO defaults to the project root iteration. | `VF UK IT Cloud Infrastructure` | | **ADOAreaPath** | Fixed Area Path for all work items. If set, this overrides DynamoDB-based routing for Area Path assignment. If left empty, Area Path is determined by the Account/Service/Tag routing model via DynamoDB mapping. | `VF UK IT Cloud Infrastructure\Operations and Support` | | **EnableAutoActivate** | When set to `true`, subsequent Health notifications for already-tracked events will update the Feature status to "Active" and reassign it to the current sprint iteration. Default: `false`. | `true` | +| **ADOCustomFields** | JSON-encoded list of custom fields to include when creating Feature work items. Use this when your ADO project has required custom fields on the Feature work item type. Each entry needs `field` (the ADO field reference name) and `value`. | `[{"field":"Custom.ProjectContacts","value":"Cloud Team"},{"field":"Custom.DomainsorDepartments","value":"Infrastructure"}]` | #### Conditional Parameters (Tag Model Only) @@ -270,11 +271,16 @@ Example request body: "op": "add", "path": "/fields/System.Description", "value": "

Event Description: Scheduled maintenance for EC2 instances...

Affected Resources:

Resource: arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0
Status: OPEN
Last Updated: 2023-10-15T10:30:00Z

" + }, + { + "op": "add", + "path": "/fields/Custom.ProjectContacts", + "value": "Cloud Team" } ] ``` -> **Note**: The `System.Description` field accepts HTML content. The `System.IterationPath` is dynamically constructed from the `ADOIterationPathPrefix` CloudFormation parameter using a bi-weekly sprint naming convention (`Sprint N Mon FY YY-YY`). If the prefix is not configured, the iteration path field is omitted and ADO uses the project default. +> **Note**: The `System.Description` field accepts HTML content. If your ADO project has custom required fields on the Feature work item type (e.g., `Custom.ProjectContacts`), configure them via the `ADOCustomFields` CloudFormation parameter — they will be appended to the patch document automatically. The `System.IterationPath` is dynamically constructed from the `ADOIterationPathPrefix` CloudFormation parameter using a bi-weekly sprint naming convention (`Sprint N Mon FY YY-YY`). If the prefix is not configured, the iteration path field is omitted and ADO uses the project default. **Step 2: Create the Child Task** @@ -372,6 +378,7 @@ Example request body: | **Area Path** | `/fields/System.AreaPath` | Fixed via `ADOAreaPath` parameter, or determined by DynamoDB routing model | | **Iteration Path** | `/fields/System.IterationPath` | Dynamically set from `ADOIterationPathPrefix` + bi-weekly sprint identifier (`Sprint N Mon FY YY-YY`). Updated to current sprint on subsequent notifications if `EnableAutoActivate` is `true`. | | **Description** | `/fields/System.Description` | AWS Health event description with affected resource details (HTML) | +| **Custom Fields** | As configured via `ADOCustomFields` | Any additional required fields defined by your ADO process template | **Child Task:** @@ -496,6 +503,7 @@ Test with sample events from the `test/` directory (if available), or wait for a - If `ADOIterationPathPrefix` is configured, verify the resulting iteration path (e.g., `MyProject\Sprint 1 Apr FY 26-27`) exists in the ADO project. Sprints must be created in ADO ahead of time. - If using multi-route mode, check that the Area Path in the DynamoDB mapping exists in the ADO project - If using single-route mode, check that the `ADOAreaPath` CloudFormation parameter value exists in the ADO project +- If the error mentions `RuleValidationErrors` with `Required, InvalidEmpty` for custom fields, your ADO process template has mandatory custom fields on the Feature work item type. Use the `ADOCustomFields` CloudFormation parameter (or Lambda environment variable `ADO_CUSTOM_FIELDS`) to provide values for these fields. See the [Optional Parameters](#optional-parameters) section for the JSON format. #### 4. Missing Work Items - Check SQS queues for stuck messages diff --git a/azuredevops/TESTING.md b/azuredevops/TESTING.md index f2fe578..d125966 100644 --- a/azuredevops/TESTING.md +++ b/azuredevops/TESTING.md @@ -50,7 +50,8 @@ aws cloudformation create-stack \ ``` ParameterKey=ADOAreaPath,ParameterValue= \ ParameterKey=ADOIterationPathPrefix,ParameterValue= \ - ParameterKey=EnableAutoActivate,ParameterValue=true + ParameterKey=EnableAutoActivate,ParameterValue=true \ + ParameterKey=ADOCustomFields,ParameterValue='[{"field":"Custom.FieldName","value":"FieldValue"}]' ``` **Tag model** — append these: @@ -204,6 +205,7 @@ If tests fail, check in this order: 3. **DynamoDB mapping** — Verify your mapping table has the correct entries for the identifier in your test event 4. **ADO PAT** — Verify the PAT hasn't expired and has the correct scope 5. **Area Path / Iteration Path** — Verify these exist in your ADO project +6. **Custom required fields** — If CloudWatch Logs show a 400 error with `RuleValidationErrors` and `Required, InvalidEmpty`, your ADO project has mandatory custom fields. Set the `ADO_CUSTOM_FIELDS` environment variable on the ADO Integration Lambda or use the `ADOCustomFields` CloudFormation parameter. ## Cleanup diff --git a/azuredevops/cloudformation/cloudformation.yaml b/azuredevops/cloudformation/cloudformation.yaml index 4aab9f1..d68b1ba 100644 --- a/azuredevops/cloudformation/cloudformation.yaml +++ b/azuredevops/cloudformation/cloudformation.yaml @@ -18,6 +18,10 @@ Metadata: - ADOAreaPath - ADOIterationPathPrefix - EnableAutoActivate + - Label: + default: "Advanced Configuration" + Parameters: + - ADOCustomFields - Label: default: "Lambda Code Location" Parameters: @@ -43,6 +47,8 @@ Metadata: default: "Auto-Activate Feature on Update (Optional)" S3BucketName: default: "S3 Bucket Name" + ADOCustomFields: + default: "Custom Fields for Feature Work Items (JSON)" HealthEventProcessorLambdaKey: default: "Health Event Processor Lambda S3 Key" HealthEventADOIntegrationLambdaKey: @@ -114,6 +120,14 @@ Parameters: (Optional) When enabled, subsequent Health notifications for already-tracked events will set the Feature status to Active and update the Iteration Path to the current sprint. + ADOCustomFields: + Type: String + Description: | + (Optional) JSON-encoded list of custom fields to include when creating Feature work items. + Each entry must have "field" (the ADO field reference name) and "value". + Example: [{"field":"Custom.ProjectContacts","value":"Cloud Team"},{"field":"Custom.DomainsorDepartments","value":"Infrastructure"}] + Default: "" + S3BucketName: Type: String Description: S3 bucket containing Lambda code @@ -144,6 +158,7 @@ Conditions: HasAreaPath: !Not [!Equals [!Ref ADOAreaPath, ""]] HasIterationPrefix: !Not [!Equals [!Ref ADOIterationPathPrefix, ""]] IsAutoActivateEnabled: !Equals [!Ref EnableAutoActivate, "true"] + HasCustomFields: !Not [!Equals [!Ref ADOCustomFields, ""]] Resources: # DynamoDB Mapping Tables (one per deployment model) @@ -359,6 +374,10 @@ Resources: - IsAutoActivateEnabled - "true" - !Ref "AWS::NoValue" + ADO_CUSTOM_FIELDS: !If + - HasCustomFields + - !Ref ADOCustomFields + - !Ref "AWS::NoValue" MemorySize: 256 Timeout: 240 Role: !GetAtt ADOIntegrationRole.Arn diff --git a/azuredevops/code/HealthEventADOIntegration.py b/azuredevops/code/HealthEventADOIntegration.py index 10cd696..684fb9c 100644 --- a/azuredevops/code/HealthEventADOIntegration.py +++ b/azuredevops/code/HealthEventADOIntegration.py @@ -35,6 +35,16 @@ ado_iteration_prefix = os.environ.get('ADO_ITERATION_PATH_PREFIX', '') enable_auto_activate = os.environ.get('ENABLE_AUTO_ACTIVATE', 'false').lower() == 'true' +# Parse optional custom fields for Feature work items +ado_custom_fields = [] +_custom_fields_raw = os.environ.get('ADO_CUSTOM_FIELDS', '') +if _custom_fields_raw: + try: + ado_custom_fields = json.loads(_custom_fields_raw) + logger.info(f"Loaded {len(ado_custom_fields)} custom fields") + except json.JSONDecodeError as e: + logger.error(f"Failed to parse ADO_CUSTOM_FIELDS: {e}") + # Setup boto3 session session = boto3.session.Session() @@ -235,6 +245,10 @@ def build_feature_payload(event_body, identifier, resources, area_path): if iteration_path: patch.append({"op": "add", "path": "/fields/System.IterationPath", "value": iteration_path}) + # Append custom required fields + for cf in ado_custom_fields: + patch.append({"op": "add", "path": f"/fields/{cf['field']}", "value": cf['value']}) + return patch, title From 28d4c3d9d4872b6a26f05aabd3b8a728bf309bd3 Mon Sep 17 00:00:00 2001 From: chethanshere Date: Sat, 20 Jun 2026 20:44:44 +0100 Subject: [PATCH 06/10] fix: scope Feature lookup by identifier to prevent cross-account merging --- azuredevops/code/HealthEventADOIntegration.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/azuredevops/code/HealthEventADOIntegration.py b/azuredevops/code/HealthEventADOIntegration.py index 684fb9c..238b7f8 100644 --- a/azuredevops/code/HealthEventADOIntegration.py +++ b/azuredevops/code/HealthEventADOIntegration.py @@ -135,18 +135,20 @@ def find_existing_workitem_for_event(event_arn, identifier): response = track_table.query( IndexName='TETkeyIndex', KeyConditionExpression='eventArn = :event_arn', + FilterExpression='identifier = :identifier', ExpressionAttributeValues={ - ':event_arn': event_arn + ':event_arn': event_arn, + ':identifier': identifier } ) for item in response.get('Items', []): if 'adoWorkItemId' in item: work_item_id = int(item['adoWorkItemId']) - logger.info(f"Found existing work item {work_item_id} for event {event_arn}") + logger.info(f"Found existing work item {work_item_id} for event {event_arn} and identifier {identifier}") return work_item_id, item.get('adoProject', '') - logger.info(f"No existing work item found for event {event_arn}") + logger.info(f"No existing work item found for event {event_arn} and identifier {identifier}") return None, None except ClientError as e: @@ -154,7 +156,7 @@ def find_existing_workitem_for_event(event_arn, identifier): return None, None -def store_event_tracking(event_arn, start_time, work_item_id, resource_arn, project=None): +def store_event_tracking(event_arn, start_time, work_item_id, resource_arn, project=None, identifier=None): """Store event tracking information in DynamoDB""" from dateutil.relativedelta import relativedelta @@ -182,6 +184,9 @@ def store_event_tracking(event_arn, start_time, work_item_id, resource_arn, proj if project: item['adoProject'] = project + if identifier: + item['identifier'] = identifier + track_table.put_item(Item=item) logger.info(f"Successfully stored event tracking for resource: {resource_arn} with work item ID: {work_item_id}") return True @@ -441,7 +446,7 @@ def lambda_handler(event, context): for resource in resources: resource_arn = get_resource_arn(resource) if resource_arn: - store_event_tracking(eventArn, startTime, existing_work_item_id, resource_arn, project) + store_event_tracking(eventArn, startTime, existing_work_item_id, resource_arn, project, identifier) else: logger.info(f"No existing Feature found for event {eventArn}, creating new Feature + Child Task") @@ -468,7 +473,7 @@ def lambda_handler(event, context): for resource in resources: resource_arn = get_resource_arn(resource) if resource_arn: - store_event_tracking(eventArn, startTime, feature_id, resource_arn, project) + store_event_tracking(eventArn, startTime, feature_id, resource_arn, project, identifier) else: logger.warning(f"Could not extract resource ARN from resource: {resource}") From 3fe68ceb6d985551d3ac4e14c459a2c78f650557 Mon Sep 17 00:00:00 2001 From: chethanshere Date: Sat, 20 Jun 2026 21:49:54 +0100 Subject: [PATCH 07/10] feat: auto-resolve Feature work items when all resources reach RESOLVED status Adds opt-in EnableAutoResolve parameter that automatically transitions a Feature to Resolved state when all affected resources under it have been confirmed RESOLVED by AWS Health. Resolves take precedence over auto-activate to prevent conflicting state transitions. --- .../cloudformation/cloudformation.yaml | 18 ++++++ azuredevops/code/HealthEventADOIntegration.py | 63 ++++++++++++++++--- 2 files changed, 74 insertions(+), 7 deletions(-) diff --git a/azuredevops/cloudformation/cloudformation.yaml b/azuredevops/cloudformation/cloudformation.yaml index d68b1ba..945e7e4 100644 --- a/azuredevops/cloudformation/cloudformation.yaml +++ b/azuredevops/cloudformation/cloudformation.yaml @@ -18,6 +18,7 @@ Metadata: - ADOAreaPath - ADOIterationPathPrefix - EnableAutoActivate + - EnableAutoResolve - Label: default: "Advanced Configuration" Parameters: @@ -45,6 +46,8 @@ Metadata: default: "Iteration Path Prefix (Optional)" EnableAutoActivate: default: "Auto-Activate Feature on Update (Optional)" + EnableAutoResolve: + default: "Auto-Resolve Feature when All Resources Resolved (Optional)" S3BucketName: default: "S3 Bucket Name" ADOCustomFields: @@ -119,6 +122,16 @@ Parameters: Description: | (Optional) When enabled, subsequent Health notifications for already-tracked events will set the Feature status to Active and update the Iteration Path to the current sprint. + + EnableAutoResolve: + Type: String + AllowedValues: + - "true" + - "false" + Default: "false" + Description: | + (Optional) When enabled, automatically sets a Feature work item to Resolved + when all affected resources under it have transitioned to RESOLVED status in AWS Health. ADOCustomFields: Type: String @@ -158,6 +171,7 @@ Conditions: HasAreaPath: !Not [!Equals [!Ref ADOAreaPath, ""]] HasIterationPrefix: !Not [!Equals [!Ref ADOIterationPathPrefix, ""]] IsAutoActivateEnabled: !Equals [!Ref EnableAutoActivate, "true"] + IsAutoResolveEnabled: !Equals [!Ref EnableAutoResolve, "true"] HasCustomFields: !Not [!Equals [!Ref ADOCustomFields, ""]] Resources: @@ -374,6 +388,10 @@ Resources: - IsAutoActivateEnabled - "true" - !Ref "AWS::NoValue" + ENABLE_AUTO_RESOLVE: !If + - IsAutoResolveEnabled + - "true" + - !Ref "AWS::NoValue" ADO_CUSTOM_FIELDS: !If - HasCustomFields - !Ref ADOCustomFields diff --git a/azuredevops/code/HealthEventADOIntegration.py b/azuredevops/code/HealthEventADOIntegration.py index 238b7f8..27aefa4 100644 --- a/azuredevops/code/HealthEventADOIntegration.py +++ b/azuredevops/code/HealthEventADOIntegration.py @@ -34,6 +34,7 @@ ado_area_path = os.environ.get('ADO_AREA_PATH', '') ado_iteration_prefix = os.environ.get('ADO_ITERATION_PATH_PREFIX', '') enable_auto_activate = os.environ.get('ENABLE_AUTO_ACTIVATE', 'false').lower() == 'true' +enable_auto_resolve = os.environ.get('ENABLE_AUTO_RESOLVE', 'false').lower() == 'true' # Parse optional custom fields for Feature work items ado_custom_fields = [] @@ -352,6 +353,32 @@ def activate_work_item(project, work_item_id, headers): return None +def resolve_work_item(project, work_item_id, headers): + """Update a work item's state to Resolved when all resources are resolved""" + patch = [ + {"op": "replace", "path": "/fields/System.State", "value": "Resolved"} + ] + + url = f"{ado_org_url}/{project}/_apis/wit/workitems/{work_item_id}?api-version=7.1" + logger.info(f"Resolving work item {work_item_id} in project {project}") + + response = http.request('PATCH', url, headers=headers, body=json.dumps(patch)) + + if response.status == 200: + logger.info(f"Successfully resolved work item {work_item_id}") + return json.loads(response.data) + else: + logger.warning(f"Failed to resolve work item {work_item_id}. Status: {response.status}, Response: {response.data.decode()}") + return None + + +def all_resources_resolved(resources): + """Check if all resources in a list have RESOLVED status""" + if not resources: + return False + return all(r.get('status') == 'RESOLVED' for r in resources) + + def get_project_and_area_path(event_body, identifier): """Look up ADO project name and area path from DynamoDB mapping table""" deploy_model = event_body['deployModel'] @@ -411,6 +438,10 @@ def lambda_handler(event, context): headers_patch = get_ado_headers(pat) headers_json = get_ado_headers_json(pat) + # Collect all resources per Feature for final resolve/activate decision + # Key: (work_item_id, project), Value: list of resource dicts with status + feature_resources_map = {} + # Process untracked resources (new work items) untracked_resources = event_body.get('untrackedResources', {}) if untracked_resources is None or untracked_resources == []: @@ -438,15 +469,17 @@ def lambda_handler(event, context): comment_payload = build_comment_payload(resources) add_comment(existing_project or project, existing_work_item_id, comment_payload, headers_json) - # Auto-activate if enabled - if enable_auto_activate: - activate_work_item(existing_project or project, existing_work_item_id, headers_patch) - # Track all resources for resource in resources: resource_arn = get_resource_arn(resource) if resource_arn: store_event_tracking(eventArn, startTime, existing_work_item_id, resource_arn, project, identifier) + + # Collect resources for final resolve/activate decision + key = (existing_work_item_id, existing_project or project) + if key not in feature_resources_map: + feature_resources_map[key] = [] + feature_resources_map[key].extend(resources) else: logger.info(f"No existing Feature found for event {eventArn}, creating new Feature + Child Task") @@ -477,6 +510,12 @@ def lambda_handler(event, context): else: logger.warning(f"Could not extract resource ARN from resource: {resource}") + # Collect resources for final resolve/activate decision + key = (feature_id, project) + if key not in feature_resources_map: + feature_resources_map[key] = [] + feature_resources_map[key].extend(resources) + # Process tracked resources (updates to existing Features) logger.info(f"Processing tracked resources for {deployModel} mode") @@ -507,9 +546,19 @@ def lambda_handler(event, context): comment_payload = build_comment_payload(resources) add_comment(wi_project, wi_id, comment_payload, headers_json) - # Auto-activate if enabled - if enable_auto_activate: - activate_work_item(wi_project, wi_id, headers_patch) + # Collect resources for final resolve/activate decision + key = (wi_id, wi_project) + if key not in feature_resources_map: + feature_resources_map[key] = [] + feature_resources_map[key].extend(resources) + + # Final resolve/activate decision for each Feature touched in this execution + for (wi_id, wi_project), resources in feature_resources_map.items(): + if enable_auto_resolve and all_resources_resolved(resources): + logger.info(f"All resources resolved for Feature {wi_id}, resolving work item") + resolve_work_item(wi_project, wi_id, headers_patch) + elif enable_auto_activate: + activate_work_item(wi_project, wi_id, headers_patch) logger.info('Lambda function initialized') From ff3a495c710bd974ae7be19fb67bcbf7ce21ec0e Mon Sep 17 00:00:00 2001 From: chethanshere Date: Thu, 2 Jul 2026 00:09:10 +0100 Subject: [PATCH 08/10] Add architecture diagram to README --- azuredevops/README-ado.md | 2 ++ .../architecture-diagram-ado-Integration.png | Bin 0 -> 100000 bytes 2 files changed, 2 insertions(+) create mode 100644 azuredevops/images/architecture-diagram-ado-Integration.png diff --git a/azuredevops/README-ado.md b/azuredevops/README-ado.md index e1fdd6f..c962a93 100644 --- a/azuredevops/README-ado.md +++ b/azuredevops/README-ado.md @@ -25,6 +25,8 @@ ## Architecture + ![ADO-AWS Health Compass Architecture](./images/architecture-diagram-ado-integration.png) + The solution consists of the following components: 1. **AWS Health Events**: Supports single account or event aggregation across Organization using AWS Health's organizational view with delegated account feature. diff --git a/azuredevops/images/architecture-diagram-ado-Integration.png b/azuredevops/images/architecture-diagram-ado-Integration.png new file mode 100644 index 0000000000000000000000000000000000000000..0af46339a690d06e30665fe447d4f1d200ed0f49 GIT binary patch literal 100000 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±?6cK8LX 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 Date: Thu, 2 Jul 2026 00:12:43 +0100 Subject: [PATCH 09/10] Fix architecture diagram filename case to match README reference --- ...png => architecture-diagram-ado-integration.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename azuredevops/images/{architecture-diagram-ado-Integration.png => architecture-diagram-ado-integration.png} (100%) diff --git a/azuredevops/images/architecture-diagram-ado-Integration.png b/azuredevops/images/architecture-diagram-ado-integration.png similarity index 100% rename from azuredevops/images/architecture-diagram-ado-Integration.png rename to azuredevops/images/architecture-diagram-ado-integration.png From edfbb4daeaa712487e31f2b3721092bb9e4a8418 Mon Sep 17 00:00:00 2001 From: chethanshere Date: Thu, 2 Jul 2026 00:17:25 +0100 Subject: [PATCH 10/10] Update architecture diagram --- .../architecture-diagram-ado-integration.png | Bin 100000 -> 125121 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/azuredevops/images/architecture-diagram-ado-integration.png b/azuredevops/images/architecture-diagram-ado-integration.png index 0af46339a690d06e30665fe447d4f1d200ed0f49..9c9bc3a5af57982062a49eafa25a18f3a8f0e84e 100644 GIT binary patch literal 125121 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 E2OIQYHvj+t literal 100000 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±?6cK8LX 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