Amazon SimpleDB for development environment / local installation
Asked Answered
C

5

10

Is there a way / tool to simulate Amazon's SimpleDB for the purpose of development?

In my quest for above, I found this tool but this is for the Mac OS. Anything that can be installed on Win XP? Needless to say, all SimpleDB APIs need to be supported.

Just in case it matters, mine is a .Net based web application.

Calutron answered 19/1, 2010 at 17:33 Comment(0)
M
3

SimpleDB/dev runs on Windows, Linux and Mac. The Wareseeker.com page that you found has copied the information across incorrectly. The Google Code project page for the tool is here

http://code.google.com/p/simpledb-dev/

Musical answered 20/1, 2010 at 15:12 Comment(4)
Andrew ... thanks for sharing this. This looks like fitting my bill.Calutron
@Calutron did you actually try it? It wasn't working for me (API too old, and never updated).Plano
Not able to configure it. Please helpVariola
SimpleDB-Dev is out of date and apparently no longer maintained. The fakesb version mentioned in an answer below however does work.Unleash
R
2

The C# library (http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1133) includes a mock library that sounds like it might do the trick for you. I have not used the mock functionality, but I believe that it uses an XML file as a backing store to hold the simulated domains.

One thing to keep in mind is that a few months ago, Amazon released the AWS SDK for .Net (http://aws.amazon.com/sdkfornet/). I'm still using the C# library and have not gotten around to looking into the AWS SDK, so I'm not sure if the mock functionality is included or not. Based on this thread, it sounds like the AWS SDK is a rollup of all the various service SDKs (including the SimpleDB C# library), so it may well contain the mock stuff.

Recept answered 19/1, 2010 at 20:17 Comment(0)
P
1

I tried http://code.google.com/p/simpledb-dev/ with Typica, but it didn't work because of version mismatch. simpledb-dev seems to support only a 2007 version of the protocol.

I tried release 0.1.10 of simpledb-dev uploaded on Jan 02, 2009, which is the latest to date.

(I wanted to add this note as a comment to Andrew Fogg answer, but I don't have comment privilege).

UPDATE: further details. With Typica 1.7.2 I get the following error:

<Response xmlns="http://sdb.amazonaws.com/doc/2007-11-07/">  
  <Errors> 
    <Error> 
      <Code>NoSuchVersion</Code> 
      <Message>SimpleDB/dev only supports version 2007-11-07 currently</Message> 
      <BoxUsage>0.0000219907</BoxUsage> 
    </Error> 
  </Errors> 
  <RequestID>0827d740-9654-4c6f-bed4-f97d19b40430</RequestID> 
</Response> 

I also tried with the official AWS Java SDK version 1.1.3, but I could not find a way to point to a local server. AmazonSimpleDBClient accepts a ClientConfiguration object in the constructor, but there are no setters for server and port in ClientConfiguration.

Plano answered 21/1, 2011 at 14:11 Comment(2)
When using latest (SDK 1.1.7) you can use the setEndpoint method AmazonSimpleDBClient class itself. However, it appears that 2007-11-07 version id is hardcoded in SimpleDB-dev despite compatibility of many methods.Caddaric
Hi Kurt, thank you for the tip, so did you try with setEndpoint()? Would Amazon SDK be working or not with simpledb-dev?Plano
P
1

Have a look at fakesb: https://github.com/stephenh/fakesdb, a Scala implementation of SimpleDB for local testing. Seems to be better maintained than simpledb-dev (I haven't tried it yet).

Another alternative may be node-mdb, a Node.js implementation: https://github.com/robtweed/node-mdb (latest commit 2 years ago).

Pasquinade answered 13/11, 2013 at 16:44 Comment(0)
B
-1

Have you considered simply running multiple SimpleDB accounts for dev, test, and production? SimpleDB has a pretty generous free-usage tier so this doesn't cost anything unless you create a very large dev database.

I've had pretty good results using this approach plus mocking my SimpleDB interactions for unit testing.

Brandy answered 20/3, 2010 at 22:5 Comment(1)
Ashley, that is what I already do now. However I'd still want something local because rest of my development environment is local and I cannot afford to be stranded in the absence of Internet connection. Further, local availability of the software helps measure application performance without network latency.Calutron

© 2022 - 2024 — McMap. All rights reserved.