

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.

# Tutorial zum Abonnement-Workflow Teil 1: Verwenden von Amazon SWF mit dem AWS SDK für Ruby
<a name="swf-sns-tutorial-setup-swf"></a>

**Topics**
+ [Schließe die ein AWS SDK für Ruby](#include-the-sdk-for-ruby)
+ [Konfiguration der Sitzung AWS](#configuring-the-aws-session)
+ [Registrierung einer Amazon SWF-Domain](#registering-swf-domain)
+ [Nächste Schritte](#next-steps)

## Schließe die ein AWS SDK für Ruby
<a name="include-the-sdk-for-ruby"></a>

Erstellen Sie zunächst eine Datei namens `utils.rb`. Der Code in dieser Datei ruft die Amazon SWF-Domain ab, die sowohl vom Workflow- als auch vom Aktivitätscode verwendet wird, oder erstellt sie, falls erforderlich, und bietet einen Ort, an dem Code abgelegt werden kann, der allen unseren Klassen gemeinsam ist.

Zunächst müssen wir die `aws-sdk-v1` Bibliothek in unseren Code aufnehmen, damit wir die vom SDK for Ruby bereitgestellten Funktionen nutzen können.

```
require 'aws-sdk-v1'
```

Dadurch erhalten wir Zugriff auf den AWS Namespace, der die Möglichkeit bietet, globale sitzungsbezogene Werte wie Ihre AWS Anmeldeinformationen und Region festzulegen, und der auch den Zugriff auf den Dienst ermöglicht. AWS APIs

## Konfiguration der Sitzung AWS
<a name="configuring-the-aws-session"></a>

Wir konfigurieren die AWS Sitzung, indem wir unsere AWS Anmeldeinformationen (die für den Zugriff auf AWS Dienste erforderlich sind) und die zu AWS verwendende Region festlegen.

Es gibt eine Reihe von Möglichkeiten, [AWS Anmeldeinformationen im AWS SDK for Ruby festzulegen](https://docs.aws.amazon.com/AWSRubySDK/latest/index.html#Basic_Configuration): indem Sie sie in Umgebungsvariablen (AWS\_ACCESS\_KEY\_ID und AWS\_SECRET \_ACCESS\_KEY) setzen oder indem Sie sie mit setzen. [https://docs.aws.amazon.com/AWSRubySDK/latest/AWS.html#config-class_method](https://docs.aws.amazon.com/AWSRubySDK/latest/AWS.html#config-class_method) 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 jetzt diese Datei und ersetzen Sie die Zeichenketten, die mit *REPLACE\_WITH\_* beginnen, durch Ihre Zugriffsschlüssel-ID und Ihren geheimen Zugriffsschlüssel. AWS Informationen zu Ihren AWS Zugriffsschlüsseln finden Sie unter [Wie erhalte ich](https://docs.aws.amazon.com/general/latest/gr/getting-aws-sec-creds.html) Sicherheitsanmeldedaten? in der *allgemeinen Referenz zu Amazon Web Services*.

Wir müssen auch die AWS Region festlegen, die verwendet werden soll. Da wir den [Short Message Service (SMS)](http://en.wikipedia.org/wiki/Short_Message_Service) verwenden werden, um Textnachrichten mit Amazon SNS an das Telefon des Benutzers zu senden, müssen wir sicherstellen, dass wir die von Amazon SNS unterstützte Region verwenden. Weitere Informationen zu [den unterstützten Regionen und Ländern](https://docs.aws.amazon.com/sns/latest/dg/sms_supported-countries.html) finden Sie im Amazon Simple Notification Service Developer Guide.

**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-Funktionalität aus dem Beispiel entfernen und E-Mail als einzigen Endpunkt verwenden, um das Amazon SNS SNS-Thema zu abonnieren.  
Weitere Informationen zum Senden von SMS-Nachrichten finden Sie unter [Senden und Empfangen von SMS-Benachrichtigungen mit Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/SMSMessages.html) im *Amazon Simple Notification Service Developer Guide*.

Wir fügen nun Code hinzu, um die Konfigurationsdatei `utils.rb` zu laden, die Anmeldeinformationen des Benutzers abzurufen und dann sowohl die Anmeldeinformationen als auch die Region für anzugeben. [https://docs.aws.amazon.com/AWSRubySDK/latest/AWS.html#config-class_method](https://docs.aws.amazon.com/AWSRubySDK/latest/AWS.html#config-class_method)

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

## Registrierung einer Amazon SWF-Domain
<a name="registering-swf-domain"></a>

Um Amazon SWF verwenden zu können, müssen Sie eine *Domain* einrichten: eine benannte Entität, die Ihre Workflows und Aktivitäten speichert. Sie können viele Amazon SWF-Domänen registrieren, aber sie müssen alle eindeutige Namen innerhalb Ihres AWS Kontos haben, und Workflows können nicht domänenübergreifend interagieren: Alle Workflows und Aktivitäten für Ihre Anwendung müssen sich in derselben Domain befinden, um miteinander interagieren zu können.

Da wir in unserer gesamten Anwendung dieselbe Domain verwenden, erstellen wir eine Funktion in `utils.rb` called`init_domain`, die die Amazon SWF-Domain mit dem Namen *SWFSampleDomain* abruft.

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-Domänen im SDK for Ruby zu arbeiten, verwenden Sie [AWS::Simpleworkflow.Domains](https://docs.aws.amazon.com/AWSRubySDK/latest/AWS/SimpleWorkflow.html#domains-instance_method). Dadurch wird ein [DomainCollection](https://docs.aws.amazon.com/AWSRubySDK/latest/AWS/SimpleWorkflow/DomainCollection.html)zurückgegeben, das sowohl zum Aufzählen als auch zum Registrieren von Domänen verwendet werden kann:
+ [Um zu überprüfen, ob eine Domain bereits registriert ist, können Sie sich die von .domains.registered bereitgestellte Liste ansehen. AWS::Simpleworkflow](https://docs.aws.amazon.com/AWSRubySDK/latest/AWS/SimpleWorkflow/DomainCollection.html#registered-instance_method)
+ [Verwenden Sie .domains.register, um eine neue Domain zu registrieren. AWS::Simpleworkflow](https://docs.aws.amazon.com/AWSRubySDK/latest/AWS/SimpleWorkflow/DomainCollection.html#register-instance_method)

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
<a name="next-steps"></a>

Im nächsten Schritt erstellen Sie den Workflow und Ausgangscode in [Abonnement-Workflow, Anleitung Teil 2: Implementieren des Workflows](swf-sns-tutorial-implementing-workflow.md).