Doc AWS SDK Examples GitHub リポジトリには、他にも SDK の例があります。 AWS
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SDK for Python (Boto3) を使用した Partner Central の例
次のコード例は、 Partner Central AWS SDK for Python (Boto3) で を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。
アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。
「シナリオ」は、1 つのサービス内から、または他の AWS のサービスと組み合わせて複数の関数を呼び出し、特定のタスクを実行する方法を示すコード例です。
各例には完全なソースコードへのリンクが含まれており、コードの設定方法と実行方法に関する手順を確認できます。
アクション
次の例は、AssignOpportunity
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
既存のオポチュニティを他のユーザーに再割り当てします。
#!/usr/bin/env python """ Purpose PC-API-07 Assigning a new owner """ import logging import boto3 import utils.helpers as helper from botocore.client import ClientError from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def assign_opportunity(identifier): assign_opportunity_request ={ "Catalog": CATALOG_TO_USE, "Identifier": identifier, "Assignee": { "BusinessTitle": "OpportunityOwner", "Email": "test@test.com", "FirstName": "John", "LastName": "Doe" } } try: # Perform an API call response = partner_central_client.assign_opportunity(**assign_opportunity_request) return response except ClientError as err: # Catch all client exceptions print(err.response) def usage_demo(): identifier = "O4236468" logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Assigning a new owner to an opportunity.") print("-" * 88) helper.pretty_print_datetime(assign_opportunity(identifier)) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスのAssignOpportunity」を参照してください。
-
次の例は、AssociateOpportunity
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
オポチュニティとさまざまな関連エンティティの間に正式な関連付けを作成します。
#!/usr/bin/env python """ Purpose PC-API -11 Associating a product PC-API -12 Associating a solution PC-API -13 Associating an offer """ import logging import boto3 import utils.helpers as helper from botocore.client import ClientError from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def associate_opportunity(entity_type, entity_identifier, opportunityIdentifier): associate_opportunity_request ={ "Catalog": CATALOG_TO_USE, "OpportunityIdentifier" : opportunityIdentifier, "RelatedEntityType" : entity_type, "RelatedEntityIdentifier" : entity_identifier } try: # Perform an API call response = partner_central_client.associate_opportunity(**associate_opportunity_request) return response except ClientError as err: # Catch all client exceptions print(err.response) def usage_demo(): #entity_type = Solutions | AWSProducts | AWSMarketplaceOffers entity_type = "Solutions" entity_identifier = "S-0059717" opportunityIdentifier = "O5465588" logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Associate Opportunity.") print("-" * 88) helper.pretty_print_datetime(associate_opportunity(entity_type, entity_identifier, opportunityIdentifier)) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスのAssociateOpportunity」を参照してください。
-
次の例は、CreateOpportunity
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
オポチュニティを作成します。
#!/usr/bin/env python import boto3 import logging import sys import os sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import utils.helpers as helper import utils.stringify_details as sd from botocore.client import ClientError from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" def create_opportunity(partner_central_client): create_opportunity_request = helper.remove_nulls(sd.stringify_json("src/create_opportunity/createOpportunity.json")) try: # Perform an API call response = partner_central_client.create_opportunity(**create_opportunity_request) helper.pretty_print_datetime(response) # Retrieve the opportunity details get_response = partner_central_client.get_opportunity( Identifier=response["Id"], Catalog=CATALOG_TO_USE ) helper.pretty_print_datetime(get_response) return response except ClientError as err: # Catch all client exceptions print(err.response) def usage_demo(): logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Create Opportunity.") print("-" * 88) partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) create_opportunity(partner_central_client) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for CreateOpportunity」を参照してください。
-
次の例は、DisassociateOpportunity
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
オポチュニティと関連エンティティ間の既存の関連付けを削除します。
#!/usr/bin/env python """ Purpose PC-API -14 Removing a Solution PC-API -15 Removing an offer PC-API -16 Removing a product """ import logging import boto3 import utils.helpers as helper from botocore.client import ClientError from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def disassociate_opportunity(entity_type, entity_identifier, opportunityIdentifier): disassociate_opportunity_request ={ "Catalog": CATALOG_TO_USE, "OpportunityIdentifier" : opportunityIdentifier, "RelatedEntityType" : entity_type, "RelatedEntityIdentifier" : entity_identifier } try: # Perform an API call response = partner_central_client.disassociate_opportunity(**disassociate_opportunity_request) return response except ClientError as err: # Catch all client exceptions print(err.response) def usage_demo(): #entity_type = Solutions | AWSProducts | AWSMarketplaceOffers entity_type = "Solutions" entity_identifier = "S-0049999" opportunityIdentifier = "O4397574" logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Get updated Opportunity.") print("-" * 88) helper.pretty_print_datetime(disassociate_opportunity(entity_type, entity_identifier, opportunityIdentifier)) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスのDisassociateOpportunity」を参照してください。
-
次の例は、GetAwsOpportunitySummary
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
AWS オポチュニティの概要を取得します。
#!/usr/bin/env python """ Purpose PC-API-25 Retrieves a summary of an AWS Opportunity. LifeCycle.ReviewStatus=Approved """ import logging import boto3 import utils.helpers as helper from botocore.client import ClientError from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def get_opportunity(identifier): get_opportunity_request ={ "Catalog": CATALOG_TO_USE, "RelatedOpportunityIdentifier": identifier } try: # Perform an API call response = partner_central_client.get_aws_opportunity_summary(**get_opportunity_request) return response except ClientError as err: # Catch all client exceptions print(err.response) def usage_demo(): identifier = "O5465588" logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Get AWS Opportunity summary.") print("-" * 88) helper.pretty_print_datetime(get_opportunity(identifier)) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスのGetAwsOpportunitySummary」を参照してください。
-
次の例は、GetEngagementInvitation
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
がパートナー AWS と共有しているエンゲージメントの招待の詳細を取得します。
#!/usr/bin/env python """ Purpose PC-API-22 GetOpportunityEngagementInvitation - Retrieves details of a specific engagement invitation. This operation allows partners to view the invitation and its associated information, such as the customer, project, and lifecycle details. """ import json import logging import boto3 import utils.helpers as helper from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def get_opportunity_engagement_invitation(identifier): get_opportunity_engagement_invitation_request ={ "Catalog": CATALOG_TO_USE, "Identifier": identifier } try: # Perform an API call response = partner_central_client.get_engagement_invitation(**get_opportunity_engagement_invitation_request) return response except Exception as err: # Catch all client exceptions print(json.dumps(err.response)) def usage_demo(): identifier = "arn:aws:partnercentral-selling:us-east-1:aws:catalog/Sandbox/engagement-invitation/engi-0000000IS0Qga" logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Given the ARN identifier, retrieve details of Opportunity Engagement Invitation.") print("-" * 88) helper.pretty_print_datetime(get_opportunity_engagement_invitation(identifier)) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスの「GetEngagementInvitation」を参照してください。
-
次の例は、GetOpportunity
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
オポチュニティを取得します。
#!/usr/bin/env python """ Purpose PC-API -08 Get updated Opportunity given opportunity id """ import logging import boto3 import utils.helpers as helper from botocore.client import ClientError from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def get_opportunity(identifier): get_opportunity_request ={ "Catalog": CATALOG_TO_USE, "Identifier": identifier } try: # Perform an API call response = partner_central_client.get_opportunity(**get_opportunity_request) return response except ClientError as err: # Catch all client exceptions print(err.response) def usage_demo(): identifier = "O5465588" logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Get updated Opportunity.") print("-" * 88) helper.pretty_print_datetime(get_opportunity(identifier)) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスの「GetOpportunity」を参照してください。
-
次の例は、ListEngagementInvitations
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
パートナーに送信されたエンゲージメントの招待のリストを取得します。
#!/usr/bin/env python """ Purpose PC-API-21 ListEngagementInvitations - Retrieves a list of engagement invitations based on specified criteria. This operation allows partners to view all invitations to engagement. """ import json import logging import boto3 import utils.helpers as helper from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def list_engagement_invitations(): list_engagement_invitations_request ={ "Catalog": CATALOG_TO_USE, "MaxResults": 20 } try: # Perform an API call response = partner_central_client.list_engagement_invitations(**list_engagement_invitations_request) return response except Exception as err: # Catch all client exceptions print(json.dumps(err.response)) def usage_demo(): logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Retrieve list of Engagement Invitations.") print("-" * 88) helper.pretty_print_datetime(list_engagement_invitations()) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスのListEngagementInvitations」を参照してください。
-
次の例は、ListOpportunities
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
機会を一覧表示します。
#!/usr/bin/env python """ Purpose PC-API -18 Getting list of Opportunities """ import json import logging import boto3 import utils.helpers as helper from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def get_list_of_opportunities(): opportunity_list = [] list_opportunities_request ={ "Catalog": CATALOG_TO_USE, "MaxResults": 20 } try: # Perform an API call response = partner_central_client.list_opportunities(**list_opportunities_request) opportunity_list.extend(response["OpportunitySummaries"]) while "NextToken" in response and response["NextToken"] is not None: list_opportunities_request["NextToken"] = response["NextToken"] response = partner_central_client.list_opportunities(**list_opportunities_request) opportunity_list.extend(response["OpportunitySummaries"]) return opportunity_list except Exception as err: # Catch all client exceptions print(json.dumps(err.response)) def usage_demo(): logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Getting list of Opportunities.") print("-" * 88) helper.pretty_print_datetime(get_list_of_opportunities()) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスのListOpportunities」を参照してください。
-
次の例は、ListSolutions
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
パートナーが Partner Central に登録した Partner Solutions のリストを取得します。
#!/usr/bin/env python """ Purpose PC-API-10 Getting list of solutions """ import logging import boto3 import utils.helpers as helper from botocore.client import ClientError from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def get_list_of_solutions(): list_solutions_request ={ "Catalog": CATALOG_TO_USE, "MaxResults": 20 } try: # Perform an API call response = partner_central_client.list_solutions(**list_solutions_request) return response except ClientError as err: # Catch all client exceptions print(err.response) def usage_demo(): logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Getting list of solutions.") print("-" * 88) helper.pretty_print_datetime(get_list_of_solutions()) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスのListSolutions」を参照してください。
-
次の例は、RejectEngagementInvitation
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
が AWS 共有した EngagementInvitation を拒否します。
#!/usr/bin/env python """ Purpose PC-API-05 AWS Originated AO rejection - RejectOpportunityEngagementInvitation - Rejects a engagement invitation. This action indicates that the partner does not wish to participate in the engagement and provides a reason for the rejection. Upon rejection, a OpportunityEngagementInvitationRejected event is triggered. Subsequently, the invitation will no longer be available for the partner to act on. """ import json import logging import boto3 import utils.helpers as helper from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def reject_opportunity_engagement_invitation(identifier, reject_reason): reject_opportunity_engagement_invitation_request ={ "Catalog": CATALOG_TO_USE, "Identifier": identifier, "RejectionReason": reject_reason } try: # Perform an API call response = partner_central_client.reject_engagement_invitation(**reject_opportunity_engagement_invitation_request) return response except Exception as err: # Catch all client exceptions print(json.dumps(err.response)) def usage_demo(): identifier = "arn:aws:partnercentral:us-east-1::catalog/Sandbox/engagement-invitation/engi-0000002isviga" reject_reason = "Customer problem unclear" logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Given the ARN identifier and reject reason, reject the Opportunity Engagement Invitation.") print("-" * 88) helper.pretty_print_datetime(reject_opportunity_engagement_invitation(identifier, reject_reason)) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスのRejectEngagementInvitation」を参照してください。
-
次の例は、StartEngagementByAcceptingInvitationTask
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
EngagementInvitation を受け入れることでエンゲージメントを開始します。
#!/usr/bin/env python """ Purpose PC-API -11 Associating a product PC-API -12 Associating a solution PC-API -13 Associating an offer """ import logging import boto3 import utils.helpers as helper from botocore.client import ClientError from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def get_opportunity(identifier): get_opportunity_request ={ "Identifier": identifier, "Catalog": CATALOG_TO_USE } try: # Perform an API call response = partner_central_client.get_engagement_invitation(**get_opportunity_request) return response except ClientError as err: # Catch all client exceptions print(err.response) def start_engagement_by_accepting_invitation_task(identifier): response = get_opportunity(identifier) if ( response['Status'] == 'PENDING') : accept_opportunity_engagement_invitation_request ={ "Catalog": CATALOG_TO_USE, "Identifier" : identifier, "ClientToken": "test-123456" } try: # Perform an API call response = partner_central_client.start_engagement_by_accepting_invitation_task(**accept_opportunity_engagement_invitation_request) return response except ClientError as err: # Catch all client exceptions print(err.response) return None else: return None def usage_demo(): identifier = "arn:aws:partnercentral:us-east-1::catalog/Sandbox/engagement-invitation/engi-0000002isusga" logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Get updated Opportunity.") print("-" * 88) helper.pretty_print_datetime(start_engagement_by_accepting_invitation_task(identifier)) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスのStartEngagementByAcceptingInvitationTask」を参照してください。
-
次の例は、StartEngagementFromOpportunityTask
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
エンゲージメントの招待を受け入れ、パートナーのシステムで対応するオポチュニティを作成することで、既存のオポチュニティからエンゲージメントプロセスを開始します。
#!/usr/bin/env python """ Purpose PC-API -11 Associating a product PC-API -12 Associating a solution PC-API -13 Associating an offer """ import logging import boto3 import utils.helpers as helper from botocore.client import ClientError from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def start_engagement_from_opportunity_task(identifier): start_engagement_from_opportunity_task_request ={ "AwsSubmission": { "InvolvementType": "Co-Sell", "Visibility": "Full" }, "Catalog": CATALOG_TO_USE, "Identifier" : identifier, "ClientToken": "test-annjqwesdsd99" } try: # Perform an API call response = partner_central_client.start_engagement_from_opportunity_task(**start_engagement_from_opportunity_task_request) return response except ClientError as err: # Catch all client exceptions print(err.response) return None def usage_demo(): identifier = "O5465588" logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Start Engagement from Opportunity Task.") print("-" * 88) helper.pretty_print_datetime(start_engagement_from_opportunity_task(identifier)) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスのStartEngagementFromOpportunityTask」を参照してください。
-
次の例は、UpdateOpportunity
を使用する方法を説明しています。
- SDK for Python (Boto3)
-
オポチュニティを更新します。
#!/usr/bin/env python """ Purpose PC-API-2 Updating Partner Originated Opportunity """ import logging import boto3 import sys import os sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import utils.helpers as helper from botocore.client import ClientError import utils.stringify_details as sd from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def get_opportunity(identifier): get_opportunity_request ={ "Identifier": identifier, "Catalog": CATALOG_TO_USE } try: # Perform an API call response = partner_central_client.get_opportunity(**get_opportunity_request) return response except ClientError as err: # Catch all client exceptions print(err.response) def update_opportunity(): update_opportunity_request_orig = sd.stringify_json("src/update_opportunity/update_opportunity_technical_validation.json") update_opportunity_request = helper.remove_nulls(update_opportunity_request_orig) try: # Perform an API call response = partner_central_client.update_opportunity(**update_opportunity_request) return response except ClientError as err: # Catch all client exceptions print(err.response) def update_opportunity_if_eligible(identifier): response = get_opportunity(identifier) if response is not None: return update_opportunity() else: print("Failed to retrieve opportunity details") def usage_demo(): identifier = "O5465588" logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Updating opportunity.") print("-" * 88) helper.pretty_print_datetime(update_opportunity_if_eligible(identifier)) if __name__ == "__main__": usage_demo()
-
API の詳細については、 AWS SDK for Python (Boto3) API リファレンスのUpdateOpportunity」を参照してください。
-
シナリオ
次のコードサンプルは、以下の操作方法を示しています。
古いエンティティの関連付けを解除します。
新しいエンティティを関連付けます。
- SDK for Python (Boto3)
-
注記
GitHub には、その他のリソースもあります。AWS コード例リポジトリ
で全く同じ例を見つけて、設定と実行の方法を確認してください。 オポチュニティの関連エンティティを更新する
#!/usr/bin/env python """ Purpose PC-API -17 Replacing a solution """ import logging import boto3 import utils.helpers as helper from botocore.client import ClientError from utils.constants import CATALOG_TO_USE serviceName = "partnercentral-selling" partner_central_client = boto3.client( service_name=serviceName, region_name='us-east-1' ) def replace_solution(original_entity_identifier, new_entity_identifier, opportunityIdentifier): disassociate_opportunity_request ={ "Catalog": CATALOG_TO_USE, "OpportunityIdentifier" : opportunityIdentifier, "RelatedEntityType" : "Solutions", "RelatedEntityIdentifier" : original_entity_identifier } associate_opportunity_request ={ "Catalog": CATALOG_TO_USE, "OpportunityIdentifier" : opportunityIdentifier, "RelatedEntityType" : "Solutions", "RelatedEntityIdentifier" : new_entity_identifier } try: # Perform an API call response = partner_central_client.disassociate_opportunity(**disassociate_opportunity_request) response = partner_central_client.associate_opportunity(**associate_opportunity_request) return response except ClientError as err: # Catch all client exceptions print(err.response) def usage_demo(): original_entity_identifier = "S-0049999" new_entity_identifier = "S-0050014" opportunityIdentifier = "O4397574" logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") print("-" * 88) print("Replacing a solution.") print("-" * 88) helper.pretty_print_datetime(replace_solution(original_entity_identifier, new_entity_identifier, opportunityIdentifier)) if __name__ == "__main__": usage_demo()
-
API の詳細については、『AWS SDK for Python (Boto3) API リファレンス』の以下のトピックを参照してください。
-