用途:本技能面向使用 AWS SDK for Swift(aws-sdk-swift 包)编写 Swift 代码调用 AWS 服务的场景,提供开发模式与用法要点。
主要能力与要点:
- 异步代码结构:SDK 操作均为 async,建议使用 @main 入口,在 static func main() async throws 中创建客户端并执行异步操作。
- 配置类型:强调不要使用已弃用的 S3ClientConfiguration、DynamoDBClientConfiguration 等类,而应使用结构体配置,如 S3Client.S3ClientConfig、DynamoDBClient.DynamoDBClientConfig、STSClient.STSClientConfig。配置参数必须按声明顺序传入,且创建配置时 region 为必填项。
- 客户端创建:统一模式为 <Service>Client 搭配 <Service>Client.<Service>ClientConfig;请求/响应中的模型类型命名空间为 <Service>ClientTypes,如 S3ClientTypes.Bucket、DynamoDBClientTypes.AttributeValue、CloudWatchClientTypes.MetricDatum。可省略 region 自动探测,或指定 region、传入 config。常见 config 参数包括 awsCredentialIdentityResolver、useFIPS、useDualStack、awsRetryMode(.adaptive/.standard/.legacy)、maxAttempts、region、httpClientEngine(需 HttpClientConfiguration 参数)、endpoint。服务专属配置与准确参数顺序需查看 SDK 中对应 <Service>Client.swift 源码。
- 凭证解析器:使用 AWSSDKIdentity 与 SmithyIdentity,可用 AWSCredentialIdentity 配合 StaticAWSCredentialIdentityResolver 传静态凭证;Assume role 需通过 STSAssumeRoleAWSCredentialIdentityResolver 并提供底层解析器、roleArn 与 sessionName,再放入 config。
- 等待器:导入 SmithyWaitersAPI,WaiterOptions 需提供 maxWaitTime,例如调用 waitUntilBucketExists 等待存储桶存在。
- 分页:使用如 listObjectsV2Paginated 的异步序列逐页遍历结果。
- 预签名 URL:可调用 presignedURLForGetObject 并指定 expiration。
- 常见操作:putObject、getObject(通过 output.body?.readData() 读取数据)、listBuckets 等。
使用方式:按技能给出的模式组织 Swift 代码,导入对应服务模块(如 AWSS3、AWSDynamoDB、AWSSDKIdentity、SmithyIdentity、SmithyWaitersAPI、ClientRuntime),创建客户端后调用异步 API。
限制:资料未提供该技能的安装步骤、收费标准、支持平台或运行环境要求,这些信息暂未提供;具体服务配置选项与参数顺序以 SDK 源码为准。