AWS SDK for C++ を触ってみた

この記事は公開されてから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 を確認すると、テスト用のテーブルが作成されていることが確認できます。

DynamoDB_·_AWS_Console

また、実行したディレクトリに aws_sdk_YYYY-mm-dd-hh.log というログが生成されているため、そちらで詳細な実行内容を確認することもできます。

まとめ

執筆時点ではまだ release tag はないため、鋭意開発中という雰囲気ですが、今後はネイティブアプリへの組み込みなど、幅広く活用されると予想されます。