구독 워크플로 자습서 파트 1: AWS SDK for Ruby에서 Amazon SWF 사용 - Amazon Simple Workflow Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

구독 워크플로 자습서 파트 1: AWS SDK for Ruby에서 Amazon SWF 사용

AWS SDK for Ruby 포함

utils.rb라는 파일을 생성하여 시작합니다. 이 파일의 코드는 필요한 경우 워크플로 및 활동 코드 둘 다에서 사용하는 Amazon SWF 도메인을 얻거나 생성하고 모든 클래스에 공통적인 코드를 삽입할 위치를 제공합니다.

먼저, SDK for Ruby에서 제공한 기능을 사용할 수 있도록 코드에 aws-sdk-v1 라이브러리를 포함해야 합니다.

require 'aws-sdk-v1'

그러면 AWS 네임스페이스에 대한 액세스가 제공됩니다. AWS 네임스페이스는 AWS 보안 인증 및 리전과 같은 전역 세션 관련 값을 설정하는 기능을 제공하고 AWS 서비스 API에 대한 액세스를 제공합니다.

AWS 세션 구성

사용할 AWS 보안 인증(AWS 서비스에 액세스하는 데 필요함) 및 AWS 리전을 설정하여 AWS 세션을 구성합니다.

AWS SDK for Ruby에서 AWS 보안 인증을 설정하는 방법에는 여러 가지가 있습니다. 환경 변수(AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY)에서 보안 인증을 설정하거나 AWS.config를 사용하여 설정하는 방법이 있습니다. 여기서는 후자의 방법을 사용하여 다음과 같은 YAML 구성 파일(aws-config.txt)에서 로드합니다.

--- :access_key_id: REPLACE_WITH_ACCESS_KEY_ID :secret_access_key: REPLACE_WITH_SECRET_ACCESS_KEY

REPLACE_WITH_로 시작하는 문자열을 AWS 액세스 키 ID 및 비밀 액세스 키로 바꿔 지금 이 파일을 생성합니다. AWS 액세스 키에 대한 자세한 내용은 Amazon Web Services 일반 참조에서 보안 인증 정보를 얻는 방법을 참조하십시오.

또한 사용할 AWS 리전을 설정해야 합니다. Amazon SNS를 통해 SMS(문자 서비스)를 사용하여 사용자 휴대폰으로 문자 메시지를 보낼 예정이므로 Amazon SNS가 지원하는 리전을 사용하고 있는지 확인해야 합니다. Amazon Simple Notification Service 개발자 안내서의 지원 리전 및 국가를 참조하십시오.

참고

us-east-1에 액세스할 수 없거나 SMS 메시징이 지원되는 데모를 실행해도 괜찮은 경우 원하는 모든 리전을 자유롭게 사용할 수 있습니다. 샘플에서 SMS 기능을 제거하고 이메일을 단독 엔드포인트로 사용하여 Amazon SNS 주제를 구독할 수 있습니다.

SMS 메시지 전송에 대한 자세한 내용은 Amazon Simple Notification Service 개발자 안내서Amazon SNS를 사용한 SMS 알림 전송 및 수신을 참조하십시오.

이제 utils.rb에 일부 코드를 추가하여 구성 파일을 로드하고 사용자의 보안 인증을 가져온 다음 보안 인증과 리전을 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

Amazon SWF 도메인 등록

Amazon SWF를 사용하려면 도메인을 설정해야 합니다. 도메인은 워크플로 및 활동을 보관하는 명명된 엔터티입니다. Amazon SWF 도메인을 여러 개 등록할 수 있지만 도메인은 AWS 계정 내에서 모두 고유한 이름을 가지고 있어야 하며, 워크플로는 도메인 간에 상호 작용할 수 없습니다. 애플리케이션에 대한 모든 워크플로 및 활동이 서로 상호 작용하기 위해서는 동일한 도메인에 있어야 합니다.

애플리케이션 전체에서 동일한 도메인을 사용할 것이기 때문에 init_domain라는 utils.rb에서 Amazon SWF 도메인 SWFSampleDomain을 검색하는 함수를 생성합니다.

도메인을 등록하면 여러 워크플로 실행에 재사용할 수 있습니다. 그러나 이미 있는 도메인을 등록하려고 하면 오류가 발생하기 때문에 이 코드에서는 먼저 도메인이 있는지 확인한 다음 있는 경우 기존 도메인을 사용합니다. 도메인이 없으면 생성합니다.

SDK for Ruby에서 Amazon SWF 도메인을 사용하려면 도메인을 열거하고 등록하는 데 사용할 수 있는 DomainCollection을 반환하는 AWS::SimpleWorkflow.domains를 사용합니다.

다음은 utils.rbinit_domain에 대한 코드입니다.

# 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

다음 단계

다음으로, 구독 워크플로 자습서 파트 2: 워크플로 구현 단원에서 워크플로 및 시작 코드를 생성합니다.