AWS CLIとBOTO 3にサービスを加える方法


このポストでは、AWSサービスをAWS CLIユーティリティに追加し、BOTO 3で使用する方法を共有します.
AWS DISPASHERコミュニティがAWS DAISASHASERコンソールにCLIアクセスの不足であったことを定期的に上げています.ドンバーバーのおかげで私は最終的にどのようにAWS CLIとBOTO 3ライブラリの仕事を理解しており、あなたとそれを共有したいと思います.

クリエイティブ・コモンズの下で使われるアイコンイメージhere

AWS CLIとは


AWS Command Line Interface 端末を通してAWSサービスと対話するのに使えるユーティリティです.Amazon Webサービスが提供するサービスの多くをサポートします.
accessanalyzer                           | acm                                     
acm-pca                                  | alexaforbusiness                        
amp                                      | amplify                                 
amplifybackend                           | apigateway                              
apigatewaymanagementapi                  | apigatewayv2                            
appconfig                                | appflow                                 
appintegrations                          | application-autoscaling                 
application-insights                     | appmesh                                 
appstream                                | appsync                                 
athena                                   | auditmanager                            
autoscaling                              | autoscaling-plans                       
backup                                   | batch                                   
braket                                   | budgets                                 
ce                                       | chime                                   
cloud9                                   | clouddirectory                          
cloudformation                           | cloudfront                              
cloudhsm                                 | cloudhsmv2                              
cloudsearch                              | cloudsearchdomain                       
cloudtrail                               | cloudwatch                              
codeartifact                             | codebuild                               
codecommit                               | codeguru-reviewer                       
codeguruprofiler                         | codepipeline                            
codestar                                 | codestar-connections                    
codestar-notifications                   | cognito-identity                        
cognito-idp                              | cognito-sync                            
comprehend                               | comprehendmedical                       
compute-optimizer                        | connect                                 
connect-contact-lens                     | connectparticipant                      
cur                                      | customer-profiles                       
databrew                                 | dataexchange                            
datapipeline                             | datasync                                
dax                                      | deepracer                               
detective                                | devicefarm                              
devops-guru                              | directconnect                           
discovery                                | dlm                                     
dms                                      | docdb                                   
ds                                       | dynamodb                                
dynamodbstreams                          | ebs                                     
ec2                                      | ec2-instance-connect                    
ecr                                      | ecr-public                              
ecs                                      | efs                                     
eks                                      | elastic-inference                       
elasticache                              | elasticbeanstalk                        
elastictranscoder                        | elb                                     
elbv2                                    | emr                                     
emr-containers                           | es                                      
events                                   | firehose                                
fms                                      | forecast                                
forecastquery                            | frauddetector                           
fsx                                      | gamelift                                
glacier                                  | globalaccelerator                       
glue                                     | greengrass                              
greengrassv2                             | groundstation                           
guardduty                                | health                                  
healthlake                               | honeycode                               
iam                                      | identitystore                           
imagebuilder                             | importexport                            
inspector                                | iot                                     
iot-data                                 | iot-jobs-data                           
iot1click-devices                        | iot1click-projects                      
iotanalytics                             | iotdeviceadvisor                        
iotevents                                | iotevents-data                          
iotfleethub                              | iotsecuretunneling                      
iotsitewise                              | iotthingsgraph                          
iotwireless                              | ivs                                     
kafka                                    | kendra                                  
kinesis                                  | kinesis-video-archived-media            
kinesis-video-media                      | kinesis-video-signaling                 
kinesisanalytics                         | kinesisanalyticsv2                      
kinesisvideo                             | kms                                     
lakeformation                            | lambda                                  
lex-models                               | lex-runtime                             
license-manager                          | lightsail                               
location                                 | logs                                    
lookoutvision                            | machinelearning                         
macie                                    | macie2                                  
managedblockchain                        | marketplace-catalog                     
marketplace-entitlement                  | marketplacecommerceanalytics            
mediaconnect                             | mediaconvert                            
medialive                                | mediapackage                            
mediapackage-vod                         | mediastore                              
mediastore-data                          | mediatailor                             
meteringmarketplace                      | mgh                                     
migrationhub-config                      | mobile                                  
mq                                       | mturk                                   
mwaa                                     | neptune                                 
network-firewall                         | networkmanager                          
opsworks                                 | opsworkscm                              
organizations                            | outposts                                
personalize                              | personalize-events                      
personalize-runtime                      | pi                                      
pinpoint                                 | pinpoint-email                          
pinpoint-sms-voice                       | polly                                   
pricing                                  | qldb                                    
qldb-session                             | quicksight                              
ram                                      | rds                                     
rds-data                                 | redshift                                
redshift-data                            | rekognition                             
resource-groups                          | resourcegroupstaggingapi                
robomaker                                | route53                                 
route53domains                           | route53resolver                         
s3control                                | s3outposts                              
sagemaker                                | sagemaker-a2i-runtime                   
sagemaker-edge                           | sagemaker-featurestore-runtime          
sagemaker-runtime                        | savingsplans                            
schemas                                  | sdb                                     
secretsmanager                           | securityhub                             
serverlessrepo                           | service-quotas                          
servicecatalog                           | servicecatalog-appregistry              
servicediscovery                         | ses                                     
sesv2                                    | shield                                  
signer                                   | sms                                     
sms-voice                                | snowball                                
sns                                      | sqs                                     
ssm                                      | sso                                     
sso-admin                                | sso-oidc                                
stepfunctions                            | storagegateway                          
sts                                      | support                                 
swf                                      | synthetics                              
textract                                 | timestream-query                        
timestream-write                         | transcribe                              
transfer                                 | translate                               
waf                                      | waf-regional                            
wafv2                                    | wellarchitected                         
workdocs                                 | worklink                                
workmail                                 | workmailmessageflow                     
workspaces                               | xray                                    
s3api                                    | s3                                      
configure                                | deploy                                  
configservice                            | opsworks-cm                             
runtime.sagemaker                        | history
このツールは、AmazonのBOTO 3ライブラリを使っており、Pythonでのこれらのサービスへのアクセスを可能にします.BOTO 3は、サービスの定義を含む依存関係としてボトコアを使用します.

