jason810496 opened a new pull request, #69816: URL: https://github.com/apache/airflow/pull/69816
- related: #67056 ## Why #67056 decoupled remote logging from the hardcoded branches in `airflow_local_settings.py`: core and the Task SDK now resolve the handler via ProvidersManager dispatch on the `[logging] remote_base_log_folder` URL scheme, instantiating the provider class through a no-arg `from_config()` classmethod. This migrates the `cloudwatch` scheme. ## What - Add `CloudWatchRemoteLogIO.from_config()`, mirroring the legacy `airflow_local_settings.py` branch — parsing `log_group_arn` from the URL (with a clear `ValueError` when no ARN can be derived), merging `[logging] remote_task_handler_kwargs` IO-kwargs, and applying `expanduser` on `base_log_folder`, so behavior is unchanged for existing configs. - Register the `cloudwatch` scheme in the amazon `provider.yaml` `remote-logging:` section (with regenerated `get_provider_info.py`). - The legacy `_default_conn_name_from(AwsLogsHook)` side effect is intentionally not ported: per #67056, provider dispatch produces no default conn id — the IO's hook reads `[logging] remote_log_conn_id` directly. A sibling PR migrates the `s3` scheme the same way; whichever merges second needs a trivial rebase of the new `remote-logging:` section. If `from_config` raises on a bad config, the shared factory falls back to the legacy path, so this is not a breaking change. --- ##### Was generative AI tooling used to co-author this PR? - [x] Yes, with help of Claude Code Fable 5 following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
