English 中文(简体)
Amazon SimpleDB for development environment / local installation
原标题:

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.

最佳回答

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/

问题回答

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.

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.

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

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.





相关问题
Why running a service as Local System is bad on windows?

I am trying to find out the difference between difference service account types. I tumbled upon this question. The answer was because it has powerful access to local resources, and Network Service ...

Programmatically detect Windows cluster configuration?

Does anyone know how to programatically detect that a Windows server is part of a cluster? Further, is it possible to detect that the server is the active or passive node? [Edit] And detect it from ...

get file icon for Outlook appointment (.msg)

I ve read Get File Icon used by Shell and the other similar posts - and already use SHFileInfo to get the associated icon for any given extension, and that works great. However, Outlook uses ".msg" ...

Identifying idle state on a windows machine

I know about the GetLastInputInfo method but that would only give me the duration since last user input - keyboard or mouse. If a user input was last received 10 minutes ago, that wouldn t mean the ...

Terminating a thread gracefully not using TerminateThread()

My application creates a thread and that runs in the background all the time. I can only terminate the thread manually, not from within the thread callback function. At the moment I am using ...

热门标签