はじめに
awsでデータの一覧を取得するときnext tokenやcursorを指定したforループでページごとにデータを取得することがあると思います。しかしaws sdkにはpaginationをいい感じに扱える関数があるので、これを利用すると簡単にデータを取得できます。
今回は、IAM Roleの一覧を取得するコードを言語ごとに書いてみようと思います。
TypeScript
| バージョン |
---|
TypeScript | 5.0.3 |
@aws-sdk/client-iam | 3.303.0 |
まずはサンプルコードです。
今回はRoleの一覧なのでpaginateListRoles
を使っています。どんなpaginateの関数があるかを調べるには、AWS SDK for JavaScript v3 - API Referenceを見ることで調べることができます。
上の画像にある赤枠部分をクリックすると@aws-sdk/client-iamのページに行きます。右側のサイドバーにPaginators
とあるので、ここから使用できそうな関数を見つけます。
参考
Golang
| バージョン |
---|
Golang | 1.19 |
aws-sdk-go-v2 | v1.17.7 |
go言語もTypeScript同様、paginatorを探すためにAPIリファレンスを見ていきます。
APIリファレンスの下の方に”service”と書いてある折りたたみがあるので、ここからIAMを探します。
少し調べづらいので、ページ内検索で”paginator”で調べると見つけることができます。
参考
python
| バージョン |
---|
python | 3.10.9 |
boto3 | 1.26.103 |
pythonのpaginatorも同じくAPIリファレンスを見ていきます。
自分が使いたいAWSサービスを検索します。“Paginators”をクリックすると以下の画像のページに行くので、ここから関数を調べることができます。
参考
まとめ
今回は、3つの言語でpaginatorと調べ方について書いてみました。
使ったコードはkntks/blog-code/2023/04/aws-client-paginationに置いています。
paginatorの関数名がわかれば、あとはChatGPTに渡すとサンプルコードを書いてくれます。
もしChatGPTにサンプルコードを書かせる場合は、バージョンの指定をしていた方が良いです。
バージョン1
バージョン2