Amazon Connect 实例的 CDK 自动化部署:Python 基础设施即代码实战指南
【免费下载链接】aws-cdk-examplesExample projects using the AWS CDK项目地址https://gitcode.com/gh_mirrors/aw/aws-cdk-examples点击查看免费下载导读本文基于 aws-cdk-examples 仓库中的 python/amazon-connect 示例系统讲解如何使用 AWS CDKPython 语言以基础设施即代码的方式一键创建 Amazon Connect 云联络中心实例。你将掌握如何用aws_connect构造库声明式地创建实例、为通话录音与定时报表配置 S3 存储、为联系人追踪记录Contact Trace Records搭建 Firehose 传输流以及如何分配电话号码并定义营业时间。全文以 官方 README 为骨架结合 amazon_connect_stack.py 的完整实现逐段剖析并给出可复制的部署与销毁命令。一、示例概述用 CDK 管理 Amazon Connect 的完整生命周期Amazon Connect 是 AWS 提供的全渠道云联络中心服务。传统上在控制台手动创建实例、配置存储和号码流程繁琐且难以复现。本示例的核心用例正是让客户能够使用 CDKPython来预置provision并配置configureAmazon Connect 实例将整个联络中心的基础设施声明式地写进代码随代码库一起版本化、可评审、可重建。该示例标注为Stable稳定它完全构建在标记为 Stable 的构造库之上不需要任何基础设施前置条件即可开箱构建out of the box这一点在 README 中有明确说明。从整体解决方案看示例会部署的资源包括一个Amazon Connect 实例由aws_connect模块的CfnInstance创建用于**通话录音与转录call recordings and transcripts**的 S3 存储桶以及配套的访问日志桶与 KMS 加密密钥用于**联系人追踪记录Contact Trace RecordsCTR**的Firehose Delivery Stream含配套 IAM 角色用于**定时报表scheduled reports**的 S3 存储桶及访问日志桶分配给实例的一个电话号码联络中心的**营业时间hours of operation**配置。部署完成后实例随即被绑定电话号码并按 Main主营业时间的配置对外提供服务。整个堆栈由 app.py 入口组装仅一行即完成注册#!/usr/bin/env python3 import aws_cdk as cdk from amazon_connect.amazon_connect_stack import AmazonConnectStack app cdk.App() AmazonConnectStack(app, AmazonConnectStack) app.synth()二、逐段解析核心实现从实例到存储再到号码堆栈的全部逻辑集中在 amazon_connect_stack.py。下面按资源创建顺序拆解每一段都对应可验证的源码行号。2.1 创建 Amazon Connect 实例L25-L37实例的创建是整个堆栈的起点后续所有资源存储、号码、营业时间都通过attr_arn与该实例关联amazon_connect_instance connect.CfnInstance(self, AmazonConnectInstance, attributesconnect.CfnInstance.AttributesProperty( inbound_callsTrue, outbound_callsTrue, auto_resolve_best_voicesFalse, contactflow_logsTrue, contact_lensTrue, early_mediaFalse, use_custom_tts_voicesFalse ), identity_management_typeCONNECT_MANAGED, instance_aliasamazon-connect-instance )关键配置项的含义与取值参数本示例取值说明inbound_calls/outbound_callsTrue启用/禁用呼入、呼出通话能力均开启auto_resolve_best_voicesFalse是否自动选择 Amazon Polly 的最佳语音关闭以保留手工指定空间contactflow_logsTrue开启联系流Contact Flow日志便于排障与审计contact_lensTrue开启 Amazon Connect Contact Lens通话分析能力early_mediaFalse是否启用 Early Media通话建立前的媒体流use_custom_tts_voicesFalse是否使用自定义 TTS 语音identity_management_typeCONNECT_MANAGED身份管理方式示例选用 Connect 托管无需依赖外部 IdPinstance_aliasamazon-connect-instance实例别名作为访问地址与标识值得注意这里使用的是低层级 L1 构造CfnInstance说明 AWS CDK 中aws_connect模块对 Connect 的支持以 CloudFormation 原生资源为基准需要在代码中显式给出每个属性值。2.2 通话录音与转录的存储链路L40-L89Amazon Connect 要求将通话录音和转录写入 S3并支持通过**存储配置Instance Storage Config**把存储位置关联到实例。示例为此创建了三类对象1KMS 密钥L40-L44——录音与转录使用独立的客户管理密钥call_recordings_key kms.Key(self, CallRecordingsKey, enable_key_rotationTrue, pending_windowDuration.days(30), aliasamazon-connect-call-recordings-key )开启密钥轮换enable_key_rotationTrue、删除等待窗口设为 30 天pending_window符合密钥管理最佳实践。2S3 存储桶L47-L73——录音桶与访问日志桶成对出现安全基线相当严格call_recordings_bucket s3.Bucket(self, CallRecordingsBucket, block_public_accesss3.BlockPublicAccess.BLOCK_ALL, encryptions3.BucketEncryption.KMS, encryption_keycall_recordings_key, removal_policyRemovalPolicy.RETAIN, enforce_sslTrue, versionedTrue, server_access_logs_bucketcall_recordings_access_logs_bucket, bucket_nameamazon-connect-call-recordings-bucket, lifecycle_rules[ s3.LifecycleRule( enabledTrue, expirationDuration.days(365*2) ) ] )block_public_accessBLOCK_ALL彻底阻断公有访问encryptionKMS 指定encryption_key强制使用客户管理密钥加密enforce_sslTrue仅允许 HTTPS 访问versionedTrue开启版本控制防误删覆盖removal_policyRemovalPolicy.RETAIN销毁堆栈时保留桶避免误删珍贵录音数据lifecycle_rules录音桶设置 2 年365×2 天过期策略兼顾合规留存与成本控制server_access_logs_bucket将访问日志写入独立日志桶便于审计。3存储配置关联L76-L89——通过CfnInstanceStorageConfig把桶注册到实例并明确资源类型为CALL_RECORDINGScall_recordings_storage_config connect.CfnInstanceStorageConfig(self, CallRecordingsStorageConfig, instance_arnamazon_connect_instance.attr_arn, resource_typeCALL_RECORDINGS, storage_typeS3, s3_configconnect.CfnInstanceStorageConfig.S3ConfigProperty( bucket_namecall_recordings_bucket.bucket_name, bucket_prefixrecordings, encryption_configconnect.CfnInstanceStorageConfig.EncryptionConfigProperty( encryption_typeKMS, key_idcall_recordings_key.key_arn ) ) )bucket_prefixrecordings让录音文件统一落在recordings/前缀下与后续 CTR 的ctr/、报表的reports/前缀形成清晰隔离。2.3 联系人追踪记录CTR的 Firehose 传输流L92-L150联系人追踪记录是每次通话的元数据事件流。示例采用Kinesis Firehose → S3的经典链路包含三个组成部分1IAM 角色L92-L117——角色信任firehose.amazonaws.com并授予目标桶的 S3 读写与 KMS 加解密权限ctr_delivery_stream_role iam.Role(self, CtrDeliveryStreamRole, assumed_byiam.ServicePrincipal(firehose.amazonaws.com), role_nameamazon-connect-ctr-delivery-stream-role ) ctr_delivery_stream_role.add_to_policy(iam.PolicyStatement( actions[ s3:PutObject, s3:GetObject, s3:ListBucket, s3:ListMultipartUploadParts, s3:AbortMultipartUpload, s3:GetBucketLocation, kms:Encrypt, kms:Decrypt, kms:ReEncrypt, kms:GenerateDataKey, kms:DescribeKey, kms:CreateGrant ], resources[call_recordings_bucket.bucket_arn, call_recordings_key.key_arn] ))这里把 S3 操作与 KMS 操作权限按最小权限原则精确列出仅限录音桶与对应密钥。2Firehose 传输流L120-L140——DirectPut类型由 Connect 直接推送启用客户管理 CMK 加密缓冲窗口 60 秒ctr_delivery_stream firehose.CfnDeliveryStream(self, CtrDeliveryStream, delivery_stream_nameamazon-connect-ctr-delivery-stream, delivery_stream_typeDirectPut, delivery_stream_encryption_configuration_inputfirehose.CfnDeliveryStream.DeliveryStreamEncryptionConfigurationInputProperty( key_typeCUSTOMER_MANAGED_CMK, key_arncall_recordings_key.key_arn ), s3_destination_configurationfirehose.CfnDeliveryStream.S3DestinationConfigurationProperty( bucket_arncall_recordings_bucket.bucket_arn, prefixctr/, role_arnctr_delivery_stream_role.role_arn, buffering_hintsfirehose.CfnDeliveryStream.BufferingHintsProperty( interval_in_seconds60 ), encryption_configurationfirehose.CfnDeliveryStream.EncryptionConfigurationProperty( kms_encryption_configfirehose.CfnDeliveryStream.KMSEncryptionConfigProperty( awskms_key_arncall_recordings_key.key_arn ) ) ) )prefixctr/CTR 数据写入ctr/前缀buffering_hints.interval_in_seconds60缓冲 60 秒后落盘可在实时性与文件数量间取得平衡。3存储配置关联L143-L150——资源类型为CONTACT_TRACE_RECORDS、存储类型为KINESIS_FIREHOSEctr_storage_config connect.CfnInstanceStorageConfig(self, CtrStorageConfig, instance_arnamazon_connect_instance.attr_arn, resource_typeCONTACT_TRACE_RECORDS, storage_typeKINESIS_FIREHOSE, kinesis_firehose_configconnect.CfnInstanceStorageConfig.KinesisFirehoseConfigProperty( firehose_arnctr_delivery_stream.attr_arn ) )2.4 定时报表的独立存储链路L153-L196定时报表SCHEDULED_REPORTS复用与录音几乎相同的模式但使用独立的一套 KMS 密钥与存储桶amazon-connect-scheduled-reports-key、amazon-connect-scheduled-reports-bucket避免报表与敏感录音数据混存。其配置要点报表桶同样BLOCK_ALL公有访问、KMS 加密、enforce_sslTrue、versionedTrue、RemovalPolicy.RETAIN访问日志写入独立日志桶L161-L180存储配置关联时resource_typeSCHEDULED_REPORTS、storage_typeS3bucket_prefixreportsL183-L196。由此三类数据在 S3 中形成三个互不干扰的前缀recordings/录音、ctr/追踪记录、reports/报表。2.5 分配电话号码L199-L204phone_number connect.CfnPhoneNumber(self, PhoneNumber, target_arnamazon_connect_instance.attr_arn, country_codeGB, descriptionInbound Phone Number, typeDID )country_codeGB申请英国地区的号码按业务需要可改为其他可用国家代码typeDID直拨号码Direct Inward Dialingtarget_arn将该号码直接绑定到上面创建的实例。2.6 配置营业时间L207-L267营业时间决定了路由策略中哪些时段允许联系中心接入示例配置了周一至周五MONDAY~FRIDAY9:00–17:00 的 Main 时段时区为Europe/Londonhours_of_operation connect.CfnHoursOfOperation(self, HoursOfOperation, config[ connect.CfnHoursOfOperation.HoursOfOperationConfigProperty( dayMONDAY, start_timeconnect.CfnHoursOfOperation.HoursOfOperationTimeSliceProperty( hours9, minutes0 ), end_timeconnect.CfnHoursOfOperation.HoursOfOperationTimeSliceProperty( hours17, minutes0 ) ), # ... 依次为 TUESDAY / WEDNESDAY / THURSDAY / FRIDAY时间段相同 ], instance_arnamazon_connect_instance.attr_arn, nameMain, time_zoneEurope/London, descriptionBusiness Hours of Operation, )config是数组类型可以按需扩展周六、周日或多时段配置每个时段用HoursOfOperationTimeSliceProperty(hours, minutes)描述起止时间。三、内置安全审计CDK Nag 校验堆栈构造函数第一行L22就挂载了安全合规审计Aspects.of(self).add(AwsSolutionsChecks())cdk-nagrequirements.txt 中声明cdk-nag2.28.0,3.0.0会在cdk synth时对堆栈做 AWS Solutions 最佳实践检查例如密钥是否开启轮换、桶是否允许公有访问、是否启用 SSL 强制等。本示例中 KMS 轮换、BLOCK_ALL、enforce_ssl、versioned等配置都与该检查的诉求一致。若在合成阶段出现 nag 告警可直接定位到具体资源并对照规则修正。四、本地环境准备与运行步骤该示例遵循标准的 Python CDK 工程布局入口 app.py、堆栈代码位于 amazon_connect/ 包内cdk.json指定执行方式为python3 app.py见 cdk.json。4.1 创建并激活虚拟环境项目初始化会尝试自动创建.venv虚拟环境要求环境中存在python3Windows 下为python且带有venv模块。若自动创建失败可手动创建$ python3 -m venv .venv激活虚拟环境MacOS / Linux$ source .venv/bin/activateWindows 平台使用% .venv\Scripts\activate.bat4.2 安装依赖$ pip install -r requirements.txt依赖声明于 requirements.txt核心三件套为aws-cdk-lib2.262.0,3.0.0CDK 核心库constructs10.5.0,11.0.0构造基类库cdk-nag2.28.0,3.0.0合规审计库。如需增加其他 CDK 库可将其添加到setup.py的依赖列表后重新执行pip install -r requirements.txt。4.3 合成 CloudFormation 模板$ cdk synth该命令会在本地合成完整 CloudFormation 模板同时触发 cdk-nag 审计。cdk.json中还配置了watch模式默认排除README.md、cdk*.json、requirements*.txt、tests等非基础设施文件便于开发时增量观测。五、部署与销毁5.1 部署全部资源$ cdk deploy --all--all会部署应用中所有堆栈本示例只有一个AmazonConnectStack。部署完成后可在 AWS 控制台的 Amazon Connect 服务页看到新实例并验证电话号码与营业时间已就位。5.2 销毁部署$ cdk destroy --all需要特别提醒由于录音桶、报表桶及日志桶均设置了RemovalPolicy.RETAIN销毁堆栈时这些 S3 桶与 KMS 密钥会被保留不会随堆栈删除以保护历史数据。若确认数据无需保留需要在控制台或通过其他方式手动清理而堆栈销毁本身不会执行rm类操作。六、延伸与注意事项实例创建耗时较长Amazon Connect 实例预置并非即时完成cdk deploy可能等待实例状态变为 Active 后才继续后续资源关联部署时需要耐心观察事件输出。实例别名全局唯一性instance_aliasamazon-connect-instance在 AWS 区域内需要唯一若被占用可修改别名后重试。号码可用性country_codeGB与typeDID的组合取决于目标区域的号码库存业务上若需更换地区直接调整这两个参数即可。成本考量录音 2 年过期策略、versioned版本保留等都会影响存储费用pending_window30的密钥删除窗口则用于防止误删。安全基线可复用BLOCK_ALL KMS 加密 enforce_ssl 独立访问日志桶的组合可作为任何涉及敏感通话数据的 CDK 工程的模板参考配合AwsSolutionsChecks可以在代码合入前就拦截不合规配置。七、小结本文以 python/amazon-connect/README.md 为主线结合 amazon_connect_stack.py 的完整源码完整还原了用 AWS CDKPython从零预置 Amazon Connect 联络中心的方案实例创建 → 录音/转录 S3 存储 → CTR Firehose 链路 → 定时报表存储 → 电话号码 → 营业时间并覆盖了虚拟环境搭建、依赖安装、cdk synth、cdk deploy --all与cdk destroy --all的完整操作闭环。对希望把联络中心基础设施纳入代码管线的团队而言这是一个可以直接落地、开箱即用的起点。赞分享【免费下载链接】aws-cdk-examplesExample projects using the AWS CDK项目地址https://gitcode.com/gh_mirrors/aw/aws-cdk-examples点击查看免费下载相关推荐kubespray自动化部署基础设施即代码实践kubespray自动化部署基础设施即代码实践 引言Kubernetes部署的挑战与解决方案 在现代云原生环境中Kubernetes已经成为容器编排的事实云原生容器编排DevOps运维Docker 部署 Claude10 分钟把一个 AI 应用直接跑进容器Docker 部署 Claude10 分钟把一个 AI 应用直接跑进容器 明天要交 demo本地装依赖来不及怎么办把应用直接容器化。claude qui示例工程EventReduce性能测试报告12倍加速背后的真实数据与案例分析EventReduce性能测试报告12倍加速背后的真实数据与案例分析 EventReduce是一款优化数据库查询性能的创新算法通过智能处理重复执行的查询操作上一篇PlayerBase源码架构深度解析理解Android播放器框架设计思想下一篇终极Konva.js部署指南从开发到生产的完整工作流创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