AWS CLIでサービス終点はどのように定義されますか?


それぞれのサービスには少なくともJSONで書かれたサービス定義ファイルがあり、いくつかの情報が含まれています.
  • version -サービス定義ファイルのバージョン
  • メタデータ-サービスとの対話に関する追加情報
  • 操作-どのリクエストをサービスに送信することができますか
  • 形-操作入力と出力
  • ドキュメンテーション-ドキュメントを形成するのに用いられるデータの断片aws <command> help
  • これは利用可能な唯一のファイルではありませんし、それらの詳細について読むことができますloaders.py docstring . 彼らは私の場合では必要ない.
    SDFファイルは以下の場所の一つに存在する必要があります.
  • <botocore root>/data/
  • ~/.aws/models
  • のリストに追加されたパスAWS_DATA_PATH env var
  • BOTO 3を使用している場合は、デフォルトのローダにあなたの場所を追加するコードを使用することもできます.

    私は自分のサービス定義を作成できますか?


    そうは思わない.私は実際にそれを計画していました、しかし、それから、私はあなたが正確なサービスAPI終点とそれを扱うことができるバージョンを知っている必要があると理解しました.一旦あなたがあなたのサービスコンソールページがAPIゲートウェイを呼んでいるものを観察することができるならば、同じあなた自身をしてください.
    しかし、私はそれが使用しないケースAWSの後であると思います.サービス作者がAPIが準備ができていると決定するとき、彼らはバージョンとともにそれを公開することができます、彼らはプレビューへの接近による人々のためにサービス定義ファイルを提供することができます、そして、彼らはAPIを使うことができます.あなたがDevチームと接触しているならば、あなたは若干のかわいい試みをアプローチすることができます、そして、多分、彼らはあなたとそれを共有するでしょう.

    DAXプロモ


    あなたはまだドンの再発明2020話を見ていない場合"Shift your ML model into overdrive with AWS DeepRacer analysis tools" 私はあなたがすることをお勧めします.トークドンの準備の一部としてAWSによって提供されるログ解析ツールにいくつかの更新を準備しています.ツールは1日1から一緒にされているDeepRacer workshops . 私はこの新しい行を見ました.
    region = "us-east-1"
    dr_client = boto3.client('deepracer', region_name=region,
            endpoint_url="https://deepracer-prod.{}.amazonaws.com".format(region))
    models = dr_client.list_models(ModelType="REINFORCEMENT_LEARNING",MaxResults=100)["Models"]
    
    と思う:“クール、我々は今AWS CLIを使用することができます!”学んだこと:仕事に何かを得ようとするとき、提供されるコードの半分をスキップしないでください.このコードの右上に次のようにします.
    envroot = os.getcwd()
    aws_data_path = set(os.environ.get('AWS_DATA_PATH', '').split(os.pathsep))
    aws_data_path.add(os.path.join(envroot, 'models'))
    os.environ.update({'AWS_DATA_PATH': os.pathsep.join(aws_data_path)})
    
    そこにはThe service definition file for DeepRacer .
    サービス定義ファイルを追加しましたdeepracer-utils 0.8 . BOTO 3で使用する場合は、次のように実行します.
    from deepracer.boto3_enhancer import add_deepracer
    
    client = deepracer_client()
    
    dir(client)
    
    私はすでにそれを再生し始めることができますが、AWS CLIやいくつかの便利なユースケース、例とおそらくDocsで使用するために更新を期待しています.