この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
毎度お馴染み流浪の動かしてみた & C 芸人の Fujimura です。
AWS SDK for C++ が公式から発表されたということで、さっそく mac で触ってみました。
Amazon Web Services ブログ: AWS SDK for C++ のご紹介
インストール
brew で cmake をインストールしておく必要があります。(ライブラリは System の libcurl と libssl を使用します。)
$ brew install cmake
$ git clone https://github.com/awslabs/aws-sdk-cpp.git
$ cmake .
$ make
準備
実行には ~/.aws/credentials
が必要になります。(AWS CLI を実行したことがあれば、生成されているため問題ありません。)
実行
同梱の dynamodb-integration-test を実行してみます。
$ otool -L aws-cpp-sdk-dynamodb-integration-tests/runDynamoDBIntegrationTests
aws-cpp-sdk-dynamodb-integration-tests/runDynamoDBIntegrationTests:
/path/to/aws-sdk-cpp/aws-cpp-sdk-dynamodb/libaws-cpp-sdk-dynamodb.dylib (compatibility version 0.0.0, current version 0.0.0)
/path/to/aws-sdk-cpp/testing-resources/libtesting-resources.dylib (compatibility version 0.0.0, current version 0.0.0)
/path/to/aws-sdk-cpp/aws-cpp-sdk-core/libaws-cpp-sdk-core.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libcurl.4.dylib (compatibility version 7.0.0, current version 8.0.0)
/usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
/usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
$ ./aws-cpp-sdk-dynamodb-integration-tests/runDynamoDBIntegrationTests
[==========] Running 9 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 9 tests from TableOperationTest
(snip)
[----------] Global test environment tear-down
[==========] 9 tests from 1 test case ran. (507189 ms total)
[ PASSED ] 8 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] TableOperationTest.TestListTable
1 FAILED TEST
Failed になっている項目はありますが、動いているようには見えます。
途中で管理コンソールから DynamoDB を確認すると、テスト用のテーブルが作成されていることが確認できます。
また、実行したディレクトリに aws_sdk_YYYY-mm-dd-hh.log というログが生成されているため、そちらで詳細な実行内容を確認することもできます。
まとめ
執筆時点ではまだ release tag はないため、鋭意開発中という雰囲気ですが、今後はネイティブアプリへの組み込みなど、幅広く活用されると予想されます。