示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载本文基于aws-doc-sdk-examples仓库中的 aws-cli/bash-linux/dynamodb/README.md 及其配套脚本系统讲解如何用 AWS CLIv2配合 Bash 脚本完成 DynamoDB 的建表、增删改查、批量读写、查询与扫描等全部核心操作。通过阅读本文你将掌握一套可直接复用、带统一参数校验与错误处理的 Bash 函数库并能运行一个覆盖 DynamoDB 主要 API 的电影数据完整场景。概览Bash AWS CLI 操作 DynamoDBAmazon DynamoDB 是一种全托管的 NoSQL 数据库服务以快速、可预测的性能和无缝的可扩展性著称。在aws-cli目录下仓库提供了使用AWS CLI版本 2配合 Bash 脚本与 DynamoDB 交互的完整示例集合包含两种形态Single actions单操作函数封装在 dynamodb_operations.sh 中的 12 个独立 Bash 函数每个函数封装一个aws dynamodb子命令支持参数校验、统一错误码处理Basics基础场景scenario_getting_started_movies.sh 中的dynamodb_getting_started_movies函数把上述单操作串联成一个带交互提示的完整工作流。所有示例脚本均以 Apache-2.0 许可证发布并在脚本头部标注了 AWS CLI 安装文档入口https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html。运行前提与注意事项环境准备运行这些示例前需要满足以下条件详见 aws-cli/README.md在机器上安装并配置好AWS CLI 版本 2准备好共享凭据文件shared credentials file其中包含有效的 AWS 访问密钥脚本通过source ./awsdocs_general.sh引入通用工具函数如errecho、iecho、aws_cli_error_log因此运行前必须保证awsdocs_general.sh与脚本位于同一目录。重要提醒仓库在 README 中明确提示了以下使用注意事项运行示例代码可能产生 AWS 账户费用包括运行测试脚本建议先了解 AWS Pricing 与 Free Tier推荐遵循最小权限原则为代码授予完成任务所需的最低 IAM 权限示例代码并未在全部 AWS 区域测试过跨区域使用时需自行验证。单操作函数库dynamodb_operations.sh 源码剖析dynamodb_operations.sh共 1053 行是整个示例的核心定义了 12 个被 README 索引的单操作函数。每个函数都遵循统一的设计模式使用getopts解析短参数、对必填参数做空值校验、调用对应aws dynamodb子命令并在失败时通过aws_cli_error_log记录错误码、通过errecho输出错误信息最后返回 0成功或 1失败。下表汇总了 README 索引的全部操作及源码位置操作README 索引行号对应函数封装的 AWS CLI 命令CreateTableL17dynamodb_create_tableaws dynamodb create-tableDescribeTableL173dynamodb_describe_tableaws dynamodb describe-tablePutItemL247dynamodb_put_itemaws dynamodb put-itemUpdateItemL328dynamodb_update_itemaws dynamodb update-itemGetItemL429dynamodb_get_itemaws dynamodb get-itemDeleteItemL525dynamodb_delete_itemaws dynamodb delete-itemQueryL604dynamodb_queryaws dynamodb queryScanL714dynamodb_scanaws dynamodb scanBatchWriteItemL824dynamodb_batch_write_itemaws dynamodb batch-write-itemBatchGetItemL892dynamodb_batch_get_itemaws dynamodb batch-get-itemListTablesL959dynamodb_list_tablesaws dynamodb list-tablesDeleteTableL988dynamodb_delete_tableaws dynamodb delete-table此外还有未被 README 索引、但被场景和测试大量使用的辅助函数dynamodb_wait_table_activeL121它封装了aws dynamodb wait table-exists用于轮询等待表进入 ACTIVE 状态。建表dynamodb_create_tabledynamodb_create_table接受三个参数-n表名、-a属性定义 JSON 文件路径、-k键 schema JSON 文件路径并通过--billing-mode PAY_PER_REQUEST创建按量计费的表。核心调用如下response$(aws dynamodb create-table \ --table-name $table_name \ --attribute-definitions file://$attribute_definitions \ --billing-mode PAY_PER_REQUEST \ --key-schema file://$key_schema )参数说明--attribute-definitions描述表内属性的名称与数据类型取值S字符串、N数字、B二进制等--key-schema定义主键属性及其类型HASH为分区键、RANGE为排序键--billing-mode PAY_PER_REQUEST按量计费模式无需预先配置读写容量。读取与写入PutItem / GetItem / UpdateItem / DeleteItemPutItemL261-n表名、-i指向包含完整条目值的 JSON 文件通过--item file://...提交。UpdateItemL345是参数最丰富的函数之一需要四个参数参数含义-n表名-k标识待更新条目的键 JSON 文件-e更新表达式如SET info.rating :r, info.plot :p-v表达式属性值 JSON 文件如{:r: {N:8}, :p: {S:...}}GetItemL446支持可选参数-q传入 JMESPath 查询表达式只返回需要的字段源码中还对 JMESPath 在部分字符串上插入的制表符做了sed /^\t/s/\t//1清理保证输出整洁。DeleteItemL539-n表名、-k键 JSON 文件即可删除指定条目。查询与扫描Query / ScanQueryL623用于按分区键条件高效查询参数包括-k键条件表达式如#n:v-a表达式属性名 JSON 文件将保留字/长属性名映射为占位符如{#n: year}-v表达式属性值 JSON 文件-p可选投影表达式仅返回指定字段。ScanL733用于全表扫描参数为-f过滤表达式如#n BETWEEN :v1 AND :v2、-a、-v以及可选的-p。从源码结构看Query 与 Scan 的差异主要在于Query 走分区键索引key condition expressionScan 则对全表做过滤filter expression——这正是 DynamoDB 中两者最重要的语义区别。批量操作与表管理BatchWriteItemL837-i指向 JSON 文件结构为{ 表名: [ {PutRequest: {Item: {...}}}, ... ] }一次可写入最多 25 个条目BatchGetItemL907-i指向 JSON 文件结构为{ 表名: { Keys: [ {...}, ... ] } }一次读取多个条目ListTablesL969输出全部表名并用tr -s [:space:] \n将文本结果转成每行一个表名DeleteTableL1001按表名删除表。通用工具脚本 awsdocs_general.shdocs_general.sh 提供了三个被所有脚本复用的基础函数errecho向 STDERR 输出信息用于错误提示iecho仅当全局变量VERBOSEtrue时输出用于调试信息aws_cli_error_log将 AWS CLI 返回码翻译为可读错误1传输失败、2命令行解析失败、130SIGINT、252语法无效、253环境/配置无效、254服务返回错误、255兜底错误另有generate_random_name、ipause等辅助函数用于生成随机测试名、交互暂停。基础场景实战电影数据完整工作流场景覆盖的操作scenario_getting_started_movies.sh 中的dynamodb_getting_started_movies函数L44演示了一个端到端流程脚本头部注释明确列出了 9 个步骤创建分区键为year、排序键为title的表CreateTable添加一部新电影PutItem使用更新表达式修改电影的评分和剧情UpdateItem从movie_files目录的 JSON 文件批量写入 150 条电影数据BatchWriteItem按主键分区键 排序键获取电影GetItem用键条件表达式查询某年上映的全部电影Query用 Scan 查询某年份区间上映的电影Scan删除一部电影DeleteItem删除表DeleteTable。交互式输入与动态 JSON 生成该场景不是写死数据而是通过一组交互函数从命令行读取用户输入get_input读取普通字符串get_int_input读取整数支持上下限校验如年份限定在 1972–2018get_float_input读取浮点数通过bc -l做数值范围校验如评分限定在 1–10get_yes_no_input读取 y/n 确认。脚本会在运行过程中动态生成所需的 JSON 文件。例如新增电影时生成{ year: {N: 1979}, title: {S: Frogs}, info: {M: {plot: {S: Croak}, rating: {N: 1}}} }更新电影时键文件与属性值文件分离# 键文件 movie_key.json {year: {N: 1979}, title: {S: Frogs}} # 属性值文件 {:r: {N: 2}, :p: {S: Hop}} # 更新表达式 SET info.rating :r, info.plot :p查询某年电影时使用表达式属性名与属性值占位符# attribute_names.json {#n: year} # attribute_values.json {:v: {N: 1979}} # 键条件表达式 #n:v扫描年份区间时则生成#n BETWEEN :v1 AND :v2形式的过滤表达式其中:v1、:v2分别为区间起止年份。批量数据文件movie_files目录下共有 6 个 JSON 文件movies_0.json~movies_5.json每个文件内含若干PutRequest条目共 150 条电影数据。脚本用for batch_json in movie_files/movies_*.json循环将每个文件包装成{ 表名 : 文件内容 }结构后调用dynamodb_batch_write_item分批写入。例如 movies_0.json 中包含 2013 年上映的 Rush 等影片条目格式为{ PutRequest: { Item: { year: {N: 2013}, title: {S: Rush}, info: {M: {rating: {N: 8.3}, plot: {S: ...}}} } } }清理与健壮性设计场景在每个步骤失败时都会调用clean_upL338做资源回收删除已创建的表并清理所有临时生成的 JSON 文件。脚本通过if [[ ${BASH_SOURCE[0]} ${0} ]]判断是否作为主脚本直接执行保证被source时不会自动运行。运行示例与测试运行电影场景在aws-cli/bash-linux/dynamodb目录下直接执行bash scenario_getting_started_movies.sh脚本会依次提示输入表名、电影标题、上映年份、评分、剧情等随后自动完成建表、写入、更新、批量导入、查询、扫描、删除的完整演示。README 说明该场景演示了以下能力README L71-L78创建可存放电影数据的表在表中写入、读取并更新单部电影从示例 JSON 文件将电影数据批量写入表查询某一年份上映的电影扫描某一区间年份上映的电影删除电影条目并删除表。运行测试仓库为所有 DynamoDB 示例提供了集成测试脚本 tests/test_dynamodb_examples.sh测试说明见 aws-cli/README.md。注意运行测试同样可能产生 AWS 账户费用。测试脚本的工作方式与要点通过-i参数进入交互模式每步暂停、便于在控制台观察-v参数开启详细输出run_test定义在 tests/include_tests.sh执行命令并校验返回码与期望输出覆盖全部 12 个单操作函数例如缺参建表应失败期望错误码 1、正常建表成功错误码 0、describe-table返回ACTIVE状态、表名出现在list-tables结果中、带/不带投影表达式的 Query 与 Scan、含 3 个键的 BatchGetItem 等最后通过mock_input_array环境变量模拟交互输入表名testcli_scenario、电影 Frogs、年份 1979、评分 1、剧情 Croak 等 14 个应答驱动完整电影场景自动运行测试结束后删除临时 JSON 文件与测试表若中途失败脚本会警告可能存在残留资源需要手动清理。小结aws-cli/bash-linux/dynamodb是一套结构清晰的 AWS CLI Bash 示例12 个单操作函数构成了可复用的 DynamoDB 操作层统一的参数校验与错误码处理保证了脚本的健壮性交互式电影场景则将全部 API 串联成贴近真实使用的完整工作流配套测试脚本让每个函数的行为都有自动化验证。对于希望在 Shell 环境中脚本化操作 DynamoDB 的开发者这套示例既是可直接调用的工具库也是学习aws dynamodb子命令参数组织方式的绝佳参考。进一步阅读aws-cli 目录总览环境准备与测试运行说明、DynamoDB 开发指南与 API 参考README 中列出的官方文档入口。赞分享示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载相关推荐使用Python操作Amazon DynamoDB电影数据管理实战教程使用Python操作Amazon DynamoDB电影数据管理实战教程 Amazon DynamoDB是一种完全托管的NoSQL数据库服务提供快速且可预测的示例工程教程后端Bash集合操作实战从基础到高级操作详解Bash集合操作实战从基础到高级操作详解 还在为Bash中的集合操作而头疼面对数组、关联数组和各种集合运算时感到无从下手本文将为你彻底解决Bash集合操作示例工程Cilium 发布管理特性发布周期与 Backport 回迁全流程实操Cilium 发布管理特性发布周期与 Backport 回迁全流程实操 本文基于 Cilium 官方文档 发布管理章节 https://link.gitcod示例工程教程后端上一篇Apache 2.0开源协议详解GPT-NeoXT-Chat-Base-20B的允许用途与滥用红线一文看懂下一篇KubeDiagrams在监控系统中的应用Kube Prometheus Stack完整解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
行情波动 品质不变 金士顿高速固态硬盘系列 2026年AI产业迎来全面爆发,算力中心扩建、AI终端设备迭代升级,带动全球NAND闪存产能需求持续走高,存储行业迎来新一轮上行周期。伴随消费、商用、工控、数据中心全领域固态硬盘需求的扩张,存储市场供需紧张、行情普涨,… · 2026/9/24 17:14:27
jmeter录屏 一、引言
使用 JMeter 进行性能测试时,录制脚本是获取业务请求流程的常用方法。本文将详细介绍如何利用 JMeter 自带的 HTTP 代理服务器功能来录制脚本。这种方法稳定、跨平台,是当前的主流选择。说明:早期常用的 Badboy 工具已停止维护&… · 2026/9/24 17:14:21
scrcpy 完整指南:安卓手机投屏到电脑,免安装免Root全掌控 scrcpy 完整指南:安卓手机投屏到电脑,免安装免Root全掌控 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy
scrcpy 是一款免费开源的安卓投屏工具,能把手机… · 2026/9/24 17:14:21
基础OJ第二天:吃透04-06题,避开多组输入与格式陷阱 走出新手村的第一步,往往不是会写代码,而是会读题。第二天继续推进基础OJ的04到06题,这个节奏其实非常关键。很多人第一天兴致勃勃刷了前三题,第二天一上来看见题目变长、格式复杂就直接卡住,心态崩一大半。这个阶段真… · 2026/9/24 19:35:10
MySQL CONVERT函数实战:类型转换、隐式转换与索引失效全攻略 在MySQL里做开发,类型转换是躲不开的活儿。不管是接外部接口、清洗历史数据,还是写报表SQL,总会遇到“明明字段看着是数字,一排序就变成1、10、2”这种糟心事。这时候很多人第一个想到的是CONVERT函数,但真用起来又容易… · 2026/9/24 19:35:10
掌握ROC曲线与PR曲线:分类模型评估关键技巧全解析 1. 从一次模型评估翻车说起:为什么单看准确率远远不够 我印象特别深,有次给一个信贷风控模型做评测,测试集里坏样本只有3%。模型跑完,准确率98.7%,当时团队里有人差点直接拍板上线。后来我们把预测结果拉出来一看&… · 2026/9/24 19:35:10
亚马逊SIOC认证全解析:从包装测试到数字备案实战指南 1. SIOC不是新概念,而是亚马逊物流体系里藏得最深的“通关文牒”你刚在卖家后台点开一个新品链接,准备上架,系统突然弹出红色警告:“SIOC未通过,无法启用原包装直发(FBA Ship-in-Own-Container)… · 2026/9/24 19:35:10
需求评审中多问一句:从表面诉求挖出真实业务价值 最近一次需求评审会上,业务方提了一个客户管理模块的需求,理由是“方便销售跟进”。负责分析的同学多问了一句:“方便销售跟进,然后呢?”现场安静了几秒。有人说:“销售就不会漏单了。”再问:“… · 2026/9/24 19:35:10
GTA5 460报错排查:GPU TDR与D3D初始化失败的完整修复指南 1. 先别急着翻论坛,460报错的真实来源藏在系统日志里大概半年前,我遇到GTA5启动没几分钟就弹ERR_GFX_D3D_INIT的460报错,画面一黑、驱动停止响应,然后被踢回桌面。那时候我和大多数人一样,第一反应就是去贴吧、论坛一页… · 2026/9/24 19:35:04
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44