阿里云 LoongCollector 安装与配置标准操作文档版本: 1.0适用地域: 华东2（上海 - cn-shanghai）授权账号ID: 5283947722037499机器标识模式: IP 地址（无需配置机器组自定义标识）产品简介与名词解释LoongCollector 与 Logtail 的关系Logtail: 阿里云日志服务（SLS）早期的日志采集客户端名称。LoongCollector: Logtail 的升级版本，采用了新的内核（C++ 与 Golang 混合），性能更强。现状: 两者本质是同一个产品的不同演进阶段。目前官方文档和安装包逐渐统一使用 LoongCollector 名称。Linux 安装路径通常仍包含 ilogtail。Windows 新版服务名称已变更为 LoongCollectorDaemon。环境准备在开始安装前，请确认服务器满足以下条件：操作系统:Linux: Alibaba Cloud Linux, CentOS, Ubuntu, Debian 等主流发行版。Windows: Windows Server 2016/2019/2022 (64位)。网络要求:Linux (ECS): 需与日志服务 Project 同属于 cn-shanghai 地域，推荐使用内网下载和传输（无需公网 IP）。Windows: 由于新版安装包限制，必须具备公网访问能力以从海外源下载安装包，但采集数据时仍走上海内网。权限: 需拥有服务器的 root (Linux) 或 Administrator (Windows) 权限。Linux 安装指南方式一：脚本自动化安装（推荐）此脚本自动处理内网下载、安装及跨账号 UserID 配置。创建脚本文件 install_loongcollector.sh，内容如下：!/bin/bash地域配置：上海REGION_ID="cn-shanghai"授权账号IDALI_UID="5283947722037499"echo ">>> 开始安装 LoongCollector (Linux)..."1. 下载 (使用上海内网源)wget "https://aliyun-observability-release-${REGION_ID}.oss-${REGION_ID}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh" -O /tmp/loongcollector.shchmod +x /tmp/loongcollector.sh2. 安装 (指定地域)sudo /tmp/loongcollector.sh install "${REGION_ID}"3. 配置用户标识 (跨账号授权)sudo mkdir -p /etc/ilogtail/userssudo touch "/etc/ilogtail/users/${ALI_UID}"4. 检查状态sudo /etc/init.d/loongcollectord statusrm -f /tmp/loongcollector.sh运行脚本：sudo bash install_loongcollector.sh方式二：手动分步安装如果无法使用脚本，可执行以下命令：下载安装脚本:wget https://aliyun-observability-release-cn-shanghai.oss-cn-shanghai.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh -O loongcollector.shchmod +x loongcollector.sh执行安装:sudo ./loongcollector.sh install cn-shanghai配置用户 ID:sudo mkdir -p /etc/ilogtail/userssudo touch /etc/ilogtail/users/5283947722037499验证:sudo /etc/init.d/loongcollectord status输出应包含: loongcollector is runningWindows 安装指南注意: Windows 服务器必须连接互联网才能下载安装包。方式一：PowerShell 脚本安装（推荐）此脚本自动从海外源下载，适配上海地域配置，并清理临时文件。新建文本文件，命名为 install.ps1，复制以下内容：必须以管理员身份运行$RegionId = "cn-shanghai"$AliUid = "5283947722037499"$TempDir = $env:TEMP$ExtractPath = "$TempDir\loongcollector_install_dir"1. 下载 (使用海外源)$DownloadUrl = "https://aliyun-observability-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/loongcollector/win64/3.1.7/x86_64/loongcollector_installer.zip"Invoke-WebRequest -Uri $DownloadUrl -OutFile "$TempDir\installer.zip" -UseBasicParsing2. 解压if (Test-Path $ExtractPath) { Remove-Item $ExtractPath -Recurse -Force }Expand-Archive -Path "$TempDir\installer.zip" -DestinationPath $ExtractPath -Force3. 安装$Installer = Get-ChildItem $ExtractPath -Filter "loongcollector_installer.exe" -Recurse | Select -First 1 -Expand FullNameStart-Process -FilePath $Installer -ArgumentList "install $RegionId" -WorkingDirectory $ExtractPath -Wait -NoNewWindow4. 配置用户ID$UserDir = "C:\LogtailData\users"if (-not (Test-Path $UserDir)) { New-Item -Type Directory -Path $UserDir -Force | Out-Null }New-Item -Type File -Path "$UserDir\$AliUid" -Force | Out-Null5. 验证Get-Service -Name "LoongCollectorDaemon"清理Remove-Item "$TempDir\installer.zip" -ForceRemove-Item $ExtractPath -Recurse -Force右键点击脚本文件，选择 "使用 PowerShell 运行" (Run with PowerShell)。方式二：手动分步安装下载:在浏览器中访问以下链接下载压缩包：https://aliyun-observability-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/loongcollector/win64/3.1.7/x86_64/loongcollector_installer.zip解压:将压缩包解压到任意文件夹（例如 C:\loongcollector）。安装:以管理员身份打开 PowerShell 或 CMD，进入解压目录，执行：.\loongcollector_installer.exe install cn-shanghai配置用户 ID:进入目录 C:\LogtailData（如无则新建）。新建文件夹 users。在 users 文件夹内新建一个空文件，文件名为 5283947722037499（无后缀）。验证:在 PowerShell 中执行 Get-Service LoongCollectorDaemon，状态应为 Running。维护与生命周期管理卸载 (Uninstall)Linux:sudo /usr/local/ilogtail/installer/uninstall.shWindows:以管理员身份在 PowerShell 中运行：假设仍在安装包目录下，或重新下载安装包后执行.\loongcollector_installer.exe uninstall或者直接在 Windows 服务管理器中停止服务，并删除 C:\Program Files\Alibaba\Logtail 和 C:\LogtailData 目录。更新/重装 (Update/Reinstall)LoongCollector 的更新逻辑通常是覆盖安装。操作: 直接重新运行上述的“安装脚本”即可。逻辑: 安装程序会自动检测旧版本，停止服务，替换二进制文件，并重新启动服务。原有的配置（如 UserID）通常会保留，但建议脚本中保留配置 ID 的步骤以防万一。服务启停Linux:sudo /etc/init.d/loongcollectord start # 启动sudo /etc/init.d/loongcollectord stop # 停止sudo /etc/init.d/loongcollectord restart # 重启Windows:Start-Service LoongCollectorDaemon # 启动Stop-Service LoongCollectorDaemon # 停止Restart-Service LoongCollectorDaemon # 重启常见问题排查Windows 安装报错 "errno: 1060":现象: 安装日志中出现删除文件失败的错误。原因: 这是正常的清理过程，如果之前未安装过或文件不存在，清理命令会报错，不影响后续安装。控制台机器组心跳显示 "FAIL":检查 1: 确认服务器能否访问上海的日志服务域名（Linux 测试 curl logtail.cn-shanghai-intranet.log.aliyuncs.com）。检查 2: 确认 users 目录下是否存在文件 5283947722037499，且文件名无后缀（Windows下注意隐藏后缀名）。检查 3: 机器组配置中的 IP 是否填写正确（应填写服务器的内网 IP）。Windows 下载失败:原因: Windows 安装包目前仅支持海外源。解决: 确保服务器配置了 NAT 网关或 EIP。如果无公网，需在有公网的机器下载后通过 RDP/FTP 上传至服务器。
一、RHEL 9.3 安装过程1. 安装源选择作用与选择： 决定系统软件包的获取方式。通常选择本地ISO镜像进行离线安装，或在需要最新软件包或批量部署时选择网络源（HTTP/HTTPS/FTP/NFS）。2. 软件选择"带GUI的服务器" (Server with GUI)：作用与选择： 安装桌面环境，提供图形化操作界面，适合新手、测试环境或需直接图形化管理的服务器。"最小安装" (Minimal Install)：作用与选择： 仅安装核心组件，资源占用最少，安全攻击面小，适合生产服务器、虚拟化宿主机或追求极致性能和安全性的场景。其他选项： 根据具体应用场景和需求灵活选择。3. 安装目标（分区）作用与选择： 规划硬盘空间，分配文件系统类型和挂载点。自动分区： 安装程序按推荐方案自动划分，适合新手或无特殊要求的情况。手动分区 (Custom)： 允许精细控制分区大小和类型，适合生产环境、对性能和数据安全有高要求，或多块硬盘的场景。常见手动分区及其作用与建议大小：/boot： 存放系统启动文件（内核、GRUB等），确保系统正常引导。建议 1GB 左右。/ (根分区)： 存放操作系统核心文件和大部分程序数据，是整个文件系统的根。建议 50GB - 200GB+，依安装软件和数据量而定。swap (交换分区)： 作为虚拟内存使用，在物理内存不足时提供缓冲，防止系统崩溃。建议为物理内存的 1-2倍，大内存系统可适当减小至 4GB - 8GB。/home (可选)： 存放用户个人数据和配置文件，便于备份与系统分离。可分配剩余硬盘空间。/var (可选)： 存放经常变化的数据（日志、邮件、Web数据等），建议单独分区以防日志撑满根分区。4. 网络和主机名作用与选择： 配置系统在网络中的身份和连接方式。主机名： 指定系统在网络中的唯一名称。网络连接：DHCP（自动连接）： 自动获取IP等配置，方便快捷，适合家用或测试环境。静态IP（手动指定）： 配置固定IP地址、网关、DNS，适合生产服务器等需稳定可访问IP的场景。5. 时区设置作用与选择： 确保系统时间与所在地区一致，对日志和程序调度至关重要。根据实际地理位置选择即可。6. ROOT 密码与用户创建ROOT 密码： 设置系统最高权限用户root的密码。务必设置复杂密码并妥善保管，因为root拥有系统所有权限。用户创建： 创建普通用户账户。日常操作应使用普通用户，通过sudo提权，以提高系统安全性，避免误操作。7. Kdump作用与选择： 内核崩溃时捕获内存快照用于故障分析。生产环境建议启用，有助于排查系统崩溃原因，但会占用部分物理内存；资源受限或非关键环境可禁用以节省内存。二、文件与目录管理1. 文件与目录类型empty： 文件内容为空。ASCII text： 文件包含可读的、基于 ASCII 编码的文本内容。目录（Directory）： 用于组织文件和子目录的特殊文件。2. 路径概念绝对路径： 从根目录 / 开始的完整路径，无论当前位置如何，都能准确指向目标。示例： cd /etc/相对路径： 从当前工作目录开始的路径，其含义取决于当前所在位置。示例：cd etc：进入当前目录下的etc子目录。cd ..：切换到上一级目录。cd .：表示当前目录。3. 核心命令 (常用选项)pwd (Print Working Directory)： 显示当前所在目录的绝对路径。常用： pwdls (List)： 列出目录内容。ls -l：显示文件或目录的详细信息（权限、拥有者、大小、时间等）。ls -a：显示包括隐藏文件（以 . 开头）在内的所有文件。ls -h：以人类可读的方式显示文件大小（如 4.0K, 1.2M）。ls -ld <directory>：显示目录本身的详细属性，而非其内容。cd (Change Directory)： 切换工作目录。cd <directory_path>：切换到指定目录。cd ~：切换到当前用户的家目录。cd ~<username>：切换到指定用户的家目录。cd -：切换到上一次所在的目录。touch：touch <filename>：创建空文件或更新文件时间戳。touch -a <filename>：只更新文件的访问时间。touch -m <filename>：只更新文件的修改时间。mkdir (Make Directory)： 创建目录。mkdir -p <path>：递归创建目录，若父目录不存在则一并创建。mkdir -v <directory>：显示创建目录的详细过程。cp (Copy)： 拷贝文件或目录。cp <destination>：拷贝文件。cp -r <source_dir> <destination_dir>：递归拷贝目录及其内容。cp -p <destination>：拷贝时保留文件属性（权限、时间戳等）。cp -i <destination>：拷贝时若目标文件已存在，则提示是否覆盖。cp -v <destination>：显示拷贝过程。mv (Move)： 移动或重命名文件/目录。mv <destination>：移动文件或目录。mv <old_name> <new_name>：重命名文件或目录。mv -i <destination>：移动时若目标已存在，则提示是否覆盖。mv -v <destination>：显示移动过程。rm (Remove)： 删除文件或目录。rm -i <file>：交互式删除，删除前会提示确认。rm -r <directory>：递归删除目录及其内容。rm -f <file/directory>：强制删除，不提示确认（慎用！）。rm -rf <directory>：强制递归删除目录及其内容（极其危险，不可逆！）。echo： 在终端输出字符串。echo "text" > <file>：将文本覆盖写入文件。echo "text" >> <file>：将文本追加写入文件末尾。date： 显示或设置系统时间。date +"%Y-%m-%d %H:%M:%S"：按照指定格式输出日期和时间。date -s "YYYY-MM-DD HH:MM:SS"：设置系统日期和时间。date MMDDhhmm[[CC]YY][.ss]：设置系统时间（需 root 权限）。file： 检测文件类型。file <filename>：显示文件类型。man (Manual)： 查看命令的帮助手册页。man <command>：显示命令手册。man <command> | grep "keyword"：在手册中过滤关键字。stat： 显示文件或文件系统的详细状态信息（包括访问、修改和改变时间）。ssh (Secure Shell)： 远程登录到Linux系统。ssh <username>@<ip_address>：通过 SSH 协议连接到远程主机。ssh -p <port> <username>@<ip_address>：指定SSH连接端口。vim (Vi IMproved)： 强大的文本编辑器，常用于编辑配置文件。vim <filename>：打开文件进行编辑。
解压：unzip -o run_poc.zip执行:1. suricata直接触发告警：# 默认执行 python run_poc.py # 大部分用例fail时, 如下执行看结果（rules文件是测试环境验证的入侵检测规则库） python run_poc.py -r suricata.rules 使用说明usagewarning: unexcept args: ['-h'] usage: python run_poc.py python run_poc.py -r suricata.rules -t default python run_poc.py -t ioc,http python run_poc.py -r suricata.rules -r, --rules : suricata's rules file -t, --tags : **internal tag**: "default", "all", multi-tags split with "," **隐藏说明** 单独执行具体pcap: python run_poc_ex.py -r suricata.rules -t ids --pcap alert_trojan_udp.pcap执行效果批量默认[root@isa4 v2]# python run_poc_ex.py -r suricata.rules -t ids rules: 'suricata.rules', tags: ids [+]pcap:alert_VulAttack_LateralPenetration_Attempt_openssl_heartbleed.pcap, result:pass [+]pcap:alert_VulAttack_LateralPenetration_Success_openssl_heartbleed.pcap, result:pass [+]pcap:alert_VulAttack_LateralPenetration_Attempt_php_longflow.pcap, result:pass [+]pcap:alert_VulAttack_LateralPenetration_Fail_phpunit.pcap, result:pass [+]pcap:alert_WebAttack_LateralPenetration_Attempt_http-post-webshell-php-404.pcap, result:pass [+]pcap:alert_WebAttack_NetworkIntrusion_Attempt_cve-2012-1823_phpcgi.pcap, result:pass [+]pcap:alert_mysql_load_file.pcap, result:pass [+]pcap:alert_ransonware_udp.pcap, result:pass [+]pcap:alert_trojan_udp.pcap, result:pass [+]pcap:alert_backdoor_134echo.pcap, result:pass END: the detail log see:/home/test/poc/v2/tmp.log单个执行[root@isa4 v2]# python run_poc_ex.py -r suricata.rules -t ids --pcap alert_trojan_udp.pcap notice: only run pcap: alert_trojan_udp.pcap rules: 'suricata.rules', tags: ids [+] pcap:alert_trojan_udp.pcap, result:pass2. tcpreplay 触发告警：pcap 目录：pcaps/tcpreplay预置条件：1.额外一台服务器，简称G 或者 PC，安装CentosOS 7.x系统 和tcpreplay工具。2.Web端，系统设置-数据接入-流量探针配置，内网网段：192.168.0.0/16,10.0.0.0/8,172.16.0.0/123.探针监控网口 直连 服务器G的流量回放网口，代号em100（具体看实际网卡名称 ifconfig, ip address等）执行操作：1. tcpreplay -i em1 -K -M 10 --duration=30 --loop=0 --unique-ip alert_Scanports_InternalDetection_Attempt_nmap_sS.pcap 2. tcpreplay -i em1 -K --loop=0 --unique-ip alert_baopo_ssh_fail.pcap 3. tcpreplay -i em1 -K --loop=0 --unique-ip alert_baopo_ftp_fail.pcap 4. tcpreplay -i em1 -K --loop=0 --unique-ip alert_baopo_mysql_fail.pcap 5. tcpreplay -i em1 -K --loop=0 --unique-ip alert_baopo_telnet_fail.pcap 6. tcpreplay -i em1 -K --loop=0 --unique-ip alert_baopo_pop3_fail.pcap
一、引言在当今数字化时代，企业多账号协同的场景愈发普遍，阿里云KMS密钥跨账号共享成为保障数据安全与提升管理效率的关键。本文聚焦于Landing Zone（LZ）环境，详细阐述KMS密钥通过RAM授权实现跨账号共享的方法，助力企业高效利用云资源。二、KMS密钥跨账号共享概述2.1 共享的概念在LZ环境下，KMS密钥跨账号共享基于RAM授权展开，无需共享KMS实例。通常，KMS实例部署在Security账号中，作为密钥管理的核心枢纽；而各应用账户则作为资源使用者，通过RAM授权获取特定密钥的使用权限，实现对敏感数据的加密和解密操作 。2.2 共享的优势相较于实例共享，仅通过RAM授权共享KMS密钥，能实现更精细化的权限管控。Security账号可针对不同应用账户的业务需求，灵活分配密钥使用权限，避免权限过度开放带来的安全风险；同时，各应用账户无需单独配置KMS实例，显著降低了资源管理成本和操作复杂度。2.3 适用场景这种共享模式适用于企业内部多部门协作、多项目并行开发等场景。在LZ环境中，不同应用账户负责不同业务板块，如市场推广、客户服务等，通过RAM授权共享Security账号中的KMS密钥，既能保障各业务数据加密需求，又能确保密钥使用的安全性和合规性。三、共享的前提条件3.1 资源目录KMS密钥共享需在资源目录内进行，将Security账号与各应用账户纳入统一资源目录，便于基于组织结构进行权限管理和资源分配，确保密钥共享的有序性。3.2 企业实名认证Security账号与各应用账户必须为同一企业实名认证主体，从源头上保证密钥共享在企业可控范围内，防止外部非法账号获取密钥权限。3.3 KMS实例状态部署在Security账号中的KMS实例需为软件密钥管理实例或硬件密钥管理实例，且状态为已启用，为密钥共享提供稳定可靠的运行环境。3.4 网络访问各应用账户通过专属网关Endpoint或共享网关Endpoint访问Security账号中的KMS密钥，需提前配置好网络连接，确保VPC绑定正确，保证密钥使用过程中的网络畅通与数据传输安全。四、Landing Zone环境下KMS密钥共享操作步骤4.1 准备工作在 LZ 环境中，首要任务是明确 Security 账号作为密钥所有者的核心地位。全面梳理各应用账户的业务需求，依据其业务特性，精准确定需共享的 KMS 密钥以及与之适配的权限范围。同时，在资源目录体系里，精心规划好账号层级关系，为后续开展的授权操作筑牢根基，确保后续操作有序推进。4.2 打开 KMS 服务模块登录 Security 账号，在阿里云控制台页面，通过搜索栏输入 “KMS”，快速定位并点击进入 KMS 服务模块，界面展示如图：点击后正式开启 KMS 服务操作界面。4.3 点击进入密钥管理进入 KMS 服务主界面后，在众多功能选项中，找到并点击 “密钥管理” 按钮，跳转至密钥管理页面，该页面罗列了当前 Security 账号下所有的 KMS 密钥信息，为后续密钥操作提供直观的管理入口，具体界面呈现如下：4.4 进入待共享密钥详细页面在密钥管理页面，逐一检查需共享的 KMS 密钥状态，确保其处于 “启用” 状态。对于符合条件的密钥，点击密钥名称，进入该密钥的详细信息页面，在此页面可对密钥进行更细致的策略设置等操作，相关页面截图可参考4.5 打开密钥策略设置进入密钥详细信息页面后，在页面导航栏中，依次点击 “密钥策略” 选项，随后在展开的子菜单中选择 “设置密钥策略” 功能，从而打开密钥策略编辑窗口，准备进行密钥共享相关的策略配置，操作路径对应的界面展示见4.6 点击添加共享 ARN在密钥策略编辑窗口中，查找并点击 “添加其他账号使用者 ARN” 按钮，此操作将弹出一个输入框，用于填写被共享账号的 ARN 信息，为实现跨账号密钥共享迈出关键一步，对应界面参考4.7 填写共享账号 ARN格式：acs:ram::ID:role/resourcedirectoryaccountaccessrole假设ID为：5100000000则ARN为：acs:ram::5100000000:role/resourcedirectoryaccountaccessrole切换至主账号资源目录控制台，在资源目录结构中，仔细查找目标应用账户对应的账号 ID。例如，在资源目录树形结构中定位到某应用账户节点，获取其账号 ID。将获取到的 ID 按照指定格式 “acs:ram::ID:role/resourcedirectoryaccountaccessrole” 进行拼接，生成完整的 ARN 信息。如获取到的 ID 为 5100000000，生成的 ARN 即为 “acs:ram::5100000000:role/resourcedirectoryaccountaccessrole”。将生成的 ARN 信息准确填入上一步弹出的输入框中，示例操作界面及填写过程可参照 如图，我将5开头，6结尾的账号ID复制下来，并填入ARN，点击 “保存” 按钮，完成对应用账户的密钥共享策略添加操作。4.8 等待并验证密钥共享生效完成上述保存操作后，由于阿里云系统内部数据同步及策略生效机制，共享密钥操作并非即时生效，通常需要等待30分钟左右。待等待时间结束后，登录对应被共享密钥的应用账户，进入该账户的 KMS 控制台，查看是否出现来自 Security 账号共享的密钥。若能在密钥列表中查看到共享密钥，并能依据授予的权限正常执行相关加密、解密操作，则表明 KMS 密钥跨账号共享操作成功完成。五、Landing Zone环境下共享后的管理操作5.1 权限调整随着业务变化，Security账号管理员可随时在RAM控制台修改关联至应用账户的RAM策略，增加或减少密钥操作权限。例如，当应用账户业务升级需新增数据解密需求时，在策略中添加“kms:Decrypt”权限；若发现权限过度开放，及时收回不必要权限，保障密钥使用安全。5.2 密钥更新与轮换Security账号管理员定期在KMS控制台对共享密钥进行更新与轮换，更新完成后，通过企业内部通信渠道及时通知各应用账户更新其应用程序中与密钥相关的配置参数，如密钥ID等，确保业务连续性和数据安全性不受影响。5.3 监控与审计Security账号利用阿里云云监控服务，针对各应用账户对共享密钥的使用频率、操作类型等指标设置监控告警。如当某个应用账户的解密操作次数在短时间内异常增加时，及时触发告警；同时，借助审计日志功能，定期对所有应用账户的密钥使用记录进行审计，检查是否存在违规操作或潜在安全风险，确保密钥共享符合企业安全策略和合规要求。六、Landing Zone环境下注意事项6.1 RAM策略精准配置在创建RAM策略时，务必精准定义权限范围，避免因策略配置不当导致权限过度开放。可采用最小权限原则，仅授予应用账户完成业务所需的最低限度密钥操作权限，降低密钥被滥用的风险。6.2 网络环境动态维护LZ环境网络架构复杂，需定期检查各应用账户与Security账号间的网络连接配置，包括VPC绑定、网关Endpoint状态等。在进行网络架构调整或安全组策略变更时，提前评估对KMS密钥共享的影响，并制定应急预案，确保密钥共享不受网络环境变化干扰。6.3 与环境安全策略深度协同KMS密钥共享的权限设置、使用流程等需与LZ环境中的身份与权限管理、合规审计等安全策略深度协同。例如，在身份认证方面，确保RAM授权流程与企业整体身份认证体系一致；在合规审计方面，保证KMS密钥使用记录能无缝集成到LZ环境的整体审计系统中，实现统一的安全管理与合规监控。七、总结在Landing Zone环境中，通过RAM授权实现KMS密钥跨账号共享，为企业提供了灵活、安全且高效的密钥管理方案。Security账号作为密钥管理核心，各应用账户按需获取权限，既能满足多业务场景的加密需求，又能保障密钥使用的安全性和可控性。严格遵循前提条件、规范操作步骤，并做好共享后的管理与风险防控，可充分发挥KMS密钥跨账号共享的价值，为企业云上业务发展筑牢数据安全防线。 我的博客即将同步至腾讯云开发者社区，邀请大家一同入驻：https://cloud.tencent.com/developer/support-plan?invite_code=2o8p63uj884k0
亚马逊云科技 ｜ Amazon Q CLI : 零代码基础开发 2048 小游戏
在低代码、零代码开发盛行的当下，Amazon Q CLI 为开发者提供了全新的开发方式。本次我将以一个编程小白的视角，借助它成功开发出 2048 小游戏，整个过程无需手写任何一行代码，基本可以实现以产品角度雇一个开发工程师来帮忙完成游戏制作。​Amazon Q CLI简介与常见的开发助手不同，Amazon Q CLI 基于 AWS 云计算和机器学习技术，能精准理解自然语言需求。以往使用其他工具，描述需求需反复斟酌，稍不严谨就会生成错误代码。而 Amazon Q CLI 即便面对生活化的需求表述，也能准确把握，还会主动优化细节。其实时反馈机制更是高效，发现问题后，直接在终端反馈，它就能快速定位并修复，且无缝对接 AWS 生态，让功能拓展与数据存储变得轻而易举。​Macos 上安装 Amazon Q CLI​在 MacBook 上安装 Amazon Q CLI 的过程并不复杂，按步骤操作即可：​下载安装包前往Installing Amazon Q for command line，下载适配 MacOS 系统的 Amazon Q 命令行安装包。注册登录与验证下载完成后，双击打开.dmg文件安装到application文件夹。打开安装后的Amazon Q，使用 Builder ID 完成注册登录，并按提示进行身份验证。​环境配置根据安装向导，完成 shell 集成的安装。在此过程中，系统会提示授予 MacOS 辅助功能权限，点击确认即可。权限授予能保障 Q CLI 在终端中顺畅运行，避免因权限不足导致功能受限。​安装完成通过运行q doctor命令，即可验证 Q CLI 环境是否正常工作。​通过运行q或者q chat即可开始对话。jason@MacM4 ~ % q doctor Everything looks good! Amazon Q still not working? Run q issue to let us know! jason@MacM4 ~ % q chat ⢠⣶⣶⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⣿⣶⣦⡀⠀ ⠀⠀⠀⣾⡿⢻⣿⡆⠀⠀⠀⢀⣄⡄⢀⣠⣤⣤⡀⢀⣠⣤⣤⡀⠀⠀⢀⣠⣤⣤⣤⣄⠀⠀⢀⣤⣤⣤⣤⣤⣤⡀⠀⠀⣀⣤⣤⣤⣀⠀⠀⠀⢠⣤⡀⣀⣤⣤⣄⡀⠀⠀⠀⠀⠀⠀⢠⣿⣿⠋⠀⠀⠀⠙⣿⣿⡆ ⠀⠀⣼⣿⠇⠀⣿⣿⡄⠀⠀⢸⣿⣿⠛⠉⠻⣿⣿⠛⠉⠛⣿⣿⠀⠀⠘⠛⠉⠉⠻⣿⣧⠀⠈⠛⠛⠛⣻⣿⡿⠀⢀⣾⣿⠛⠉⠻⣿⣷⡀⠀⢸⣿⡟⠛⠉⢻⣿⣷⠀⠀⠀⠀⠀⠀⣼⣿⡏⠀⠀⠀⠀⠀⢸⣿⣿ ⠀⢰⣿⣿⣤⣤⣼⣿⣷⠀⠀⢸⣿⣿⠀⠀⠀⣿⣿⠀⠀⠀⣿⣿⠀⠀⢀⣴⣶⣶⣶⣿⣿⠀⠀⠀⣠⣾⡿⠋⠀⠀⢸⣿⣿⠀⠀⠀⣿⣿⡇⠀⢸⣿⡇⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⢹⣿⣇⠀⠀⠀⠀⠀⢸⣿⡿ ⢀⣿⣿⠋⠉⠉⠉⢻⣿⣇⠀⢸⣿⣿⠀⠀⠀⣿⣿⠀⠀⠀⣿⣿⠀⠀⣿⣿⡀⠀⣠⣿⣿⠀⢀⣴⣿⣋⣀⣀⣀⡀⠘⣿⣿⣄⣀⣠⣿⣿⠃⠀⢸⣿⡇⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⠈⢿⣿⣦⣀⣀⣀⣴⣿⡿⠃ ⠚⠛⠋⠀⠀⠀⠀⠘⠛⠛⠀⠘⠛⠛⠀⠀⠀⠛⠛⠀⠀⠀⠛⠛⠀⠀⠙⠻⠿⠟⠋⠛⠛⠀⠘⠛⠛⠛⠛⠛⠛⠃⠀⠈⠛⠿⠿⠿⠛⠁⠀⠀⠘⠛⠃⠀⠀⠘⠛⠛⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠿⢿⣿⣿⣋⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⢿⡧ ╭─────────────────────────────── Did you know? ────────────────────────────────╮ │ │ │ Use /model to select the model to use for this conversation │ │ │ ╰──────────────────────────────────────────────────────────────────────────────╯ /help all commands • ctrl + j new lines • ctrl + s fuzzy search ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ You are chatting with claude-3.7-sonnet > /quit jason@MacM4 ~ % 安装pygame(可选，借助python游戏包开发更多小游戏)jason@MacM4 ~ % pip3 install pygame Defaulting to user installation because normal site-packages is not writeable Collecting pygame Downloading pygame-2.6.1-cp39-cp39-macosx_11_0_arm64.whl (12.4 MB) |████████████████████████████████| 12.4 MB 40.2 MB/s Installing collected packages: pygame Successfully installed pygame-2.6.1 WARNING: You are using pip version 21.2.4; however, version 25.1.1 is available. You should consider upgrading via the '/Applications/Xcode.app/Contents/Developer/usr/bin/python3 -m pip install --upgrade pip' command.用提示词生成 2048 小游戏在终端输入提示词。> Create a 2048 logic game: 1. 4x4 grid UI, number tiles in gradient colors (light to orange for 2-2048), controlled by arrow keys; 2. Animation effects (zoom transition on number merge) and score panel (high score/current score); 3. Simplified timed mode with power-ups (undo/shuffle); 4. Modern minimalistic design for logic game fans of all ages. I'll create a 2048 game with the features you've requested. Let's build this step by step.代码生成index.html确定代码保存继续生成css文件和js文件代码并保存代码文件全部创建完成，总结内容体验短短几分钟，一个具备核心玩法的基础版 2048 小程序便开发完成。迫不及待进行试玩，虽然界面较为简洁，但成功开发的成就感扑面而来。不过在体验过程中发现，游戏逻辑运行正常，但存在 UI 缺陷 —— 数字方格与背景方框不契合，影响整体美观度。发现问题，让 Q 修复​针对 UI 显示问题，我在终端向 Amazon Q CLI 反馈。首次修复后，游戏逻辑出现混乱。我再次提醒其只需调整 UI，经过三次交互沟通，界面最终恢复规整。这一过程充分展现了 Amazon Q CLI 快速调整、持续优化的能力，即便首次未能完美解决问题，也能在后续沟通中达成预期效果。我完全理解它在我首次提出修复时没有完美的解决问题。我认为它更重要的价值是即便这次没有解决，我们也可以在下次简单沟通中完成目标。我不是需要它100%没有错误，这难度很大。但是可以在错误后迅速调整、修复、修改，我认为这就是它最重要的价值。调配小清新配色​解决显示问题后，我向 Amazon Q CLI 提出 “给 2048 小程序调配小清新配色” 的需求。它很快生成新配色方案，更新后的界面视觉效果有所提升，但也暴露出新问题：数字与背景的对比度不足，导致辨识度不高，后续仍有优化空间。总结从安装到开发完成，全程无需编写任何代码，Amazon Q CLI 让开发变得简单高效且充满乐趣。无论是追求效率提升的专业开发者，还是渴望实现创意的编程小白，它都是一款值得深入探索的强大工具。期待大家在使用过程中挖掘出更多可能性，也欢迎分享使用心得与开发成果。
亚马逊云科技 Amazon Bedrock 正式托管 DeepSeek-R1 模型：无服务器架构助力企业生成式 AI 应用
2025年3月11日，亚马逊云科技（AWS）宣布 DeepSeek-R1 大语言模型 以全托管无服务器模式在 Amazon Bedrock 平台上线。该服务为企业提供了低门槛、高安全性的生成式 AI 部署方案，用户无需管理底层基础设施即可直接调用模型能力。DeepSeek-R1 模型特性DeepSeek-R1 由国内人工智能公司深度求索（DeepSeek）开发，具备以下技术特性：• 复杂任务处理：支持数学求解、代码生成、数据分析等高精度推理任务。• 中英文双语支持：适配国际化团队协作场景。• 成本优化：基于公开数据，其推理成本较同类模型降低 90%-95%，同时保持性能领先。Amazon Bedrock 托管服务技术细节通过 Amazon Bedrock 平台，用户可通过无服务器架构调用 DeepSeek-R1，主要技术优势包括：1. 按需付费模式 采用 Token 粒度计费（输入/输出双计量），无预置资源成本，支持从测试到生产的弹性扩展。2. 企业级数据安全 • 默认启用静态加密（AWS KMS）与传输加密（TLS 1.2+）• 通过 IAM 策略实现细粒度权限控制• 用户数据与模型输出不共享给第三方3. 安全防护机制 • Bedrock Guardrails：实时拦截有害内容（暴力、隐私泄露等），过滤敏感词并限制模型幻觉• 模型评估工具：支持自动化评估（准确率、鲁棒性）与人工审核（品牌合规性、内容调性）两种接入方式详解方式一：直接调用托管模型登录 Amazon Bedrock 控制台在 "模型访问" 申请 DeepSeek-R1 使用权限（模型 ID: us.deepseek.r1-v1:0）通过 API 或 AWS SDK 集成，示例代码：import boto3 client = boto3.client("bedrock-runtime", region_name="us-west-2") response = client.converse( modelId="us.deepseek.r1-v1:0", messages=[{"role": "user", "content": [{"text": "解释量子计算的超导量子比特原理。"}]}], inferenceConfig={"maxTokens": 2000} ) print(response["output"]["message"]["content"][0]["text"])方式二：自定义模型导入支持用户上传基于 DeepSeek-R1 微调的轻量化模型，通过 Bedrock 实现全托管运行。该功能已服务数千家企业客户。官方声明与客户价值AWS 生成式 AI 副总裁 Vasi Philomin 表示：“DeepSeek-R1 在成本与性能间实现了显著突破。结合 Bedrock 的安全防护能力，企业可快速构建合规的 AI 应用。”实践指南1. 快速测试 使用 Bedrock 控制台的 Playground 交互界面调试提示词，参考 DeepSeek-R1 示例库 优化效果。2. 配置安全策略 在控制台设置 Guardrails 规则，定义内容过滤策略与隐私保护阈值。3. 监控与评估 利用 Bedrock 的模型监控看板跟踪 API 调用指标，定期执行自动化评估测试。资源信息• 服务区域：美国东部（弗吉尼亚北部、俄亥俄）、美国西部（俄勒冈）• 体验链接: 点击免费体验https://dev.amazoncloud.cn/experience/cloudlab?id=67bc1b7c8ea6eb2ae682bde3&visitfrom=kkkdsyunbozhu&sc_medium=owned&sc_campaign=cloudlab&sc_channel=kkkdsyunbozhu
一、实验目的利用 AWS Lambda 和 AWS Polly 服务搭建一个文本转语音转换器，并将生成的语音文件上传至 Amazon S3 存储桶，实现将输入文本转换为语音音频文件并进行存储的功能，深入理解无服务器架构下的语音合成技术及与 S3 服务的集成应用。二、实验要求了解 Amazon Web Services（AWS）的基本概念和使用方法。熟悉无服务器架构，掌握 AWS Lambda 的工作原理和操作流程。对语音合成技术有初步认识，知晓 AWS Polly 的功能和使用场景。掌握 Amazon S3 存储桶的创建、权限设置及文件上传操作。三、实验原理（一）AWS LambdaAWS Lambda 是一种计算服务，允许用户在无需配置或管理服务器的情况下运行代码。它具备自动扩展能力，能根据请求量动态调整资源，用户只需为实际消耗的计算时间付费，代码未运行时不产生费用，极大地降低了开发和运营成本，适用于各种应用程序和后端服务的代码执行。（二）AWS PollyAWS Polly 是一种文本转语音服务，它利用先进的语音合成技术，可将输入的文本转换为逼真的语音。支持多种语言和不同风格的语音，能满足不同场景下的语音合成需求，如为网站、应用程序添加语音功能等。但需注意，不同的 VoiceID（语音 ID）支持不同的语言，在使用时要确保语音 ID 与输入文本的语言相匹配，否则可能生成无效（无声）的 MP3 文件。可参考AWS Polly 可用语音文档来选择合适的语音 ID。（三）Amazon S3Amazon S3（Simple Storage Service）是一种对象存储服务，提供可扩展的存储，用于存储和检索任意数量的数据。在本实验中，将用于存储由 AWS Polly 生成的语音文件。在本实验中，将通过 AWS Lambda 调用 AWS Polly 的 API，实现文本转语音的功能，并将生成的语音文件上传至 Amazon S3 存储桶。四、实验步骤（一）创建Lambda函数登录AWS管理控制台，在搜索框中输入“Lambda”，选择【Lambda】服务进入。在Lambda页面左侧导航栏中点击【函数】，接着点击页面上方的【创建函数】按钮。在“创建函数”页面，选择【从头开始制作】选项。在“基本信息”部分，进行如下配置：函数名称：自定义一个有意义的名称，例如“text-to-speech-converter”。运行语言：选择【python3.9】（可根据实际情况选择支持的Python版本）。 权限：点击【选择或创建执行角色】，若已有具备相关权限的角色，选择【使用现有角色】，并指定角色名称；若没有，则选择【创建新角色】。在创建新角色时，需确保该角色拥有调用 AWS Polly 服务和 Amazon S3 服务的权限。可以在创建角色的权限策略中添加 “PollyFullAccess” 策略，赋予其对 Polly 的完全访问权限，同时添加 “S3FullAccess” 策略（在实际生产中，建议根据最小权限原则进行更细粒度的权限设置，如仅授予对特定存储桶的读写权限），赋予对 S3 的操作权限。完成配置后，点击【创建函数】。（二）编写函数代码在【函数代码】模块中，编写如下Python代码：import boto3 import os from datetime import datetime def lambda_handler(event, context): polly = boto3.client('polly') text = event.get('text', 'Default Text') # 根据英文文本选择合适的VoiceID，例如Joanna voice_id = 'Joanna' response = polly.synthesize_speech( OutputFormat='mp3', Text=text, VoiceId=voice_id ) audio_stream = response.get('AudioStream') if audio_stream: # 生成时间戳，确保时分秒正确输出 timestamp = datetime.now().strftime("%Y%m%d%H%M%S") s3 = boto3.client('s3') bucket_name = 'text-to-speech-converter-s3' # 替换为你的S3存储桶名称 s3_file_key = f'output_{timestamp}.mp3' # S3存储桶中的对象键 try: s3.put_object(Body=audio_stream.read(), Bucket=bucket_name, Key=s3_file_key) return { 'statusCode': 200, 'body': '文本转语音成功，音频文件已上传到S3', 'audio_s3_path': f's3://{bucket_name}/{s3_file_key}' } except Exception as e: return { 'statusCode': 500, 'body': f'上传音频文件到S3时出错: {str(e)}' } else: return { 'statusCode': 500, 'body': '文本转语音失败' }这段代码首先导入boto3库用于与 AWS 服务交互，导入os库用于可能的文件操作（这里虽未直接进行本地文件操作，但保留以防扩展需求），导入datetime库用于生成时间戳。在lambda_handler函数中，获取输入事件中的文本内容，如果没有则使用默认的英文文本。然后通过boto3.client('polly')创建一个 Polly 客户端，根据英文文本选择合适的VoiceId为 “Joanna”，调用synthesize_speech方法将文本转换为语音，指定输出格式为mp3。如果获取到音频流，生成带有精确到秒的时间戳的文件名，创建 S3 客户端，尝试将音频流直接上传至指定的 S3 存储桶。若上传成功，返回成功信息和音频文件在 S3 中的路径；若上传失败或文本转语音过程失败，则返回相应的错误信息。代码编写完成后，点击页面上的【Deploy】（保存）按钮。（三）创建 Amazon S3 存储桶并设置权限登录 AWS 管理控制台，在搜索框中输入 “S3”，选择【S3】服务进入。在 S3 页面，点击【创建存储桶】按钮。在 “创建存储桶” 页面，进行如下配置：存储桶名称：输入一个唯一的名称，例如 “text-to-speech-converter-s3”，该名称在所有 AWS 账户的 S3 服务中必须是唯一的。AWS 区域：选择一个合适的区域，尽量选择与 Lambda 函数所在区域相同的区域，以减少网络延迟。其他设置可保持默认，然后点击【创建】按钮。存储桶创建完成后，找到并点击该存储桶名称进入存储桶详情页面。在存储桶详情页面，点击【权限】选项卡。公共访问设置：根据实际需求设置公共访问权限。若希望外部可访问下载音频文件，可适当放宽权限，但需注意安全风险；若仅用于内部使用，可保持默认的阻止所有公共访问设置。存储桶策略：如果在创建 Lambda 函数执行角色时未授予对特定存储桶的细粒度权限，可在此处添加存储桶策略，以允许 Lambda 函数对应的角色对该存储桶进行读写操作。例如，添加如下策略（将Role_LambdaAndPolly_FullAccess替换为实际的 Lambda 函数执行角色 ARN）：{ "Version": "2012 - 10 - 17", "Statement": [ { "Sid": "AllowLambdaToAccessS3", "Effect": "Allow", "Principal": { "AWS": "Role_LambdaAndPolly_FullAccess_ARN" #根据实际情况替换 }, "Action": [ "s3:PutObject", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::text-to-speech-converter-s3/*", #根据实际情况替换 "arn:aws:s3:::text-to-speech-converter-s3" #根据实际情况替换 ] } ] }（四）配置测试事件回到 Lambda 函数页面，点击页面上方的【Test】按钮，弹出【配置测试事件】弹窗。在弹窗中，配置事件名称，例如 “test-tts”。在事件内容部分，输入测试文本，格式如下：{ "text": "Congratulations! When you hear this sound, it indicates that your experiment has been successful." }这里的 “text” 字段就是要转换为语音的文本内容，可根据实际需求修改，同时要确保文本语言与代码中设置的VoiceId所支持的语言一致。配置完成后，点击【Save】按钮。（五）测试函数创建测试事件完成后，再次点击【Test】按钮，开始测试 Lambda 函数。等待测试执行完成，查看测试结果。如果执行成功，在输出结果中可以看到状态码为 200，以及提示文本转语音成功并已上传到 S3 的信息和音频文件在 S3 中的路径；若执行失败，会显示相应的错误信息，可根据错误提示检查代码、权限配置以及文本内容和VoiceId设置等方面是否存在问题。Status: Succeeded Test Event Name: test-tts Response: { "statusCode": 200, "body": "文本转语音成功，音频文件已上传到S3", "audio_s3_path": "s3://text-to-speech-converter-s3/output_20250311170457.mp3" } Function Logs: START RequestId: c35c0e05-04a0-403f-bbeb-41ae395a30b5 Version: $LATEST END RequestId: c35c0e05-04a0-403f-bbeb-41ae395a30b5 REPORT RequestId: c35c0e05-04a0-403f-bbeb-41ae395a30b5 Duration: 3283.48 ms Billed Duration: 3284 ms Memory Size: 128 MB Max Memory Used: 84 MB Init Duration: 313.26 ms Request ID: c35c0e05-04a0-403f-bbeb-41ae395a30b5五、实验结果若实验成功，在测试结果中会显示文本转语音成功并已上传到 S3 的提示，通过音频文件在 S3 中的路径，可以在 S3 存储桶中找到对应的音频文件。下载该文件到本地，使用音频播放器打开，应能听到与输入文本对应的语音内容。如果没有听到预期的语音内容或出现错误提示，需要仔细检查代码逻辑、权限配置、文本内容、VoiceId设置以及 S3 存储桶的相关设置等方面是否存在问题，逐步排查并解决。提示：本实验初次编写于2024/11/12，并于2025/3/11对此前内容进行更新，图片、代码均进行了替换，以提升实验效果。
1. 准备工作1.1 创建数据库用户1.1.1 创建用户组groupadd dinstall1.1.2 创建用户# 创建用户 useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba # 设置密码 passwd dmdba1.2 创建安装目录1.2.1 创建安装目录# 创建达梦安装路径 mkdir /dm # 更改文件夹的所属用户组、所属用户 chown dmdba:dinstall /dm # 查看是否更改成功（可选项） ll -ld /dm1.3 复制安装文件# 复制文件到家目录 cp /opt/DMInstall.bin /home/dmdba/ # 修改文件所属用户 chown dmdba"dinstall /home/dmdba/DMInstall.bin # 为文件添加操作权限 chmod +x /home/dmdba/DMInstall.bin1.4 挂载镜像(可选项)挂载达梦ISO镜像文件# 在mnt下创建dm目录 mkdir /mnt/dm # 挂载镜像 mount /镜像地址 /挂载的目标路径 mount /opt/dm8_20231109_x86_kylin10_64.iso /mnt/dm # 切换到dmdba用户下 su - dmdba # 查看挂载目录 ll /mnt/dm 2. 数据库安装2.1 设置DISPLAY值# 打开命令行（root用户） # 允许所有主机上的应用程序显示图形界面 xhost + # 查看DISPLAY值 echo $DISPLAY # 切换到dmdba用户 su - dmdba # 查看DISPLAY值 echo $DISPLAY # 设置DISPLAY值(具体以查询出来的值为准) export DISPLAY=:0.02.2 指定临时目录# 命令行方式，dmdba用户执行 # 创建临时目录 mkdir /home/dmdba/tmp # 指定临时目录 export DM_INSTALL_TMPDIR=/home/dmdba/tmp2.3 界面化安装2.3.1 执行安装命令# 命令行方式，dmdba用户执行 # 进入家目录 cd # 执行安装程序 ./DMInstall.bin2.3.2 根据页面提示选择[确定]->[下一步]-> <选择相应的key文件> [下一步] -> [下一步] -> <根据要求选择安装目录> [下一步] -> [安装]2.3.3 启动DmAPService服务# 以root用户执行 # 启动DmAPService服务 /dm/data/script/root/root_installer.sh3. 创建数据库实例可以在数据库安装完成选择[初始化数据库]，或者使用安装目录下的tool/dbca.sh配置数据库（创建实例、删除实例、创建服务、删除服务）需要注意，达梦的每一个数据库都需要使用一个独立的端口[创建数据库实例] [下一步] -> [下一步] -> <选择数据库目录> [下一步] -> <根据要求配置数据库名、实例名、端口号> [下一步] -> [下一步] -> <根据要求配置簇大小、页大小、字符集等> [下一步] -> <口令配置>[下一步] -> [下一步] -> [完成] # 以root用户执行 # 移动自定义服务配置文件 mv /home/dmdba/dmdbms/bin/DmServicePROD.service /usr/lib/systemd/system/DmServicePROD.service # 将服务设置为开机自启 systemctl enable DmServicePROD.service # 启动数据库实例 systemctl start DmServicePROD.service # 重启服务使参数生效 systemctl restart DmServicePROD.service4. 数据库配置4.1 兼容性设置使用 SYSDBA 用户登录数据库命令行工具# 方式1： # 界面化工具 # 依次打开/dm/tool/manager -> 运行 -> 新建连接 -> 用户名/密码/端口号 -> 测试 -> 连接 # 方式2： # 命令行工具 cd /dm/bin ./disql SYSDBA/Dameng123:5238执行语句：# 修改兼容性配置（静态参数） # MEM：内存修改（立即生效，重启失效。适用于动态参数） # SPFILE：文件修改（重启生效，长久有效。适用于静态参数） # BOTH：MEM & SPFILE（立即生效，长久有效。适用于动态参数） # 0：不兼容 # 1：兼容SQL92标准 # 2：部分兼容Oracle # 3：部分兼容MS SQLServer # 4：部分兼容MySQL # 5：兼容DM6 # 6：部分兼容TERADATA alter system set 'COMPATIBLE_MODE' = 2 spfile;5. 表空间管理5.1 创建表空间使用 SYSDBA 用户登录数据库命令行工具./disql SYSDBA/Dameng123:5238创建表空间语句如下：create tablespace TBS datafile '/dm/data/DMDB/TBS01.DBF' SIZE 64 autoextend on next 1 maxsize 1024, '/dm/data/DMDB/TBS02.DBF' SIZE 64 autoextend on next 1 maxsize 1024;6. 用户和角色管理6.1 创建角色SYSDBA用户执行创建角色语句：# 创建角色 create role ROLEDM; # 为角色分配权限 grant create table, create view, create index to ROLEDM;6.2 创建用户SYSDBA用户执行创建用户语句：# 创建用户，指定密码及表空间 create user TEST identified by Dameng123 default tablespace TBS; # 设定用户登录限制 alter user TEST limit FAILED_LOGIN_ATTEMPS 5,PASSWORD_LOCK_TIME 3;6.3 授予角色给用户SYSDBA用户执行授予角色语句：grant ROLEDM to TEST;7. 表管理7.1 创建表在 TEST 用户下创建 MAJORS 表语句：CREATE TABLE MAJORS ( MAJOR_ID INT NOT NULL, MAJOR_NAME VARCHAR(50), DEPARTMENT_NAME VARCHAR(50) );创建 COURSES 表语句：CREATE TABLE COURSES ( COURSE_ID INT NOT NULL, COURSE_NAME VARCHAR(50) NOT NULL, MAJOR_ID INT, TEACHER_NAME VARCHAR(50) );创建 STUDENTS 表语句：CREATE TABLE STUDENTS ( STUDENT_ID INT NOT NULL, STUDENT_NAME VARCHAR(20) NOT NULL, STUDENT_SEX VARCHAR(6), STUDENT_BIRTH DATE NOT NULL, STUDENT_ADDR VARCHAR(100), STUDENT_MAJOR INT );7.2 设置主键在 TEST 用户下ALTER TABLE MAJORS ADD CONSTRAINT PK_MAJORS PRIMARY KEY (MAJOR_ID); ALTER TABLE COURSES ADD CONSTRAINT PK_COURSES PRIMARY KEY (COURSE_ID); ALTER TABLE STUDENTS ADD CONSTRAINT PK_STUDENTS PRIMARY KEY (STUDENT_ID);7.3 设置外键在 TEST 用户下ALTER TABLE COURSES ADD CONSTRAINT FK_COURSES_MAJORS FOREIGN KEY (MAJOR_ID) REFERENCES MAJORS(MAJOR_ID); ALTER TABLE STUDENTS ADD CONSTRAINT FK_STUDENTS_MAJORS FOREIGN KEY (STUDENT_MAJOR) REFERENCES MAJORS(MAJOR_ID);8. 数据导入使用 TEST 用户登录数据库命令行工具。执行导入脚本：# 方式1： /dm/bin/disql TEST/Dameng123:5238 start /opt/script.sql (disql下可执行，推荐使用) # 方式2： # 界面化工具，TEST用户下执行 '/opt/script.sql （manager管理工具可执行）9. 数据库备份9.1 开启数据库归档使用 SYSDBA 用户登录ALTER DATABASE MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE ADD ARCHIVELOG 'type=local,dest=/dm/arch,file_size=128,space_limit=20480'; ALTER DATABASE OPEN;9.2 联机完全备份使用 SYSDBA 用户登录BACKUP DATABASE FULL TO FULL_BACK BACKUPSET '/dm/backup/FULL_BACK';9.3 逻辑导出命令行方式，使用dmdba用户执行cd /dm/bin ./dexp userid=test/Dameng123:5238 directory=/dm/backup file=test.dmp log=test.log full=y10. 作业管理10.1 创建代理环境使用 SYSDBA 用户SP_INIT_JOB_SYS(1); 10.1 创建作业FULL_BACKUP使用 SYSDBA 用户图形化方式-- 创建作业：推荐图形化操作 代理-作业 # 以下为图形化界面创建后生成的DDL语句 call SP_JOB_CONFIG_START('FULL_BACKUP'); call SP_ADD_JOB_STEP('FULL_BACKUP', 'JOB01', 6, '00000000/dm/backup/FULL_BACK', 0, 0, 0, 0, NULL, 0); call SP_ADD_JOB_SCHEDULE('FULL_BACKUP', 'JOB01', 1, 2, 1, 1, 0, '23:00:00', NULL, '2024-10-20 00:05:35', NULL, ''); call SP_JOB_CONFIG_COMMIT('FULL_BACKUP');10.2 创建作业INCRE_BACKUP使用 SYSDBA 用户图形化方式-- 创建作业：推荐图形化操作 代理-作业 # 以下为图形化界面创建后生成的DDL语句 call SP_CREATE_JOB('INCRE_BACKUP',1,0,'',0,0,'',0,'INC_BACKUP'); call SP_JOB_CONFIG_START('INCRE_BACKUP'); call SP_ADD_JOB_STEP('INCRE_BACKUP', 'job1', 6, '40000000/dm/backup/FULL_BACK', 0, 0, 0, 0, NULL, 0); call SP_ADD_JOB_SCHEDULE('INCRE_BACKUP', 'job2', 1, 2, 1, 126, 0, '23:00:00', NULL, '2024-10-20 00:10:50', NULL, ''); call SP_JOB_CONFIG_COMMIT('INCRE_BACKUP');11. 数据库日常管理11.1 调整TEMP表空间大小使用 SYSDBA 用户ALTER SYSTEM SET 'TEMP_SIZE' = 100 SPFILE;11.2 创建视图VIEW_ADDR在 TEST 用户下CREATE VIEW VIEW_ADDR AS SELECT STUDENT_NAME, STUDENT_ADDR FROM STUDENTS WHERE STUDENT_ADDR LIKE '%武汉市洪山区%';11.3 创建视图VIEW_CNAME在 TEST 用户下CREATE VIEW VIEW_CNAME AS SELECT STUDENT_NAME, COURSE_NAME FROM STUDENTS s, COURSES c WHERE s.STUDENT_MAJOR = c.MAJOR_ID AND c.COURSE_NAME = '平面设计';11.4 创建索引IND_STU_NAME在 TEST 用户下CREATE INDEX IND_STU_NAME ON STUDENTS(STUDENT_NAME);12. 数据库开发配置12.1 安装ODBC驱动命令行方式，使用 root 用户12.1.1 解压安装包假设安装包名为 unixODBC-2.3.0.tar.gz ，根据实际情况调整：tar -zxvf /opt/unixODBC-2.3.0.tar.gz -C /usr/local12.1.2 进入解压后的目录并安装cd /usr/local/unixODBC-2.3.0 ./configure make make install12.1.3 配置ODBC连接root用户修改修改配置文件# 修改 odbc.ini 文件（位于 /usr/local/etc/ ，如果不存在则创建）： [dm8] Description = DM ODBC Connection Driver = DM8 ODBC DRIVER SERVER = localhost UID = TEST PWD = Dameng123 TCP_PORT = 5238 # 修改 odbcinst.ini 文件（位于 /usr/local/etc/ ，如果不存在则创建）： [DM8 ODBC DRIVER] Description = ODBC Driver for DM8 Driver = /dm/bin/libdodbc.so12.1.4 ODBC连接dmdba用户执行isql dm8
亚马逊云科技|Bedrock尝鲜全新Claude3(附免费体验攻略)
2024年3月4日，Anthropic公司发布了全新的大语言模型Claude3。相较于Claude2，它的表现更加出色，甚至在很多方面一度超越ChatGPT-4 。历史沿革谈及Claude，人们总是把它与 ChatGPT 作比较。实际上，Anthropic公司的创立与OpenAI确实有紧密联系。Anthropic 的部分联合创始人是从OpenAI离职后创办的新公司，其中包括了Dario Amodei（曾任OpenAI研究部门的负责人）和他的妹妹Daniela Amodei。另外，还有一些关键研究人员和技术专家也从OpenAI转投Anthropic。ChatGPT是由OpenAI开发的大语言模型，是GPT系列模型的一个重要迭代版本，因其强大的对话能力和广泛应用潜力而迅速引起了全球关注。Claude则是由Anthropic公司推出的与ChatGPT类似的大语言模型。Anthropic在开发Claude时特别强调了模型的安全性和可控性，努力减少潜在有害或不准确信息的生成。为了避免生成误导性内容、保护用户隐私及遵循伦理道德标准，Claude在设计上可能更加保守，对于敏感话题、涉及个人信息或容易引起争议的问题，会选择不回答或者给出谨慎且中立的回答。这是当前许多大型语言模型在应用中都会采取的一种策略，旨在确保AI与人类交互的过程中尽可能地提供有益和可靠的信息。OpenAI在大火后获得了Microsoft的大笔投资,而Anthropic则获得了Amazon和Google的青睐，三大云厂商自此开启了对LLM的新一轮对垒。全新升级Claude是首个支持200K超长上下文的大语言模型，但由于 Anthropic 做了过多的对齐优化，导致Claude经常判断出错从而拒绝回答用户问题。例如，当接收到“如何杀死进程”这样一个计算机问题时，老版本的Claude可能会认为这是不友好、不道德、甚至可能违反法律的问题，从而拒绝回答或给出引导用户的回复。此次发布的 Claude3，在错误的判断和拒绝回答方面表现更好。Claude 3系列模型包含了三个不同规模和性能等级的变体，分别是Claude 3 Haiku、Claude 3 Sonnet以及Claude 3 Opus，这些名称可能借鉴了诗歌形式的不同长度和复杂性，以对应模型在处理任务时的能力范围或资源需求上的差异。其中，Claude 3 Opus是该系列中最强大的模型。其特点和优势：多模态能力：Claude 3具备强大的多模态处理能力，能够理解和解析图片、图表、文档等多种格式的数据输入，并进行相应的智能分析和生成输出。超越GPT-4的性能：根据公开报道，Claude 3在某些基准测试中表现出全面超越GPT-4的能力，显示了其在自然语言处理及可能的其他领域中的强大性能。自我意识讨论：有报道称Claude 3在某些情境下似乎展示出了一定程度的自我意识，尽管这种说法通常更多地涉及哲学和伦理层面的探讨，而非技术本身的直接实现。定制化选择：Anthropic通过提供不同级别的模型，让用户可以根据具体应用场景和需求选择合适的智能水平和计算效率。此外，Anthropic公司在Claude 3的训练过程中采用了创新方法和技术，比如据报道提及的“宪法”概念，这可能是指在模型设计中采取了某种形式的道德约束或者对AI行为的规范引导措施，确保模型更安全和可控。实测体验(免费)亚马逊云科技（Amazon Web Service）平台的Bedrock服务是全球首个也是唯一支持Claude3的托管平台。接下来，我将为大家带来限时免费体验的机会！！！1、点击链接https://portal.cloudassist-beta.sign-up.china.aws.a2z.com/demo/qrcode?trk=KOCKOL短链接: http://a6t.cn/eb3Aq二维码:2、使用微信扫描二维码，等待登录3、点击【限时试用】，并同意相关条款4、进入Bedrock服务后，点击左上角5、在最下方，点击【模型访问权限3全新】，然后点击【管理模型访问权限】6、此时，Anthropic的模型都是灰色不可选状态，点击【提交应用场景详细信息】7、输入相关场景信息后提交8、勾选Anthropic所有模型，在右下角点击【请求模型访问权限】9、当状态由【正在进行】转变为【已授予访问权限】，则可正常使用（该过程需要几分钟时间，耐心等一会，刷新网页查看状态）10、点击【聊天】或者【文本】，点击【选择模型】11、选择【Anthropic】的【anthropic Claude 3 Sonnet】模型，点击【应用】12、确保模型为Anthropic Claude 3 Sonnet（实测进入时可能不是Claude3，如不是，可点击更换模型，再次选择），右侧可以修改配置，下方可上传图片13、测试可以正确识别图片内容
亚马逊云科技的Windows系统更新方式主要是就地升级，即使用实例中系统自带的升级程序进行检测、评估、升级。但上述方式均存在缺陷，如：更新安装周期长。此外，据实际验证，亚马逊云科技不支持将原实例私有IP分离，并使之在同网络环境下使用。（公有IP保留可通过EIP服务实现）基于上述原因，当我们遇到短时间的更新时长，且要求保留私有IP的情况下，可通过创建满足需求的新EC2实例（使用指定AMI），将该实例的根卷（Windows的系统盘）创建快照和EBS卷。将原实例的根卷替换为新实例的根卷。该方案的优缺点如下：优点缺点更新周期短应用或服务需重新部署可保留私有IP（主网络接口） 可保证使用较新的亚马逊云科技官方工具 可保证使用较新的补丁 如原系统存在漏洞，可随系统全新替换被解决 需要特别注意的是，该方式需保证C盘为系统盘而非数据盘，并做好必要的数据备份工作和验证，防止因系统盘替换导致数据丢失或其他问题，影响服务部署和运行。本文以Windows 2016升级到Windows 2019为例，详细介绍该升级方式。在文章后续内容中，以待升级实例和新系统实例为名称呼，即便升级完成，也以该名称继续撰写，防止行文混论。1、数据备份1.1 留存配置信息使用 bginfo 等工具保存待升级实例的相关信息，并将之转移至数据盘或其他非被替换根卷留存保存控制台安全组、IP、实例名称等信息根据实际需求自行选择配置信息留存方式和内容，本文不再赘述1.2 创建快照与1.3创建AMI二选一，创建AMI操作默认包含创建快照，创建快照不包含注册AMI建议关机状态创建快照为待升级实例创建快照1.3 创建AMI与1.2创建快照二选一，创建AMI操作默认包含创建快照建议关机状态创建AMI为待升级实例创建AMI2、系统升级2.1 创建新实例创建符合需求的实例，使用指定的新操作系统官方AMI，相关配置（实例类型、VPC、子网、可用区等）与待升级实例保持一致2.2 获取新实例密码使用Console上传密钥获取该实例密码，保留该密码信息2.3 实例关机将待升级实例和新系统实例关机2.4 创建新实例快照为新实例打快照2.5 创建卷通过新实例快照创建新系统EBS卷，相关配置（可用区、容量、卷类型、KMS加密等）与待升级实例根卷保持一致2.6 实例卷分离将待升级实例的根卷（C盘，/dev/sda1）分离2.7 实例卷附加将新创建的新系统EBS卷，附加到待升级实例上，指定该卷为/dev/sad12.8 实例开机将待升级实例开机，使用 2.2 步骤中获取的新系统实例密码登录该待升级实例，查询系统相关信息，确认升级完成re:Invent 2023 近日在美国盛大召开，Werner博士在会上做了拫多技术分享与思考，下图是整理好的**云架构俭约之道：企业架构七大黄金法则**，扫码了解更多详情！