本文整理匯總了Python中botocore.session方法的典型用法代碼示例。如果您正苦於以下問題:Python botocore.session方法的具體用法?Python botocore.session怎麽用?Python botocore.session使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類botocore
的用法示例。
在下文中一共展示了botocore.session方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: get_iam_username
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def get_iam_username(cls):
if cls._default_iam_username is None:
try:
user = resources.iam.CurrentUser().user
cls._default_iam_username = getattr(user, "name", ARN(user.arn).resource.split("/")[-1])
except Exception as e:
try:
if "Must specify userName" in str(e) or ("assumed-role" in str(e) and "botocore-session" in str(e)):
cur_session = boto3.Session()._session
src_profile = cur_session.full_config["profiles"][cur_session.profile]["source_profile"]
src_session = boto3.Session(profile_name=src_profile)
cls._default_iam_username = src_session.resource("iam").CurrentUser().user.name
else:
caller_arn = ARN(clients.sts.get_caller_identity()["Arn"])
cls._default_iam_username = caller_arn.resource.split("/")[-1]
except Exception:
cls._default_iam_username = "unknown"
return cls._default_iam_username
示例2: _get_botocore_session
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def _get_botocore_session():
if _get_botocore_session.botocore_session is None:
LOG.debug('Creating new Botocore Session')
LOG.debug('Botocore version: {0}'.format(botocore.__version__))
session = botocore.session.get_session({
'profile': (None, _profile_env_var, _profile, None),
})
session.set_config_variable('region', _region_name)
session.set_config_variable('profile', _profile)
session.register_component('data_loader', _get_data_loader())
_set_user_agent_for_session(session)
_get_botocore_session.botocore_session = session
if _debug:
session.set_debug_logger()
return _get_botocore_session.botocore_session
示例3: handle_argquery
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def handle_argquery(parsed_args) -> int:
"""Processes the arguments for the argquery subcommand and executes related tasks"""
session = _grab_session(parsed_args)
graph = principalmapper.graphing.graph_actions.get_existing_graph(session, parsed_args.account, parsed_args.debug)
# process condition args to generate input dict
conditions = {}
if parsed_args.condition is not None:
for arg in parsed_args.condition:
# split on equals-sign (=), assume first instance separates the key and value
components = arg.split('=')
if len(components) < 2:
print('Format for condition args not matched: <key>=<value>')
return 64
key = components[0]
value = '='.join(components[1:])
conditions.update({key: value})
query_actions.argquery(graph, parsed_args.principal, parsed_args.action, parsed_args.resource, conditions,
parsed_args.preset, parsed_args.skip_admin, sys.stdout, parsed_args.debug)
return 0
示例4: __init__
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def __init__(self, password_prompter, requests_session=None):
"""Retrieve SAML assertion using form based auth.
This class can retrieve a SAML assertion by using form
based auth. The supported workflow is:
* Make a GET request to ``saml_endpoint``
* Parse the HTML to look for an HTML form
* Fill in the form data with the username, password
* Make a POST request to the URL indicated by the form
action with the filled in form data.
* Parse the HTML returned from the service and
extract out the SAMLAssertion.
:param password_prompter: A function that takes a prompt string and
returns a password string.
:param requests_session: A requests session object used to make
requests to the saml provider.
"""
if requests_session is None:
requests_session = requests.Session()
self._requests_session = requests_session
self._password_prompter = password_prompter
示例5: test_session
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def test_session(region_name, service_name, make_test_session):
"""Test Session creation."""
localstack = make_test_session(region_name=region_name)
ls_session = localstack.botocore.session()
assert isinstance(ls_session, localstack_botocore.Session)
if hasattr(localstack, "_container"):
with pytest.raises(exceptions.ContainerNotStartedError):
# Can't create clients until the container is started,
# because the client needs to know what port its
# target service is running on.
bc_client = ls_session.create_client(service_name, localstack.region_name)
with localstack: # Start container.
bc_client = ls_session.create_client(service_name, localstack.region_name)
assert isinstance(bc_client, botocore.client.BaseClient)
assert "127.0.0.1" in bc_client._endpoint.host
示例6: make_session
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def make_session(identity_profile):
session = botocore.session.Session(profile=identity_profile)
try:
session3 = boto3.session.Session(botocore_session=session)
except botocore.exceptions.ProfileNotFound as err:
print(str(err), file=sys.stderr)
if session.available_profiles:
print("Available profiles: %s" %
", ".join(sorted(session.available_profiles)),
file=sys.stderr)
print("You can specify a profile by passing it with the -i "
"command line flag.", file=sys.stderr)
else:
print("You have no AWS profiles configured. Please run 'aws "
"configure --profile identity' to get started.",
file=sys.stderr)
return None, None, USER_RECOVERABLE_ERROR
return session, session3, None
示例7: __init__
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def __init__(self, session=None, api_policy_actions=None,
custom_policy_actions=None):
# type: (Any, APIPolicyT, CustomPolicyT) -> None
if session is None:
session = botocore.session.get_session()
# The difference between api_policy_actions and custom_policy_actions
# is that api_policy_actions correspond to the 1-1 method to API calls
# exposed in boto3/botocore clients whereas custom_policy_actions
# correspond to method names that represent high level abstractions
# that are typically hand written (e.g s3.download_file()). These
# are kept as separate files because we manage these files
# separately.
if api_policy_actions is None:
api_policy_actions = load_api_policy_actions()
if custom_policy_actions is None:
custom_policy_actions = load_custom_policy_actions()
self._session = session
self._api_policy_actions = api_policy_actions
self._custom_policy_actions = custom_policy_actions
示例8: get_region
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def get_region(cls):
if cls._default_region is None:
cls._default_region = botocore.session.Session().get_config_variable("region")
return cls._default_region
# TODO: for these two methods, introspect instance metadata without hanging if API not available
示例9: test_set_status_code
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def test_set_status_code():
resp = ClientResponseProxy(
'GET', URL('http://foo/bar'),
loop=asyncio.get_event_loop(),
writer=None, continue100=None, timer=None,
request_info=None,
traces=None,
session=None)
resp.status_code = 500
assert resp.status_code == 500
示例10: __init__
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def __init__(self, aws_access_key_id=None, aws_secret_access_key=None,
aws_session_token=None, region_name=None,
botocore_session=None, profile_name=None):
if botocore_session is not None:
self._session = botocore_session
else:
# Create a new default session
self._session = botocore.session.get_session()
# Setup custom user-agent string if it isn't already customized
if self._session.user_agent_name == 'Botocore':
botocore_info = 'Botocore/{0}'.format(
self._session.user_agent_version)
if self._session.user_agent_extra:
self._session.user_agent_extra += ' ' + botocore_info
else:
self._session.user_agent_extra = botocore_info
self._session.user_agent_name = 'Boto3'
self._session.user_agent_version = boto3.__version__
if profile_name is not None:
self._session.set_config_variable('profile', profile_name)
if aws_access_key_id or aws_secret_access_key or aws_session_token:
self._session.set_credentials(
aws_access_key_id, aws_secret_access_key, aws_session_token)
if region_name is not None:
self._session.set_config_variable('region', region_name)
self.resource_factory = ResourceFactory(
self._session.get_component('event_emitter'))
self._setup_loader()
self._register_default_handlers()
示例11: events
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def events(self):
"""
The event emitter for a session
"""
return self._session.get_component('event_emitter')
示例12: available_profiles
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def available_profiles(self):
"""
The profiles available to the session credentials
"""
return self._session.available_profiles
示例13: get_credentials
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def get_credentials(self):
"""
Return the :class:`botocore.credential.Credential` object
associated with this session. If the credentials have not
yet been loaded, this will attempt to load them. If they
have already been loaded, this will return the cached
credentials.
"""
return self._session.get_credentials()
示例14: set_profile
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def set_profile(profile):
global _profile, _api_clients
_profile = profile
# Invalidate session and old clients
_get_botocore_session.botocore_session = None
_api_clients = {}
示例15: set_region
# 需要導入模塊: import botocore [as 別名]
# 或者: from botocore import session [as 別名]
def set_region(region_name):
global _region_name
_region_name = region_name
# Invalidate session and old clients
_get_botocore_session.botocore_session = None