Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Awesome Aws | 11,283 | 18 days ago | 1 | December 21, 2015 | 63 | other | Python | |||
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome. | ||||||||||
Aws Sdk Go | 8,236 | 5,100 | 8,512 | 5 hours ago | 1,641 | September 23, 2022 | 61 | apache-2.0 | Go | |
AWS SDK for the Go programming language. | ||||||||||
Boto3 | 7,981 | 11,545 | 4,680 | 5 hours ago | 1,140 | July 06, 2022 | 152 | apache-2.0 | Python | |
AWS SDK for Python | ||||||||||
Aws Sdk Js | 7,335 | 35,306 | 13,702 | 6 hours ago | 1,470 | September 23, 2022 | 168 | apache-2.0 | JavaScript | |
AWS SDK for JavaScript in the browser and Node.js | ||||||||||
Aws Doc Sdk Examples | 7,312 | 2 hours ago | 99 | April 23, 2021 | 237 | apache-2.0 | Java | |||
Welcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below. | ||||||||||
Aws Sdk Php | 5,792 | 6,735 | 1,470 | 5 hours ago | 1,544 | September 23, 2022 | 41 | apache-2.0 | PHP | |
Official repository of the AWS SDK for PHP (@awsforphp) | ||||||||||
Aws Sdk Java | 3,918 | 26 | 22 | 3 hours ago | 933 | May 04, 2022 | 135 | apache-2.0 | ||
The official AWS SDK for Java. | ||||||||||
Aws Sdk Ruby | 3,434 | 20,462 | 1,476 | 2 hours ago | 1,207 | September 01, 2021 | 19 | apache-2.0 | Ruby | |
The official AWS SDK for Ruby. | ||||||||||
Rusoto | 2,595 | 164 | 404 | 3 months ago | 26 | April 25, 2022 | 255 | mit | Rust | |
AWS SDK for Rust | ||||||||||
Aws Sdk Js V3 | 2,248 | 427 | 3 hours ago | 156 | September 27, 2022 | 326 | apache-2.0 | TypeScript | ||
Modularized AWS SDK for JavaScript. |
A pod to interact with AWS using babashka.
The API is the same as the Java/Python/Go sdks, with clojurized function name, e.g BatchGetItem
becomes batch-get-item
.
This file contains the code around receiving/sending bencoded messages from/to babashka.
Then this generates all the code to use the golang sdk. That might be a bit hacky but allows to have access to most of the AWS sdk really quickly and I believe this is relatively common in Go to get around the lack of generics.
The current release contains most of the sdk for dynamodb, s3, athena, glue, kafka, kinesis, lambda, sqs and ssm.
The code can be re-generated for other services by changing this and then running make generate
and go build
to build the new binary.
Get the latest release and then:
(require '[babashka.pods])
(babashka.pods/load-pod ["./pod-tzzh-aws"])
(require '[pod.tzzh.dynamodb :as d])
(require '[pod.tzzh.s3 :as s3])
(require '[pod.tzzh.glue :as g])
(require '[pod.tzzh.paginator :as p])
(d/list-tables)
(d/batch-get-item {:RequestItems
{"AmazingTable" {:Keys [{:some-property {:S "SomeValue"}
:something-else {:S "SomethingSomething"}}]}}})
(d/batch-write-item {:RequestItems
{"AmazingTable" [{:PutRequest {:Item {:some-property {:S "abxdggje"}
:something-else {:S "zxcmbnj"}
:another-thing {:S "asdasdsa"}}}}]}})
(d/get-item {:Key {:lalala {:S "zzzzzzzz"}
:bbbbbb {:S "abxbxbxx"}}
:TableName "SomeTable"})
(d/describe-table {:TableName "SomeTable"})
(s3/list-buckets)
;; Paginators example
(let [s3-paginator (p/get-paginator s3/list-objects-v2-pages)]
(s3-paginator {:Bucket "some-bucket"
:Prefix "some-prefix/something/"}))
;; this returns a list of all the pages i.e a list of ListObjectsV2Output that are lazily fetched
(let [glue-paginator (p/get-paginator g/list-crawlers)]
(glue-paginator))
In the Go sdk paginators take a function argument which is called on each page and returns a boolean that tells when to stop iterating, and the paginator itself doesn't return anything.
For example the signature of ListObjectsV2Pages
is
func (c *S3) ListObjectsV2Pages(input *ListObjectsV2Input, fn func(*ListObjectsV2Output, bool) bool) error
Whereas in the Python sdk, the paginators are instead generators that lazily loads the pages.
This approach is more functional and has been copied here.
To use it you need to use the get-paginator
fn from the pod.tzzh.paginator
namespace and pass the fn you need to use as an argument to get-paginator
as shown in the example above.
The functions that use either NextContinuationToken
, NextToken
and NextMarker
to paginate can currently be paginated.
For debugging set the environment variable POD_TZZH_AWS_DEBUG=true
and the logs will show in stderr.