Abonnement-Workflow-Tutorial Teil 1: Verwenden von Amazon SWF mit demAWS SDK for Ruby - Amazon Simple Workflow Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Abonnement-Workflow-Tutorial Teil 1: Verwenden von Amazon SWF mit demAWS SDK for Ruby

Schließen Sie das AWS SDK for Ruby mit ein

Erstellen Sie zunächst eine Datei namens utils.rb. Mit dem Code in dieser Datei wird die Amazon SWF-Domäne abgerufen bzw. bei Bedarf erstellt, die sowohl vom Workflow als auch vom Aktivitätencode verwendet wird. Die Datei bietet außerdem einen Ort, um für alle Klassen gemeinsamen Code zu speichern.

Zunächst müssen wir dieaws-sdk-v1-Bibliothek in unserem Code, sodass wir die vom SDK bereitgestellten Funktionen für Ruby nutzen können.

require 'aws-sdk-v1'

Damit erhalten wir Zugriff auf dieAWSNamespace, der die Möglichkeit bietet, globale sitzungsrelevante Werte, wie IhreAWSAnmeldeinformationen und Region sowie Zugriff aufAWSService-APIs.

Konfigurieren vonAWS-Sitzung

Im nächsten Schritt konfigurieren wirAWSSitzung durch Einstellen unsererAWSAnmeldeinformationen (die für den Zugriff benötigt werdenAWSDienstleistungen) und dasAWS-Region, die verwendet werden soll

Es gibt eine Reihe von MöglichkeiteneinstellenAWS-Anmeldeinformationen imAWS-SDK for Ruby: Sie können in den Umgebungsvariablen (AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY) oder mitAWS.configaus. Wir verwenden die letzte Methode und laden sie aus einer YAML-Konfigurationsdatei mit dem Namen aws-config.txt hoch, die wie im Folgenden dargestellt aussieht.

--- :access_key_id: REPLACE_WITH_ACCESS_KEY_ID :secret_access_key: REPLACE_WITH_SECRET_ACCESS_KEY

Erstellen Sie diese Datei jetzt und ersetzen Sie die Strings beginnend mitREPLACE_MIT_mit IhremAWSZugriffsschlüssel-ID und geheimen Zugriffsschlüssel. Informationen über IhreAWSZugriffsschlüssel, sieheWas sind die Sicherheitsanmeldeinformationen?imAllgemeine Amazon Web Services Services-Referenzaus.

Außerdem müssen wir dieAWS-Region, die verwendet werden soll Weil wir das benutzen werdenShort Message Service (SMS)Um mit Amazon SNS SMS an das Telefon des Benutzers zu senden, müssen wir die von Amazon SNS unterstützte Region verwenden. Siehe .Unterstützte Regionen und Länderim Amazon Simple Notification Service-Entwicklerhandbuch.

Anmerkung

Wenn Sie keinen Zugriff auf us-east-1 haben oder das Beispiel nicht mit aktivierter SMS-Messagingfunktion ausführen möchten, können Sie eine andere Region verwenden. Sie können die SMS-Funktion aus dem Beispiel entfernen und E-Mail als alleinigen Endpunkt zum Abonnieren des Amazon SNS SNS-Themas verwenden.

Weitere Informationen zum Senden von SMS-Nachrichten finden Sie unterSenden und Empfangen von SMS-Benachrichtigungen mit Amazon SNSimAmazon Simple Notification Service-Entwickleraus.

Wir fügen jetzt etwas Code hinzuutils.rbUm die Konfigurationsdatei zu laden, rufen Sie die Anmeldeinformationen des Benutzers ab und geben Sie die Anmeldeinformationen und die Region anAWS.configaus.

require 'yaml' # Load the user's credentials from a file, if it exists. begin config_file = File.open('aws-config.txt') { |f| f.read } rescue puts "No config file! Hope you set your AWS credentials in the environment..." end if config_file.nil? options = { } else options = YAML.load(config_file) end # SMS Messaging (which can be used by Amazon SNS) is available only in the # `us-east-1` region. $SMS_REGION = 'us-east-1' options[:region] = $SMS_REGION # Now, set the options AWS.config = options

Registrieren einer Amazon SWF-Domain

Um Amazon SWF nutzen zu können, müssen Sie eineDomäne: Eine benannte Entity, die Ihre Workflows und Aktivitäten spannt. Sie können viele Amazon SWF-Domains registrieren lassen, aber sie müssen alle eindeutige Namen in IhremAWSKonto und Workflows können nicht domänenübergreifend interagieren: Alle Workflows und Aktivitäten für Ihre Anwendung müssen sich in derselben Domäne befinden, um interagieren zu können.

Da wir in unserer gesamten Anwendung die gleiche Domäne verwenden, erstellen wir eine Funktion inutils.rbgenanntinit_domain, die die Amazon SWF-Domain mit dem Namen abruftswfSampleDomainaus.

Sobald Sie eine Domäne registriert haben, können Sie sie für viele Workflow-Ausführungen wiederverwenden. Allerdings tritt ein Fehler auf, wenn Sie versuchen, eine bereits vorhandene Domäne zu registrieren. Daher prüft unser Code zunächst, ob die Domäne vorhanden ist, und verwendet diese gegebenenfalls. Wenn die Domäne nicht gefunden wird, erstellen wir sie.

Um mit Amazon SWF-Domains im SDK for Ruby zu arbeiten, verwenden SieAWS:: SimpleWorkflow.Domains, das eine zurückgibtDomainCollectiondas kann sowohl zum Aufzählen als auch zum Registrieren von Domains verwendet werden:

Hier finden Sie den Code für init_domain in utils.rb.

# Registers the domain that the workflow will run in. def init_domain domain_name = 'SWFSampleDomain' domain = nil swf = AWS::SimpleWorkflow.new # First, check to see if the domain already exists and is registered. swf.domains.registered.each do | d | if(d.name == domain_name) domain = d break end end if domain.nil? # Register the domain for one day. domain = swf.domains.create( domain_name, 1, { :description => "#{domain_name} domain" }) end return domain end

Nächste Schritte

Im nächsten Schritt erstellen Sie den Workflow und Ausgangscode in Abonnement-Workflow, Anleitung Teil 2: Implementieren des Workflows.