def _connect_to_aws_service(self, service_name):
"""
Connect to the specified AWS service via explicit credentials
(shared by the AWS CLI) or an instance role
"""
service = None
region = self.args.aws_region # prefer explicit region vs. CLI config
if not region: region = self._get_aws_region_from_config()
try:
aws = boto3.session.Session(aws_access_key_id=self.aws_credentials['aws_access_key_id'], aws_secret_access_key=self.aws_credentials['aws_secret_access_key'], region_name=region)
service = aws.client(service_name)
self._log("Connected to AWS {} in region {}".format(service_name.capitalize(), region))
except Exception, err:
self._log("Could not connect to AWS {} in region {} using local CLI credentials".format(service_name.capitalize(), region), err=err)
try:
service = boto3.client(service_name)
self._log("Connected to AWS {} in region {}".format(service_name))
except Exception, err:
self._log("Could not connect to AWS {} in region {} using an instance role".format(service_name.capitalize(), region), err=err)
return service
评论列表
文章目录