2 Software as a Service SaaS DMA Web Microsoft Office 300 Microsoft Office Google Docs 12.5 Web 2 2.1 Amazon Web Services Python boto boto AWS Python boto Python 2.5 2.7 Python 3 Python 2.6 W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg
W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @@g@@f @f@@f W2@@6Xg 3@g@5f @@f N@g@Hf @5f 3LeJ5f V/KeO.Yf V4@@0Yg W&Yf@f J@Hf W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g &@@@@@@@@f W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f W2@@6Xg @@f @5f J@Hf W.MeI/Xf W&Yf@f W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g 7HeN1f J@g@Lf 7@g@1f W2@@6Xg @@@ O2@h &@@@@@@@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f W&@@@@)Xf V/KeO.Yf 7(MI'@1f V4@@0Yg @HeN@@f @f@@f W2@@6Xg @@@@@@@@f @@f @5f J@Hf W&@@@@)Xf 75g 7(MI'@1f J(Yg @HeN@@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Yh W.Ye@f W.Yg @f@@f W2@@6Xg @@f @5f J@Hf @@@ O2@h @@ 75g J(Yg W.Yg W.Yh W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Ye@f @@@@@@@@f @@@@@@@5f @@ @f@hf @f@g J5g 7Hg @g @@@@@@@@f J5g @@@@@@@f 7Hg J(Mh @h 7Yhe J5h @@6Kh 7Hh @@@@6Xg @h I4@@)Xf J5h I'@1f 7Hh V'@f @he N@f J5f @@f W.Yf @@@ O2@h '6KO.Yg V4@@0Yg J@HeN@Lf @@f 7@f@1f @@f@@f 3@f@@f O2@6Kg @(MI'@f N@LeJ@@f @)KO&@5f @@fn@1e @@@@@@@@f I4@@@@Hf @@f J@5f W&(Yf @@fj@5e W&(Yg @@LhJ@@ O&0Yg @@1h7@@ @@0Mh @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @@@@@e@f@@@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @KO&YfO26Xf J(Yhg @(Yhf O&@)Xe W-Xe @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@f@@f@@g @@(Mhe @@ej@5f@5g @@Hhf @0M @5e7@Hf(Yg @5hf W&@@@@)Xf (YeJ@5/Khe 7(MI'@1f O20MheI'@,e O20MgV4@@6Xe W&(YV46Kh @HeN@@f O&0YfI'@6Kf @f@@f W2@@6Xg @@e@@@@@@@@e@@f V+Ye @@e@@e@@e@@f J(Yg @@f @5f J@Hf 75g W&(Yh W.Yg 7@Hhe @(Mhf@5f W.Yh W2(Mg W&(Yh O2@@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Ye@f J@@@@6Kg 7@(MI'@g @@HeN@Lf @@f@1f @@f@@f 3@f@5f N@LeJ@Hf @)KO&@g I4@0Mg 26 2.1.1 Amazon Web Services Amazon Web Services http://aws.amazon.com/ Sign Up Now Elastic Compute Cloud EC2 Simple Storage Service S3 SimpleDB Simple Queue Service SQS Account Security Credentials Access 2Access Ke Amazon Web Services 2.1.2 boto boto github http://github.com/boto/boto master branch tag boto Python setup.py install develop Windows boto $ python setup.py install root administrator
UNIXsudo $ sudo python setup.py install Windows 2.1.3 boto Amazon Tools htp://aws.amazon.com/developertools Java credentials.cfg AWSAccessKeyId=MyAccessKey AWSSecretKey=MySecretKey AWS_CREDENTIAL_FILE bash shell export AWS_CREDENTIAL_FILE=/full/path/to/credentials.cfg shell RC.bashrc.zshrc T-Shell.tcshrc setenv AWS_CREDENTIAL_FILE=/full/path/to/credentials.cfg boto.cfg boto BOTO_CONFIG boto.cfg # File: boto.cfg 2 27 elbadminaws us-east-1 AWS ap-southeast-1 [Boto] elb_region_name = us-east-1 elb_region_endpoint = elasticloadbalancing.us-east-1.amazonaws.com W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he
W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @@g@@f @f@@f W2@@6Xg 3@g@5f @@f N@g@Hf @5f 3LeJ5f V/KeO.Yf V4@@0Yg W&Yf@f J@Hf W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g &@@@@@@@@f W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f W2@@6Xg @@f @5f J@Hf W.MeI/Xf W&Yf@f W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g 7HeN1f J@g@Lf 7@g@1f W2@@6Xg @@@ O2@h &@@@@@@@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f W&@@@@)Xf V/KeO.Yf 7(MI'@1f V4@@0Yg @HeN@@f @f@@f W2@@6Xg @@@@@@@@f @@f @5f J@Hf W&@@@@)Xf 75g 7(MI'@1f J(Yg @HeN@@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Yh W.Ye@f W.Yg @f@@f W2@@6Xg @@f @5f J@Hf @@@ O2@h @@ 75g J(Yg W.Yg W.Yh W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Ye@f @@@@@@@@f @@@@@@@5f @@ @f@hf @f@g J5g 7Hg @g @@@@@@@@f J5g @@@@@@@f 7Hg J(Mh @h 7Yhe J5h @@6Kh 7Hh @@@@6Xg @h I4@@)Xf J5h I'@1f 7Hh V'@f @he N@f J5f @@f W.Yf @@@ O2@h '6KO.Yg V4@@0Yg J@HeN@Lf @@f 7@f@1f @@f@@f 3@f@@f O2@6Kg @(MI'@f N@LeJ@@f @)KO&@5f @@fn@1e @@@@@@@@f I4@@@@Hf @@f J@5f W&(Yf @@fj@5e W&(Yg @@LhJ@@ O&0Yg @@1h7@@ @@0Mh @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @@@@@e@f@@@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @KO&YfO26Xf J(Yhg @(Yhf O&@)Xe W-Xe @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@f@@f@@g @@(Mhe @@ej@5f@5g @@Hhf @0M @5e7@Hf(Yg @5hf W&@@@@)Xf (YeJ@5/Khe 7(MI'@1f O20MheI'@,e O20MgV4@@6Xe W&(YV46Kh @HeN@@f O&0YfI'@6Kf @f@@f W2@@6Xg @@e@@@@@@@@e@@f @@f @5f W2@6Xg V+Ye J@Hf W.MI/Xf 75g 7HeN1f @@e@@e@@e@@f J(Yg W.Yg @(Mhf@5f W.Yh W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Ye@f W.YeI')Xf @f@f 7HeV'1f @LeJ5f @gn@f 3)KO.Yf @g@f V'@@@Hg 3LfJ5f S@@@Lg V/KeO.Yf W.R4@)Xf V4@@@0Yf 28 # Imitate some EC2 configs [Instance] local-ipv4 = 127.0.0.1 local-hostname = localhost security-groups = default public-ipv4 = 127.0.0.1 public-hostname = my-public-hostname.local hostname = localhost instance-type = m1.small instance-id = i-00000000 # Set the default SDB domain [DB] db_name = default # Set up base logging [loggers] keys=root,boto [handlers] keys=hand01 [formatters] keys=form01 [logger_boto] level=info handlers=hand01 [logger_root] level=info handlers=hand01 [handler_hand01] class=streamhandler level=info formatter=form01 args=(sys.stdout,) [formatter_form01] format=%(asctime)s [%(name)s] %(levelname)s %(message)s datefmt= class=logging.formatter
[Instance] EC2 boto EC2 EC2 SimpleDB default default Python INFO DEBUGAWS 2.1.4 boto Python >>> import boto >>> sdb = boto.connect_sdb() >>> sdb.create_domain("default") SimpleDB default AWS SimpleDB boto http://github.com/boto/boto boto http://groups.google.com/group/boto-users 2.2 2 29 W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh
Web HTML XML JSON 30 W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W2@6Xg W&@@@)Xg.MI'1g N@g @g J5g O&Ug @@@@)Xf I'@1f V'@f N@f @f J5f W.Yf '6KO.Yg V4@@0Yg W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg
3 SaaS 2.3 2 Amazon Web Serv Simple Storage ServiceS3 AWS Amazon Web Services SimpleDB SDB Amazon Web Services 10 - S3 SDB Relational DB RDB RDB Amazon SDB 2 31 W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W2@6Xg W&@@@)Xg.MI'1g N@g @g J5g O&Ug @@@@)Xf I'@1f V'@f N@f @f J5f W.Yf '6KO.Yg V4@@0Yg O2@h @@@ @@@@@@@@f
RDB Amazon MySQL Amazon M Amazon IT Amazon SDB MySQL SDB SDB 3 domainitem - key-value pair SDB schema-less 2.1 2.1 2.1 SDB 32 W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W2@6Xg W&@@@)Xg.MI'1g N@g @g J5g O&Ug @@@@)Xf I'@1f V'@f N@f @f J5f W.Yf '6KO.Yg V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f
W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @@g@@f @f@@f W2@@6Xg 3@g@5f @@f N@g@Hf @5f 3LeJ5f V/KeO.Yf V4@@0Yg W&Yf@f J@Hf W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g &@@@@@@@@f W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f W2@@6Xg @@f @5f J@Hf W.MeI/Xf W&Yf@f W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g 7HeN1f J@g@Lf 7@g@1f W2@@6Xg @@@ O2@h &@@@@@@@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f W&@@@@)Xf V/KeO.Yf 7(MI'@1f V4@@0Yg @HeN@@f @f@@f W2@@6Xg @@@@@@@@f @@f @5f J@Hf W&@@@@)Xf 75g 7(MI'@1f J(Yg @HeN@@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Yh W.Ye@f W.Yg @f@@f W2@@6Xg @@f @5f J@Hf @@@ O2@h @@ 75g J(Yg W.Yg W.Yh W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Ye@f @@@@@@@@f @@@@@@@5f @@ @f@hf @f@g J5g 7Hg @g @@@@@@@@f J5g @@@@@@@f 7Hg J(Mh @h 7Yhe J5h @@6Kh 7Hh @@@@6Xg @h I4@@)Xf J5h I'@1f 7Hh V'@f @he N@f J5f @@f W.Yf @@@ O2@h '6KO.Yg V4@@0Yg J@HeN@Lf @@f 7@f@1f @@f@@f 3@f@@f O2@6Kg @(MI'@f N@LeJ@@f @)KO&@5f @@fn@1e @@@@@@@@f I4@@@@Hf @@f J@5f W&(Yf @@fj@5e W&(Yg @@LhJ@@ O&0Yg @@1h7@@ @@0Mh @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @@@@@e@f@@@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @KO&YfO26Xf J(Yhg @(Yhf O&@)Xe W-Xe @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@f@@f@@g @@(Mhe @@ej@5f@5g @@Hhf @0M @5e7@Hf(Yg @5hf W&@@@)Xg (YeJ@5/Khe.MI'1g W2@6Xg O20MheI'@,e O20MgV4@@6Xe W&(YV46Kh O&0YfI'@6Kf @@e@@@@@@@@e@@f V+Ye @@@@)Xf O&Ug N@g @g J5g W&@@@)Xg I'@1f.MI'1g W2@6Xg @@e@@e@@e@@f V'@f N@f @(Mhf@5f '6KO.Yg V4@@0Yg J5f W.Yf @@@@)Xf O&Ug N@g @g J5g '6KO.Yg I'@1f V4@@0Yg V'@f N@f J5f W.Yf 2 33 SDB boto SDB boto >>> import boto >>> sdb = boto.connect_sdb() >>> db = sdb.get_domain("my_domain_name") >>> db.get_item("item_name") ID >>> db.select("select * FROM `my_domain_name` WHERE `name` LIKE '%foo%' ORDER BY `name` DESC") name foo name SDB 2 1 SDB boto Django DB boto from boto.sdb.db.model import Model from boto.sdb.db.property import StringProperty, IntegerProperty, ReferenceProperty, ListProperty class SimpleObject(Model): """A simple object to show how SDB Persistence works in boto""" name = StringProperty() some_number = IntegerProperty() multi_value_property = ListProperty(str) class AnotherObject(Model): """A second SDB object used to show how references work""" lexicographical http://en.wikipedia.org/wiki/lexicographical_order order
W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @@g@@f @f@@f W2@@6Xg 3@g@5f @@f N@g@Hf @5f 3LeJ5f V/KeO.Yf V4@@0Yg W&Yf@f J@Hf W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g &@@@@@@@@f W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f W2@@6Xg @@f @5f J@Hf W.MeI/Xf W&Yf@f W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g 7HeN1f J@g@Lf 7@g@1f W2@@6Xg @@@ O2@h &@@@@@@@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f W&@@@@)Xf V/KeO.Yf 7(MI'@1f V4@@0Yg @HeN@@f @f@@f W2@@6Xg @@@@@@@@f @@f @5f J@Hf W&@@@@)Xf 75g 7(MI'@1f J(Yg @HeN@@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Yh W.Ye@f W.Yg @f@@f W2@@6Xg @@f @5f J@Hf @@@ O2@h @@ 75g J(Yg W.Yg W.Yh W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Ye@f @@@@@@@@f @@@@@@@5f @@ @f@hf @f@g J5g 7Hg @g @@@@@@@@f J5g @@@@@@@f 7Hg J(Mh @h 7Yhe J5h @@6Kh 7Hh @@@@6Xg @h I4@@)Xf J5h I'@1f 7Hh V'@f @he N@f J5f @@f W.Yf @@@ O2@h '6KO.Yg V4@@0Yg J@HeN@Lf @@f 7@f@1f @@f@@f 3@f@@f O2@6Kg @(MI'@f N@LeJ@@f @)KO&@5f @@fn@1e @@@@@@@@f I4@@@@Hf @@f J@5f W&(Yf @@fj@5e W&(Yg @@LhJ@@ O&0Yg @@1h7@@ @@0Mh @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @@@@@e@f@@@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @KO&YfO26Xf J(Yhg @(Yhf O&@)Xe W-Xe @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@f@@f@@g @@(Mhe @@ej@5f@5g @@Hhf @0M @5e7@Hf(Yg @5hf W&@@@)Xg (YeJ@5/Khe.MI'1g W2@6Xg O20MheI'@,e O20MgV4@@6Xe W&(YV46Kh O&0YfI'@6Kf @@e@@@@@@@@e@@f O&Ug N@g @g J5g W&g V+Ye @@@@)Xf I'@1f @@e@@e@@e@@f V'@f N@f @(Mhf@5f '6KO.Yg V4@@0Yg J5f W.Yf W.Yf@@g W&@g 7Yf@@g W.Ye@@g W.Ye@@g W.Y@@g W.Y@@g W&@@g @@@@@@@@@@@f @@g 34 name = StringProperty() object_link = ReferenceProperty(SimpleObject, collection_name="other_objects") 2 SimpleObject SDB python list id ID id Python UUIDUUID object_link collection_name SimpleObject boot boto SDB >>> my_obj = SimpleObject("object_id") >>> my_obj.name = "My Object Name" >>> my_obj.some_number = 1234 >>> my_obj.multi_value_property = ["foo", "bar"] >>> my_obj.put() >>> my_second_obj = AnotherObject() >>> my_second_obj = "Second Object" >>> my_second_obj.object_link = my_obj >>> my_second_obj.put() ID IDput ID ID ID >>> my_obj = SimpleObject.get_by_id("object_id")
W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @@g@@f @f@@f W2@@6Xg 3@g@5f @@f N@g@Hf @5f 3LeJ5f V/KeO.Yf V4@@0Yg W&Yf@f J@Hf W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g &@@@@@@@@f W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f W2@@6Xg @@f @5f J@Hf W.MeI/Xf W&Yf@f W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g 7HeN1f J@g@Lf 7@g@1f W2@@6Xg @@@ O2@h &@@@@@@@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f W&@@@@)Xf V/KeO.Yf 7(MI'@1f V4@@0Yg @HeN@@f @f@@f W2@@6Xg @@@@@@@@f @@f @5f J@Hf W&@@@@)Xf 75g 7(MI'@1f J(Yg @HeN@@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Yh W.Ye@f W.Yg @f@@f W2@@6Xg @@f @5f J@Hf @@@ O2@h @@ 75g J(Yg W.Yg W.Yh W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Ye@f @@@@@@@@f @@@@@@@5f @@ @f@hf @f@g J5g 7Hg @g @@@@@@@@f J5g @@@@@@@f 7Hg J(Mh @h 7Yhe J5h @@6Kh 7Hh @@@@6Xg @h I4@@)Xf J5h I'@1f 7Hh V'@f @he N@f J5f @@f W.Yf @@@ O2@h '6KO.Yg V4@@0Yg J@HeN@Lf @@f 7@f@1f @@f@@f 3@f@@f O2@6Kg @(MI'@f N@LeJ@@f @)KO&@5f @@fn@1e @@@@@@@@f I4@@@@Hf @@f J@5f W&(Yf @@fj@5e W&(Yg @@LhJ@@ O&0Yg @@1h7@@ @@0Mh @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @@@@@e@f@@@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @KO&YfO26Xf J(Yhg @(Yhf O&@)Xe W-Xe @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@f@@f@@g @@(Mhe @@ej@5f@5g @@Hhf @0M @5e7@Hf(Yg @5hf W&@@@)Xg (YeJ@5/Khe.MI'1g W2@6Xg O20MheI'@,e O20MgV4@@6Xe W&(YV46Kh O&0YfI'@6Kf @@e@@@@@@@@e@@f O&Ug N@g @g J5g V+Ye @@@@)Xf @@@@@@@f I'@1f J(Mh @@e@@e@@e@@f V'@f 7Yhe N@f @@6Kh @(Mhf@5f @@@@6Xg '6KO.Yg V4@@0Yg J5f I4@@)Xf W.Yf I'@1f '6KO.Yg V'@f V4@@0Yg N@f J5f W.Yf 2 35 >>> my_obj.name u'my Object Name' >>> my_obj.some_number 1234 >>> my_obj.multi_value_property [u'foo', u'bar'] >>> my_obj.other_objects.next().name u'second Object' other_objects next() Query Query generator SDB >>> my_obj.other_objects[0] SDB >>> query = my_obj.other_objects >>> query.filter("name like", "%Other") >>> query.order("-name") >>> for obj in query:... Other StopIteration 2.4 SaaS Google AppEngine Amazon Web Services Auto-Scaling Groups
W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @@g@@f @f@@f W2@@6Xg 3@g@5f @@f N@g@Hf @5f 3LeJ5f V/KeO.Yf V4@@0Yg W&Yf@f J@Hf W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g &@@@@@@@@f W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f W2@@6Xg @@f @5f J@Hf W.MeI/Xf W&Yf@f W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g 7HeN1f J@g@Lf 7@g@1f W2@@6Xg @@@ O2@h &@@@@@@@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f W&@@@@)Xf V/KeO.Yf 7(MI'@1f V4@@0Yg @HeN@@f @f@@f W2@@6Xg @@@@@@@@f @@f @5f J@Hf W&@@@@)Xf 75g 7(MI'@1f J(Yg @HeN@@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Yh W.Ye@f W.Yg @f@@f W2@@6Xg @@f @5f J@Hf @@@ O2@h @@ 75g J(Yg W.Yg W.Yh W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Ye@f @@@@@@@@f @@@@@@@5f @@ @f@hf @f@g J5g 7Hg @g @@@@@@@@f J5g @@@@@@@f 7Hg J(Mh @h 7Yhe J5h @@6Kh 7Hh @@@@6Xg @h I4@@)Xf J5h I'@1f 7Hh V'@f @he N@f J5f @@f W.Yf @@@ O2@h '6KO.Yg V4@@0Yg J@HeN@Lf @@f 7@f@1f @@f@@f 3@f@@f O2@6Kg @(MI'@f N@LeJ@@f @)KO&@5f @@fn@1e @@@@@@@@f I4@@@@Hf @@f J@5f W&(Yf @@fj@5e W&(Yg @@LhJ@@ O&0Yg @@1h7@@ @@0Mh @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @@@@@e@f@@@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @KO&YfO26Xf J(Yhg @(Yhf O&@)Xe W-Xe @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@f@@f@@g @@(Mhe @@ej@5f@5g @@Hhf @0M @5e7@Hf(Yg @5hf W&@@@)Xg (YeJ@5/Khe.MI'1g W2@6Xg O20MheI'@,e O20MgV4@@6Xe W&(YV46Kh O&0YfI'@6Kf @@e@@@@@@@@e@@f V+Ye @@@@)Xf O&Ug I'@1f N@g @g J5g @@e@@e@@e@@f V'@f W&(Yh N@f 7@Hhe @(Mhf@5f W2(Mg W&(Yh O2@@f '6KO.Yg V4@@0Yg J5f J@@@@6Kg W.Yf 7@(MI'@g @@HeN@Lf @@f@1f @@f@@f 3@f@5f N@LeJ@Hf @)KO&@g I4@0Mg 36 Amazon Elastic Load Balancing ELB 2.4.1 Elastic Load Balancing Amazon Elastic Load Balancing ELB IDELB ELB HTTP TCP ELB Auto-Scaling Groups Auto-Scaling Groups ELB boto elbadmin boto ELB % elbadmin Usage: elbadmin [options] [command] Commands: list ls List all Elastic Load Balancers delete <name> Delete ELB <name> get <name> Get all instances associated with <name> create <name> Create an ELB add <name> <instance> Add <instance> in ELB <name> remove rm <name> <instance> Remove <instance> from ELB <name> enable en <name> <zone> Enable Zone <zone> for ELB <name> disable <name> <zone> Disable Zone <zone> for ELB <name>
W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @@g@@f @f@@f W2@@6Xg 3@g@5f @@f N@g@Hf @5f 3LeJ5f V/KeO.Yf V4@@0Yg W&Yf@f J@Hf W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g &@@@@@@@@f W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f W2@@6Xg @@f @5f J@Hf W.MeI/Xf W&Yf@f W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g 7HeN1f J@g@Lf 7@g@1f W2@@6Xg @@@ O2@h &@@@@@@@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f W&@@@@)Xf V/KeO.Yf 7(MI'@1f V4@@0Yg @HeN@@f @f@@f W2@@6Xg @@@@@@@@f @@f @5f J@Hf W&@@@@)Xf 75g 7(MI'@1f J(Yg @HeN@@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Yh W.Ye@f W.Yg @f@@f W2@@6Xg @@f @5f J@Hf @@@ O2@h @@ 75g J(Yg W.Yg W.Yh W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Ye@f @@@@@@@@f @@@@@@@5f @@ @f@hf @f@g J5g 7Hg @g @@@@@@@@f J5g @@@@@@@f 7Hg J(Mh @h 7Yhe J5h @@6Kh 7Hh @@@@6Xg @h I4@@)Xf J5h I'@1f 7Hh V'@f @he N@f J5f @@f W.Yf @@@ O2@h '6KO.Yg V4@@0Yg J@HeN@Lf @@f 7@f@1f @@f@@f 3@f@@f O2@6Kg @(MI'@f N@LeJ@@f @)KO&@5f @@fn@1e @@@@@@@@f I4@@@@Hf @@f J@5f W&(Yf @@fj@5e W&(Yg @@LhJ@@ O&0Yg @@1h7@@ @@0Mh @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @@@@@e@f@@@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @KO&YfO26Xf J(Yhg @(Yhf O&@)Xe W-Xe @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@f@@f@@g @@(Mhe @@ej@5f@5g @@Hhf @0M @5e7@Hf(Yg @5hf W&@@@)Xg (YeJ@5/Khe.MI'1g W2@6Xg O20MheI'@,e O20MgV4@@6Xe W&(YV46Kh O&0YfI'@6Kf @@e@@@@@@@@e@@f O&Ug N@g @g J5g @@@@@@@@f V+Ye @@@@)Xf @@@@@@@5f I'@1f @f@hf @@e@@e@@e@@f V'@f @f@g N@f J5g @(Mhf@5f 7Hg '6KO.Yg V4@@0Yg J5f @g W.Yf J5h J5g 7Hh 7Hg @he @h J5h 7Hh @h 2 37 Options: --version show program's version number and exit -h, --help show this help message and exit -z ZONES, --zone=zones Operate on zone -l LISTENERS, --listener=listeners Specify Listener in,out,proto ELB % elbadmin -l 80,80,http -z us-east-1a create test Name: test DNS Name: test-68924542.us-east-1.elb.amazonaws.com Listeners --------- IN OUT PROTO 80 80 HTTP Zones --------- us-east-1a Instances --------- listener zone HTTP tcp http DNS Name elbadmin get ELB CNAME DNS Name IP IP CNAME A Amazon ELB HTTPS SSL Amazon boto Amazon HTTPS 80 443 boto elbadmin
2.4.2 ELB ELB elbadmin add % elbadmin add test i-2308974 ELB Amazon service level agreement SLA 99% 2 ELB boto % elbadmin add test i-2308974 % elbadmin rm test i-0983123 % kill_instance i-0983123 elbadmin ID 38 http://en.wikipedia.org/wiki/service_level_agreement W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W2@6Xg W&@@@)Xg.MI'1g N@g @g J5g O&Ug @@@@)Xf I'@1f V'@f N@f @f J5f W.Yf '6KO.Yg V4@@0Yg W2@6Xg W.MI/Xf 7HeN1f @f@f @LeJ5f 3)KO.Yf V'@@@Hg S@@@Lg W.R4@)Xf W.YeI')Xf 7HeV'1f @gn@f @g@f 3LfJ5f V/KeO.Yf V4@@@0Yf
W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @@g@@f @f@@f W2@@6Xg 3@g@5f @@f N@g@Hf @5f 3LeJ5f V/KeO.Yf V4@@0Yg W&Yf@f J@Hf W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g &@@@@@@@@f W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f W2@@6Xg @@f @5f J@Hf W.MeI/Xf W&Yf@f W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g 7HeN1f J@g@Lf 7@g@1f W2@@6Xg @@@ O2@h &@@@@@@@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f W&@@@@)Xf V/KeO.Yf 7(MI'@1f V4@@0Yg @HeN@@f @f@@f W2@@6Xg @@@@@@@@f @@f @5f J@Hf W&@@@@)Xf 75g 7(MI'@1f J(Yg @HeN@@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Yh W.Ye@f W.Yg @f@@f W2@@6Xg @@f @5f J@Hf @@@ O2@h @@ 75g J(Yg W.Yg W.Yh W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Ye@f @@@@@@@@f @@@@@@@5f @@ @f@hf @f@g J5g 7Hg @g @@@@@@@@f J5g @@@@@@@f 7Hg J(Mh @h 7Yhe J5h @@6Kh 7Hh @@@@6Xg @h I4@@)Xf J5h I'@1f 7Hh V'@f @he N@f J5f @@f W.Yf @@@ O2@h '6KO.Yg V4@@0Yg J@HeN@Lf @@f 7@f@1f @@f@@f 3@f@@f O2@6Kg @(MI'@f N@LeJ@@f @)KO&@5f @@fn@1e @@@@@@@@f I4@@@@Hf @@f J@5f W&(Yf @@fj@5e W&(Yg @@LhJ@@ O&0Yg @@1h7@@ @@0Mh @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @@@@@e@f@@@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @KO&YfO26Xf J(Yhg @(Yhf O&@)Xe W-Xe @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@f@@f@@g @@(Mhe @@ej@5f@5g @@Hhf @0M @5e7@Hf(Yg @5hf W&@@@)Xg (YeJ@5/Khe.MI'1g W2@6Xg O20MheI'@,e O20MgV4@@6Xe W&(YV46Kh O&0YfI'@6Kf @@e@@@@@@@@e@@f V+Ye @@@@)Xf O&Ug I'@1f N@g @g J5g J@HeN@Lf @@e@@e@@e@@f V'@f 7@f@1f N@f @(Mhf@5f @@f@@f O2@6Kg @(MI'@f '6KO.Yg V4@@0Yg J5f 3@f@@f W.Yf N@LeJ@@f @)KO&@5f @@0Mh I4@@@@Hf O&0Yg W&(Yf W&(Yg @@f J@5f 2 39 list_instances boto % list_instances ID Zone Groups Hostname ------------------------------------------------------------------ i-69c3e401 us-east-1a Wordpress..compute-1.amazonaws.com i-e4675a8c us-east-1c default..compute-1.amazonaws.com i-e6675a8e us-east-1d default..compute-1.amazonaws.com i-1a665b72 us-east-1a default..compute-1.amazonaws.com ID ELB ELB 2.5 % elbadmin delete test 2.4.3 boto pyami email Notification gmail smtp [Notification] smtp_host = smtp.gmail.com smtp_port = 587 smtp_tls = True smtp_user = my-sending-user@gmail.com smtp_pass = MY_PASSWORD smtp_from = my-sending-user@gmail.com smtp_to = my-recipient@gmail.com ubuntu
W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @@g@@f @f@@f W2@@6Xg 3@g@5f @@f N@g@Hf @5f 3LeJ5f V/KeO.Yf V4@@0Yg W&Yf@f J@Hf W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g &@@@@@@@@f W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f W2@@6Xg @@f @5f J@Hf W.MeI/Xf W&Yf@f W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g 7HeN1f J@g@Lf 7@g@1f W2@@6Xg @@@ O2@h &@@@@@@@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f W&@@@@)Xf V/KeO.Yf 7(MI'@1f V4@@0Yg @HeN@@f @f@@f W2@@6Xg @@@@@@@@f @@f @5f J@Hf W&@@@@)Xf 75g 7(MI'@1f J(Yg @HeN@@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Yh W.Ye@f W.Yg @f@@f W2@@6Xg @@f @5f J@Hf @@@ O2@h @@ 75g J(Yg W.Yg W.Yh W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Ye@f @@@@@@@@f @@@@@@@5f @@ @f@hf @f@g J5g 7Hg @g @@@@@@@@f J5g @@@@@@@f 7Hg J(Mh @h 7Yhe J5h @@6Kh 7Hh @@@@6Xg @h I4@@)Xf J5h I'@1f 7Hh V'@f @he N@f J5f @@f W.Yf @@@ O2@h '6KO.Yg V4@@0Yg J@HeN@Lf @@f 7@f@1f @@f@@f 3@f@@f O2@6Kg @(MI'@f N@LeJ@@f @)KO&@5f @@fn@1e @@@@@@@@f I4@@@@Hf @@f J@5f W&(Yf @@fj@5e W&(Yg @@LhJ@@ O&0Yg @@1h7@@ @@0Mh @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @@@@@e@f@@@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @KO&YfO26Xf J(Yhg @(Yhf O&@)Xe W-Xe @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@f@@f@@g @@(Mhe @@ej@5f@5g @@Hhf @5hf W&g @0M @5e7@Hf(Yg (YeJ@5/Khe O20MheI'@,e O20MgV4@@6Xe W&(YV46Kh O&0YfI'@6Kf @@e@@@@@@@@e@@f V+Ye W.Yf@@g W.Ye@@g W.Ye@@g W.Y@@g W.Y@@g W&@g W&@@g W.MeI/Xf 7Yf@@g 7HeN1f @@e@@e@@e@@f J@g@Lf @@@@@@@@@@@f 7@g@1f @(Mhf@5f W2@@6Xg @@g @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg 40 from boto.pyami.installers.ubuntu.installer import Installer import boto class ELBRegister(Installer): """Register this instance with a specific ELB""" def install(self): """Register with the ELB""" # code here to verify that you're # successfully installed and running elb_name = boto.config.get("elb", "name") elb = boto.connect_elb() b = ebl.get_all_load_balancers(elb_name) if len(b) <1: raise Exception, "No Load balancer found" b = b[0] b.register_instances([boto.config.get_instance ("instance_id")]) def main(self): self.install() ELB name 2.5 HTTP REST HTTP REST SaaS HTTP SOAP Representational State Transfer REST Roy Fielding 2000 REST Architectural Styles and the Design of Network-basedSoftware Architectures http://www.ics.uci.edu/~fielding/pubs/ dissertation/top.htm
HTTP REST HTTP HTTP HTTP header body HTTP <head> <body> REST REST XML SOAP Java Web Web Service Definition Language WSDL API API HTTP 2.5.1 HTTP header HTTP header REST header HTTP HTTP header DNS HTTP GET /module_name/id_argumentparam1=value1¶m2=value2 module_name.get(id_argument, param1=value1,param2=value2) module_name.get(id_argument, {param1=value1,param2=value2}) web API URI 2 41 W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W&g W&@g W&@@g W.Y@@g W.Y@@g W.Ye@@g W.Ye@@g W.Yf@@g 7Yf@@g @@@@@@@@@@@f @@@@@@@@@@@f @@g @@g @@g @@g @@g O2@h @@@ @@@@@@@@f
REST REST 4 Web REST CRUD HTTP header REST API If-Match header If-Match header header if header header 412 Precondition Failed header header412 Precondition Failed header PUT If-Modified-Since header If-Modified-Since header HTTP GMT 304 Not Modified If-Unmodified-Since ID If-Unmodified-Since header GMT HTTP If- 42 W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W&g W&@g W&@@g W.Y@@g W.Y@@g W.Ye@@g W.Ye@@g W.Yf@@g 7Yf@@g @@@@@@@@@@@f @@@@@@@@@@@f @@g @@g @@g @@g @@g W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f
Modified header Accept Accept header header JSON XML API API content type content type Accept: text/xml+app-1.0 1.0 content type header HTML XML JSON Authorization Authorization header HTTP base64 basic HTTP SSL header HTTP 2.5.2 Body REST body XML JSON Accept header 2 43 W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W&g W&@g W&@@g W.Y@@g W.Y@@g W.Ye@@g W.Ye@@g W.Yf@@g 7Yf@@g @@@@@@@@@@@f @@@@@@@@@@@f @@g @@g @@g @@g @@g W2@6Xg W&@@@)Xg.MI'1g N@g @g J5g O&Ug @@@@)Xf I'@1f V'@f N@f @f J5f W.Yf '6KO.Yg V4@@0Yg
XML XSLT XML JSON REST 2.5.3 REST property GET GET URL URL /collection_name/resource_id/property_namequery resourde_id property_name query query property ID POST-ID 2010 URL /posts/post-id/commentssubmitted=2010% posts POST-ID comments submitted 2010% 44 W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W&g W&@g W&@@g W.Y@@g W.Y@@g W.Ye@@g W.Ye@@g W.Yf@@g 7Yf@@g @@@@@@@@@@@f @@@@@@@@@@@f @@g @@g @@g @@g @@g W&g W&@g W&@@g W.Y@@g W.Y@@g W.Ye@@g W.Ye@@g W.Yf@@g 7Yf@@g @@@@@@@@@@@f @@@@@@@@@@@f @@g @@g @@g @@g @@g
Location header GET query HTTP 1 XML ATOM URL URL Amazon Web Services SimpleDB SimpleDB next_token URL next_token ne / GET URL URL PUT HTTPPUT URL PUT P SET 2 45 W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W&g W&@g W&@@g W.Y@@g W.Y@@g W.Ye@@g W.Ye@@g W.Yf@@g 7Yf@@g @@@@@@@@@@@f @@@@@@@@@@@f @@g @@g @@g @@g @@g @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg
PUT ID ID PUT GET PUT PUT PUT PUT 201 Created 204 No Content 202 Accepted POST POST ID Location header ID POST PUT POST PUT POST POST PUT DELETE DELETE 46 W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W&g W&@g W&@@g W.Y@@g W.Y@@g W.Ye@@g W.Ye@@g W.Yf@@g 7Yf@@g @@@@@@@@@@@f @@@@@@@@@@@f @@g @@g @@g @@g @@g O2@@f W2(Mg W&(Yh W&(Yh 7@Hhe J@@@@6Kg 7@(MI'@g @@HeN@Lf @@f@1f @@f@@f @@f@@f 3@f@5f N@LeJ@Hf @)KO&@g I4@0Mg
DELETE 409 Conflict DELETE 202 Accepted DELETE PUT PUT None Null HEAD URL HEAD GET header X-Results header OPTIONS URL OPTIONS URL header Accept header DELETE 2.6 2 47 W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W2@@6Xg W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f V/KeO.Yf V4@@0Yg O2@h @@@ @@@@@@@@f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f @@f @5f J@Hf 75g J(Yg W.Yg W.Yh W.Ye@f W&Yf@f W&@@@@@@@f &@@@@@@@@f @@ @@ O2@h @@@ @@@@@@@@f @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he @@@@@@@f @@@@@@@f J(Mh 7Yhe @@6Kh @@@@6Xg I4@@)Xf I'@1f V'@f N@f @f @f J5f W.Yf '6KO.Yg V4@@0Yg @@f @@f @@f @@f O2@h @@@ @@@@@@@@f O2@6Kg @(MI'@f J@HeN@Lf 7@f@1f @@f@@f @@f@@f 3@f@@f N@LeJ@@f @)KO&@5f I4@@@@Hf @@f J@5f W&(Yf W&(Yg O&0Yg @@0Mh @@fn@1e @@fj@5e @@LhJ@@ @@1h7@@ @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @@@@@e@f@@@@ W-Xe O&@)Xe @(Yhf J(Yhg @KO&YfO26Xf @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@f@@f@@g @@ej@5f@5g @5e7@Hf(Yg (YeJ@5/Khe W&(YV46Kh O&0YfI'@6Kf O20MgV4@@6Xe O20MheI'@,e @0M V+Ye @@(Mhe @@Hhf @5hf @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@@@@@@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @@e@@e@@e@@f @(Mhf@5f W&g W&@g W&@@g W.Y@@g W.Y@@g W.Ye@@g W.Ye@@g W.Yf@@g 7Yf@@g @@@@@@@@@@@f @@@@@@@@@@@f @@g @@g @@g @@g @@g @@@@@@@@f @@@@@@@5f @f@hf @f@g J5g 7Hg @g J5g 7Hg @h J5h 7Hh @h J5h 7Hh @he
W.MeI/Xf 7HeN1f J@g@Lf 7@g@1f W2@@6Xg W&@@@@)Xf 7(MI'@1f @HeN@@f @@g@@f @f@@f W2@@6Xg 3@g@5f @@f N@g@Hf @5f 3LeJ5f V/KeO.Yf V4@@0Yg W&Yf@f J@Hf W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g &@@@@@@@@f W&@@@@)Xf 7(MI'@1f @HeN@@f @f@@f W2@@6Xg @@f @5f J@Hf W.MeI/Xf W&Yf@f W&@@@@@@@f W.Yh W.Ye@f J(Yg W.Yg 75g 7HeN1f J@g@Lf 7@g@1f W2@@6Xg @@@ O2@h &@@@@@@@@f @@g@@f 3@g@5f N@g@Hf 3LeJ5f W&@@@@)Xf V/KeO.Yf 7(MI'@1f V4@@0Yg @HeN@@f @f@@f W2@@6Xg @@@@@@@@f @@f @5f J@Hf W&@@@@)Xf 75g 7(MI'@1f J(Yg @HeN@@f W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Yh W.Ye@f W.Yg @f@@f W2@@6Xg @@f @5f J@Hf @@@ O2@h @@ 75g J(Yg W.Yg W.Yh W&Yf@f W&@@@@@@@f &@@@@@@@@f W.Ye@f @@@@@@@@f @@@@@@@5f @@ @f@hf @f@g J5g 7Hg @g @@@@@@@@f J5g @@@@@@@f 7Hg J(Mh @h 7Yhe J5h @@6Kh 7Hh @@@@6Xg @h I4@@)Xf J5h I'@1f 7Hh V'@f @he N@f J5f @@f W.Yf @@@ O2@h '6KO.Yg V4@@0Yg J@HeN@Lf @@f 7@f@1f @@f@@f 3@f@@f O2@6Kg @(MI'@f N@LeJ@@f @)KO&@5f @@fn@1e @@@@@@@@f I4@@@@Hf @@f J@5f W&(Yf @@fj@5e W&(Yg @@LhJ@@ O&0Yg @@1h7@@ @@0Mh @@1h7Y@@ @3@LfJ5@@ @N@1f7H@@ @3@LfJ5e@@ @N@1f7He@@ @@@@@e@f@@@@ @e3@lj5e@@ @en@17he@@ @e3@c5f@@ @en@@@hf@@ @f3@5f@@ @fn@hf@@ @KO&YfO26Xf J(Yhg @(Yhf O&@)Xe W-Xe @@@@@@@@@@@@@@@)f @@Hf @@f@kf@@g @@f@@@e@@g @@f@@he@@g @Kf@Yf @@@@@@@@@@@@@@@@@@)e @@e@@e@@e@@he @@f@@f@@g @@(Mhe @@ej@5f@5g @@Hhf @0M @5e7@Hf(Yg @5hf (YeJ@5/Khe O20MheI'@,e O20MgV4@@6Xe W&(YV46Kh O&0YfI'@6Kf @@e@@@@@@@@e@@f W.Ye@@g W.Ye@@g W.Y@@g W.Y@@g W&@g W&@@g W&g W2@6Xg V+Ye W.Yf@@g W.MI/Xf 7Yf@@g 7HeN1f @@e@@e@@e@@f @@@@@@@@@@@f @(Mhf@5f @@g W.YeI')Xf @f@f 7HeV'1f @LeJ5f @gn@f 3)KO.Yf @g@f V'@@@Hg 3LfJ5f S@@@Lg V/KeO.Yf W.R4@)Xf V4@@@0Yf 48 XML XSLT Django Ruby Rails XSLT XSLT XML hasauth 3 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns:app="url/to/app"> <!-- By default pass through all XML elements --> <xsl:template match="@* node()" priority="-10"> <xsl:copy> <xsl:apply-templates select="@* node()"/> </xsl:copy> </xsl:template> <!-- Object-level permissions --> <xsl:template match="/node()"> <xsl:if test="app:hasauth('read', current())"> <xsl:copy> <xsl:apply-templates select="@* node()" mode="property"/> </xsl:copy> </xsl:if> </xsl:template> <!-- Property-level permissions --> <xsl:template match="node()" mode="property"> <xsl:if test="app:hasauth('read',.., current() )"> <xsl:copy> <xsl:apply-templates select="@* node()" /> </xsl:copy>