instagram-private-api DirectThreadEntity 实战指南:私信线程对象模型与 DM 消息广播完整解析

instagram-private-api DirectThreadEntity 实战指南:私信线程对象模型与 DM 消息广播完整解析

后端 【免费下载链接】instagram-private-api NodeJS Instagram private API SDK. Written in TypeScript. 项目地址: https://gitcode.com/gh_mirrors/in/instagram-private-api 点击查看 免费下载 本篇技术指南以 instagram-private-api(NodeJS 编写的…

2026/10/15 2:34:23 阅读更多 →
金仓时序数据库:以高效压缩、快速写入与时序优化,破解工业海量数据管理难题

金仓时序数据库:以高效压缩、快速写入与时序优化,破解工业海量数据管理难题

随着工业互联网、能源数字化、智能制造等业务加速发展,设备监测、电力采集、生产过程指标等时序数据规模持续攀升。对于长期运行的业务系统而言,时序数据库不仅要支撑实时写入与查询,更要解决海量历史数据长期存储、快速加载和高效管理的问题…

2026/10/15 2:34:23 阅读更多 →
Vue富文本编辑器图片上传全攻略:从base64到对象存储直传

Vue富文本编辑器图片上传全攻略:从base64到对象存储直传

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 2:34:23 阅读更多 →

