기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
구독 워크플로 자습서 1부:에서 Amazon SWF 사용 AWS SDK for Ruby
포함 AWS SDK for Ruby
utils.rb라는 파일을 생성하여 시작합니다. 이 파일의 코드는 필요한 경우 워크플로 및 활동 코드 둘 다에서 사용하는 Amazon SWF 도메인을 얻거나 생성하고 모든 클래스에 공통적인 코드를 삽입할 위치를 제공합니다.
먼저, SDK for Ruby에서 제공한 기능을 사용할 수 있도록 코드에 aws-sdk-v1 라이브러리를 포함해야 합니다.
require 'aws-sdk-v1'
이를 통해 AWS 네임스페이스에 액세스할 수 있습니다.이 네임스페이스는 자격 AWS 증명 및 리전과 같은 글로벌 세션 관련 값을 설정하는 기능을 제공하고 AWS 서비스 APIs에 대한 액세스도 제공합니다.
AWS 세션 구성
자격 AWS 증명( AWS 서비스에 액세스하는 데 필요)과 사용할 AWS 리전을 설정하여 AWS 세션을 구성합니다.
AWS SDK for Ruby에는 환경 변수(AWS_ACCESS_KEY_ID 및 AWS_SECRET_ACCESS_KEY)에서 자격 AWS 증명을 설정하거나 로 설정하여 자격 증명을 설정하는 여러 가지 방법이 있습니다AWS.config.AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY 여기서는 후자의 방법을 사용하여 다음과 같은 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(문자 서비스)
참고
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를 사용합니다.
-
도메인이 이미 등록되어 있는지 확인하려면 AWS::Simpleworkflow.domains.registered에서 제공하는 목록을 살펴봅니다.
-
새 도메인을 등록하려면 AWS::Simpleworkflow.domains.register를 사용합니다.
다음은 utils.rb의 init_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: 워크플로 구현 단원에서 워크플로 및 시작 코드를 생성합니다.