Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Première partie du tutoriel sur le flux de travail d'abonnement Utilisation d'Amazon SWF avec leAWS SDK for Ruby
Rubriques
Incluez le AWS SDK for Ruby
Commencez par créer un fichier nommé utils.rb
. Le code de ce fichier permettra d'obtenir ou de créer, si nécessaire, le domaine Amazon SWF utilisé par le flux de travail et le code des activités. Il permettra également de placer le code commun à toutes nos classes.
Tout d'abord, nous devons inclure leaws-sdk-v1
dans notre code, afin de pouvoir utiliser les fonctionnalités fournies par le kit SDK for Ruby.
require 'aws-sdk-v1'
Cette approche nous donne accès à laAWSNamespace, qui permet de définir des valeurs globales relatives à la session, telles que votreAWSinformations d'identification et région, et permet également d'accéder à laAWSAPI de service.
Configuration deAWSSession
Nous allons configurer le kitAWSSession en définissant notreAWSinformations d'identification (nécessaires à l'accès)AWSservices) et leAWSRégion à utiliser.
Plusieurs options s'offrent à vous pourlotAWSInformations d'identification dans leAWSKit SDK pour Ruby: en les spécifiant dans des variables d'environnement (AWS_ACCESS_KEY et AWS_SECRET_ACCESS_KEY) ou en les spécifiant avecAWS.config
. Nous allons utiliser cette deuxième méthode de ce dernier, en les chargeant à partir d'un fichier de configuration YAML, appelé aws-config.txt
, qui ressemble à cela.
--- :access_key_id: REPLACE_WITH_ACCESS_KEY_ID :secret_access_key: REPLACE_WITH_SECRET_ACCESS_KEY
Créez ce fichier maintenant, en remplaçant les chaînes commençant parREMPLACE_AVEC_avec votreAWSID de clé d'accès et clé d'accès secrète. Pour obtenir des informations sur votreAWSclés d'accès, voirComment obtenir les informations d'identification de sécurité ?dans leRéférence générale Amazon Web Services.
Nous devons également définir leAWSRégion à utiliser. Parce que nous allons utiliser leService de messages courts (SMS)
Note
Si vous n'avez pas accès à us-east-1 ou si cette fonctionnalité n'a pas d'intérêt pour vous dans le cadre de cette démonstration, vous pouvez utiliser la région que vous souhaitez. Vous pouvez remplacer la fonctionnalité SMS de cet exemple par l'e-mail comme point de terminaison unique pour s'abonner à la rubrique Amazon SNS.
Pour plus d'informations sur l'envoi de messages SMS, consultezEnvoi et réception de notifications SMS à l'aide d'Amazon SNSdans leManuel du développeur Amazon Simple Notification Service.
Nous allons maintenant ajouter du code àutils.rb
Pour charger le fichier de configuration, obtenir les informations d'identification de l'utilisateur, puis fournir les informations d'identification et la région àAWS.config
.
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
Enregistrement d'un domaine Amazon SWF
Pour utiliser Amazon SWF, vous devez configurer undomaine: entité nommée qui contient vos flux de travail et vos activités. De nombreux domaines Amazon SWF peuvent être enregistrés, mais ils doivent tous comporter des noms uniques au sein de votreAWSet les workflows ne peuvent pas interagir entre les domaines : Tous les flux de travail et toutes les activités de votre application doivent être dans le même domaine pour interagir avec les uns avec les autres.
Comme nous allons utiliser le même domaine dans toute l'application, nous allons créer une fonction dansutils.rb
appeléinit_domain
, qui récupérera le domaine Amazon SWF nomméExemple de domaine SWF.
Une fois que vous avez enregistré un domaine, vous pouvez le réutiliser pour de nombreuses exécutions de flux de travail. Toutefois, il n'est pas correct d'essayer d'enregistrer un domaine qui existe déjà. Dès lors, notre code doit vérifiera d'abord si le domaine existe et utilisera le domaine existant, s'il le trouve. S'il ne trouve pas le domaine, nous le créerons.
Pour utiliser des domaines Amazon SWF dans le SDK for Ruby, utilisezAWS:: SimpleWorkflow.Domains, qui renvoie unDomainCollectionqui peuvent être utilisés à la fois pour énumérer et enregistrer des domaines :
-
Pour vérifier si un domaine est déjà enregistré, vous pouvez consulter la liste fournie par AWS::Simpleworkflow.domains.registered.
-
Pour enregistrer un nouveau domaine, utilisez AWS::Simpleworkflow.domains.register.
Voici le code pour init_domain
dans le fichier 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
Étapes suivantes
Vous allez ensuite créer le code du flux de travail et du démarreur dans Partie du didacticiel sur le flux de travail d'abonnement Implémentation du flux de.