概要
本題の通りaws-sdk-ios-spmを使用してKinesisにデータを送る方法を紹介したいと思います。
spmと付いているのでお察しの方もいると思いますが今回はSwift Package Managerにて導入し、使用していきたいと思います。
使用するSDKは以下のものです。
環境
この記事は以下のバージョン環境のもと作成されたものです。
【Xcode】14.2
【iOS】16.2
【macOS】Ventuta
aws-sdk-ios-spmを導入する
今回Kinesisにデータを送る為に以下の手順で必要なSDKを導入していきたいと思います。
File -> Add Packages...もしくは
PROGECT -> PackageDependenciesから導入することができます。
今回導入するのは以下の3つのライブラリです。
・AWSCognitoAuth
・AWSCore
・AWSKinesis
以上でaws-sdk-ios-spmを導入は終了です。
Kinesisにデータを送ってみる
サンプルコードは以下の通りです。
import Foundation import AWSCore import AWSCognitoAuth import AWSKinesis final class SendToKinesis { let identiryPID = "ここはidentityPoolIdを入力して下さい" let keyName = "123" let streamName = "streamName" func testSendToKinesis(uid: String, mailAddress: String) { let credentialsProvider = AWSCognitoCredentialsProvider( regionType:.APNortheast1, identityPoolId:identiryPID) let configuration = AWSServiceConfiguration(region:.APNortheast1, credentialsProvider:credentialsProvider) AWSKinesis.register(with: configuration!, forKey: "defaultKey") let kinesisClient = AWSKinesis(forKey: "defaultKey") let jsonData = Data(""" { "uid": "\(uid)", "address": "\(mailAddress)" } """.utf8) let putRecordInput = AWSKinesisPutRecordInput() putRecordInput?.data = jsonData putRecordInput?.partitionKey = keyName putRecordInput?.streamName = streamName kinesisClient.putRecord(putRecordInput!) { (output, error) in if let error = error { print("Error putting record: \(error)") } else { print("Record put successfully: \(output?.sequenceNumber ?? "")") } } } }
identityPoolIdはCognitoに関するIDで、今回はUnAuthのロールIDを使用しました。 keyName及びstreamNameについてはKinesis側と合わせて代入しておけば良いです。
あとは適当な画面を作成してtestSendToKinesisを叩けばデータが送れているか確認することができます。
まとめ
初めてAWSのKinesisにデータを送ってみる検証をしましたが、サクッとできて良かったです。(SDKのありがたさを感じました) 引き続きAWS×iOSについて深めていきたいと思います。以上aws-sdk-ios-spmを使用してKinesisにデータを送るでした。