2015-02-28 5 views
5

Ich versuche, mit der Entwicklung gegen den lokalen Dynamo DB-Dienst zu beginnen. Der erste Schritt ist die Erstellung einfach einen Client:Ich kann kein Amazon Web Services (AWS) - Anmeldungsobjekt erstellen

var storedAWSCreds = new StoredProfileAWSCredentials(); 

Dies löst eine Ausnahme:

App.config keine Berechtigungsinformationen enthalten. Entweder fügen Sie den AWSAccessKey und AWSSecretKey oder AWSProfileName

Mein app.config hat die benötigten Eigenschaften:

<add key="AWSProfileName" value="justin"/> 
<add key="AWSProfilesLocation" value="C:\code\dynamodb\credentials"/> 

Die Anmeldeinformationen Profildatei:

justin 
aws_access_key_id = REMOVED-FOR-POST 
aws_secret_access_key = REMOVED-FOR-POST 

An diesem Punkt dachte ich, ich würde Probieren Sie eine der anderen überladenen Methoden aus und teilen Sie dem Konstruktor explizit mit, was die Parameter sein sollten:

var storedAWSCreds = new StoredProfileAWSCredentials("justin", @"C:\code\dynamodb\credentials"); 

Wieder die gleiche Ausnahme.

Okay, die Ausnahme sagt, dass ich die Zugangsdaten direkt in meiner Config zur Verfügung stellen kann, so habe ich versucht, dass:

<add key="AWSAccessKey" value="REMOVED-FOR-POST"/> 
<add key="AWSSecretKey" value="REMOVED-FOR-POST"/> 

Wieder die gleiche Ausnahme. Wie kann ich das StoredProfileAWSCredentials Objekt erstellt bekommen? Ich vermisse eindeutig etwas Offensichtliches oder ihre Ausnahmemeldungen sind falsch.

var basicAWSCreds = new BasicAWSCredentials("REMOVED-FOR-POST", "REMOVED-FOR-POST"); 

Aber irgendwann würde ich lieber nicht in hartcodiert haben:

ich darauf hinweisen, wird, kann ich durch die Angabe der Zugriffsschlüssel und geheimen Schlüssel in den Konstruktor ein BasicAWSCredentials-Objekt erstellen meine Bewerbung.

+0

Einfache Frage: Ist Ihre app.config korrekt an das ausführende Verzeichnis kopiert? –

+0

@SvenGrosen - Ja, ich führe die Anwendung direkt von Visual Studio aus, während ich versuche, gegen eine lokale DynamoDB-Instanz zu entwickeln. –

+1

Folgendes könnte hilfreich sein: Nach https://forums.aws.amazon.com/thread.jspa?messageID = 567665 - "Diese Ausnahmebedingungsnachricht ist ein wenig irreführend, bedeutet aber im Allgemeinen, dass das SDK versucht hat, das angegebene Profil nachzuschlagen und es nicht finden konnte." –

Antwort

0

Der Profilname muss in eckigen Klammern sein, wie so

[justin] 
aws_access_key_id = REMOVED-FOR-POST 
aws_secret_access_key = REMOVED-FOR-POST 
4

Ihre Config-Abschnitt

<add key="AWSProfilesLocation" value="C:\code\dynamodb\credentials" /> 

sollte

<add key="AWSProfilesLocation" value="C:\code\dynamodb\credentials\filename.json" /> 

für sie arbeiten. Mit anderen Worten, geben Sie den Dateinamen im Profilpfad an.

Wenn Sie neuere SDK verwenden Sie die folgende Verwendung als gut funktionieren würde:

<configSections> 
    <section name="aws" type="Amazon.AWSSection, AWSSDK" /> 
</configSections> 
<aws profileName="YourProfileName" profilesLocation="C:\aws\credentials\aws-credentialfile.json" region="xx-xxxx-x" /> 

Nachi