最新新闻

笑脸与口罩识别的工业级落地:从像素统计到人机意图理解

笑脸与口罩识别的工业级落地:从像素统计到人机意图理解

1. 这不是玩具项目:笑脸与口罩识别背后的真实业务切口“笑脸识别,口罩识别”——光看标题,很多人第一反应是:这不就是个课堂Demo?调用OpenCV读个摄像头,加两行cv2.CascadeClassifier,再套个预训…

2026/10/15 3:08:36 阅读更多 →
2026,程序员的时代拐点到了

2026,程序员的时代拐点到了

1. 引言 2026 年,注定是程序员职业生涯中一个无法回避的坐标点。这一年,AI 编程助手从「玩具」变成了「同事」,大模型从「聊天机器人」变成了「需求分析师」,而程序员这个职业本身,也站在了前所未有的十字路口。有人焦…

2026/10/15 3:08:36 阅读更多 →
TensorFlow Lite集成实战:从模型转换、量化到端侧推理加速

TensorFlow Lite集成实战:从模型转换、量化到端侧推理加速

到这里,前几章我们讲了模型怎么训、怎么调,该轮到最“落地”的一步了:TensorFlow Lite集成。这章我想用一次完整的实操视角,把从训练好的模型到真正跑在端侧设备上的全流程讲透——包括模型转换、量化、Delegate加速、端侧推理API…

2026/10/15 3:08:36 阅读更多 →
Rope 免费换脸教程:从安装到导出第一条视频的 10 分钟路径

Rope 免费换脸教程:从安装到导出第一条视频的 10 分钟路径

Rope 免费换脸教程:从安装到导出第一条视频的 10 分钟路径 【免费下载链接】Rope GUI-focused roop 项目地址: https://gitcode.com/GitHub_Trending/ro/Rope Rope 是一款免费的图形化人脸交换工具,基于 insightface 的 inswapper_128&#xff08…

2026/10/15 3:08:36 阅读更多 →
金蝶Cloud销售模块参数配置全攻略:从流程打通到信用风控

金蝶Cloud销售模块参数配置全攻略:从流程打通到信用风控

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 3:08:36 阅读更多 →
免费广告拦截插件 uBlock Origin:默认 5 份过滤列表,请求发出前就拦下

免费广告拦截插件 uBlock Origin:默认 5 份过滤列表,请求发出前就拦下

免费广告拦截插件 uBlock Origin:默认 5 份过滤列表,请求发出前就拦下 【免费下载链接】uBlock uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean. 项目地址: https://gitcode.com/GitHub_Trending/ub/uBlock 很多…

2026/10/15 3:07:36 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →