Alternatives To Pod Tzzh Aws
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Awesome Aws11,283
18 days ago1December 21, 201563otherPython
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 Go8,2365,1008,5125 hours ago1,641September 23, 202261apache-2.0Go
AWS SDK for the Go programming language.
Boto37,98111,5454,6805 hours ago1,140July 06, 2022152apache-2.0Python
AWS SDK for Python
Aws Sdk Js7,33535,30613,7026 hours ago1,470September 23, 2022168apache-2.0JavaScript
AWS SDK for JavaScript in the browser and Node.js
Aws Doc Sdk Examples7,312
2 hours ago99April 23, 2021237apache-2.0Java
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 Php5,7926,7351,4705 hours ago1,544September 23, 202241apache-2.0PHP
Official repository of the AWS SDK for PHP (@awsforphp)
Aws Sdk Java3,91826223 hours ago933May 04, 2022135apache-2.0
The official AWS SDK for Java.
Aws Sdk Ruby3,43420,4621,4762 hours ago1,207September 01, 202119apache-2.0Ruby
The official AWS SDK for Ruby.
Rusoto2,5951644043 months ago26April 25, 2022255mitRust
AWS SDK for Rust
Aws Sdk Js V32,2484273 hours ago156September 27, 2022326apache-2.0TypeScript
Modularized AWS SDK for JavaScript.
Alternatives To Pod Tzzh Aws
Select To Compare


Alternative Project Comparisons
Readme

pod-tzzh-aws

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.

Usage

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))

Paginators

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.

Debugging

For debugging set the environment variable POD_TZZH_AWS_DEBUG=true and the logs will show in stderr.

Popular Amazon Web Services Projects
Popular Sdk Projects
Popular Cloud Computing Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Aws
Sdk
Clojure
Aws Sdk