AWS Partner CentralのOpportunity情報をAWS CLIで取得してみた

AWS Partner CentralのOpportunity情報をAWS CLIで取得してみた

AWS Partner CentralのOpportunity情報をAWS CLIで取得する方法を試してみました。get-opportunityとget-aws-opportunity-summaryの2つのコマンドで取得できる情報やその違い、複数のOpportunityを対象にまとめて操作を行う例をご紹介します。
2026.09.02

コンバンハ、千葉(幸)です。

AWS Partner CentralはAWSパートナーがAWSとの協業を管理するためのハブです。共同販売、AWS Marketplaceでの製品/ソリューション販売、MDF(マーケティング開発資金)等プログラム特典申請などの機能を提供しています。

共同販売に関するところで言うと、パートナーが担当する商談は「Opportunity(オポチュニティ)」としてこのポータルに登録され、AWSの営業チームと情報を共有/管理できるようになっています。

このOpportunityはAWSマネジメントコンソール上のAWS Partner Centralから参照できるのですが、まとまった量を一気に確認したい時に1個ずつ参照するのは手間がかかります。

今回はAWS CLIを用いてOpportunityの情報を取得するアプローチを試してみました。

今回行うこと

以下2つのコマンドを実行してみます。

  • aws partnercentral-selling get-opportunity
    • パートナーが登録した商談の詳細情報を取得するコマンド
  • aws partnercentral-selling get-aws-opportunity-summary
    • 商談に対するAWS側の状況やAI insights(品質スコアや推奨アクションなど)を取得するコマンド

両者でどんな情報が取得できるか、取得できる情報にどんな差異があるかを確認してみます。

最後に、まとまった量を一括で取得するコマンド例も取り上げます。

なお、前提は下記のとおりです。

  • AWS Partner Centralへの登録が完了していること
  • 必要な権限を持ったIAMアイデンティティでアクセス可能な状態であること

https://docs.aws.amazon.com/ja_jp/partner-central/latest/getting-started/what-is-partner-central.html

aws partnercentral-selling get-opportunityで商談情報を取得する

aws partnercentral-selling get-opportunityはパートナーが自分で登録した商談の詳細情報(顧客企業情報、商談内容、営業活動履歴、ステージなど)を取得できるコマンドです。

コマンド実行時の指定オプション例は下記のとおり。

aws partnercentral-selling get-opportunity \
  --catalog AWS \
  --identifier <Opportunity ID> \
  --region us-east-1
オプション 必須 内容
--catalog AWSまたはSandbox。本番の商談を見るならAWS
--identifier 商談のOpportunity ID(O+数字、パターンO[0-9]{1,19}
--region - us-east-1を明示的に指定

コマンドの出力結果のイメージは下記のとおりです。

{
    "Catalog": "<カタログ種別(AWS または Sandbox)>",
    "PrimaryNeedsFromAws": [
        "<AWSへの依頼内容(Co-Sell種別。例: Co-Sell - Deal Support)>"
    ],
    "NationalSecurity": "<国家安全保障関連案件かどうか(Yes/No)>",
    "PartnerOpportunityIdentifier": "<パートナー側CRMでのこの商談の識別子>",
    "Customer": {
        "Account": {
            "Industry": "<エンドカスタマーの業種>",
            "CompanyName": "<エンドカスタマーの会社名>",
            "WebsiteUrl": "<エンドカスタマーの会社WebサイトのURL>",
            "AwsAccountId": "<エンドカスタマーのAWSアカウントID(12桁)>",
            "Address": {
                "PostalCode": "<エンドカスタマーの郵便番号>",
                "CountryCode": "<エンドカスタマーの国コード(ISO、例: JP)>"
            }
        },
        "Contacts": [
            {
                "Email": "<エンドカスタマー担当者のメールアドレス>",
                "FirstName": "<エンドカスタマー担当者の名>",
                "LastName": "<エンドカスタマー担当者の姓>",
                "BusinessTitle": "<エンドカスタマー担当者の役職>",
                "Phone": "<エンドカスタマー担当者の電話番号>"
            }
        ]
    },
    "Project": {
        "DeliveryModels": [
            "<提供形態。SaaS or PaaS / BYOL or AMI / Managed Services / Professional Services / Resell / Other>"
        ],
        "ExpectedCustomerSpend": [
            {
                "Amount": "<想定金額(数値文字列)>",
                "CurrencyCode": "<通貨コード(USD/JPY等)>",
                "Frequency": "<頻度。Monthly固定>",
                "TargetCompany": "<集計対象。AWS=AWS算出のMRR推定値 / Self=パートナー独自のTCV入力>"
            }
        ],
        "Title": "<商談のタイトル・名称>",
        "CustomerBusinessProblem": "<顧客の課題とパートナーの解決策の説明文(20〜2000文字)>",
        "CustomerUseCase": "<想定ユースケース/ワークロード種別>",
        "SalesActivities": [
            "<実施済みの営業活動。Initialized discussions with customer 等の選択肢>"
        ]
    },
    "OpportunityType": "<商談種別。Net New Business(新規) / Flat Renewal(更新) / Expansion(拡張)>",
    "Marketing": {
        "CampaignName": "<AWSマーケティングキャンペーンコード>",
        "Source": "<AWSマーケティング活動由来か。Marketing Activity / None>",
        "AwsFundingUsed": "<MDF(マーケティング開発資金)を利用したか。Yes/No>"
    },
    "Id": "<商談の一意識別子。パターン: O[0-9]{1,19}>",
    "Arn": "<商談を一意に識別するARN。形式: arn:aws:partnercentral:<リージョン>:<AWSアカウントID>:catalog/<Catalog>/opportunity/<Id>>",
    "LastModifiedDate": "<最終更新日時>",
    "CreatedDate": "<作成日時>",
    "RelatedEntityIdentifiers": {
        "Solutions": [
            "<関連付けたパートナーソリューションID。パターン: S-[0-9]{1,19}>"
        ],
        "AwsProducts": [
            "<関連付けたAWS製品名>"
        ],
        "AwsMarketplaceSolutions": [
            "<関連付けたAWS Marketplaceソリューションのarn>"
        ]
    },
    "LifeCycle": {
        "Stage": "<商談の進行ステージ。Prospect / Qualified / Technical Validation / Business Validation / Committed / Launched / Closed Lost>",
        "TargetCloseDate": "<課金開始/本稼働開始の目標日>",
        "ReviewStatus": "<AWSによるレビュー状況。Pending Submission / Submitted / In review / Approved / Rejected / Action Required>"
    },
    "OpportunityTeam": [
        {
            "Email": "<担当者メールアドレス>",
            "FirstName": "<担当者名(名)>",
            "LastName": "<担当者名(姓)>",
            "BusinessTitle": "<役割。OpportunityOwner または PartnerAccountManager>",
            "Phone": "<担当者電話番号>"
        }
    ]
}

aws partnercentral-selling get-aws-opportunity-summaryでAWS側の情報を取得する

aws partnercentral-selling get-aws-opportunity-summaryは、登録されたOpportunityに対してAWSがどう見ているか(AWS側担当者、AWS独自のステージ把握、AIによる商談品質スコアや改善提案)を取得できるコマンドです。

コマンド実行時の指定オプション例は下記のとおり。

aws partnercentral-selling get-aws-opportunity-summary \
  --catalog AWS \
  --related-opportunity-identifier <Opportunity ID> \
  --region us-east-1
オプション 必須 内容
--catalog AWSまたはSandbox
--related-opportunity-identifier 紐付けたい商談のOpportunity ID
--region - us-east-1を明示的に指定

出力イメージは下記のとおりです。

{
    "RelatedOpportunityId": "<パートナー側商談ID。パターン: O[0-9]{1,19}>",
    "Origin": "<商談の発生元。AWS Referral(AWS発)/ Partner Referral(パートナー発)>",
    "InvolvementType": "<AWSの関与タイプ。For Visibility Only(可視化のみ)/ Co-Sell(共同販売)>",
    "Visibility": "<可視性レベル。Full / Limited(特別プログラムや機密案件向け)>",
    "LifeCycle": {
        "TargetCloseDate": "<課金開始/本稼働開始の目標日>",
        "Stage": "<AWS側が把握している商談ステージ。未評価の場合は値が入らない>",
        "NextSteps": "<AWSガイダンスに基づく直近のネクストステップ>"
    },
    "OpportunityTeam": [
        {
            "Email": "<AWS担当者のメールアドレス>",
            "FirstName": "<AWS担当者の名>",
            "LastName": "<AWS担当者の姓>",
            "BusinessTitle": "<AWS担当者の役割。AWSSalesRep / AWSAccountOwner / WWPSPDM / PDM / PSM / ISVSM / Signatory>"
        }
    ],
    "Insights": {
        "OpportunityQuality": {
            "Score": "<商談内容の充実度スコア。0〜100の整数>",
            "Trend": "<前回スコアからの傾向。Improving / Declining / No Change>"
        },
        "Recommendations": [
            {
                "Type": "<提案元の種別。OpportunityQuality / SolutionRecommendation / SpecialistRecommendation>",
                "Details": "<AIによる改善提案の本文>"
            }
        ]
    },
    "RelatedEntityIds": {
        "Solutions": [
            "<関連付けられたパートナーソリューションID>"
        ],
        "AwsMarketplaceSolutions": [
            "<関連付けられたAWS Marketplaceソリューションのarn>"
        ]
    },
    "Customer": {
        "Contacts": []
    },
    "Project": {
        "ExpectedCustomerSpend": [
            {
                "Amount": "<想定金額(数値文字列)>",
                "CurrencyCode": "<通貨コード>",
                "Frequency": "<頻度。Monthly固定>",
                "TargetCompany": "<集計対象。AWS=AWS算出のMRR推定値>"
            }
        ]
    },
    "CosellMotion": "<エンゲージメント分類。AWS Field-engaged / Agent-engaged / Partner-led>",
    "Catalog": "<カタログ種別(AWS または Sandbox)>"
}

get-opportunityget-aws-opportunity-summaryは何が違うのか

両者のコマンドで取得できる情報を比較してみました。列名は下記を表します。

  • oppget-opportunityの結果
  • summaryget-aws-opportunity-summaryの結果

トップレベル項目

項目 opp summary 備考
Catalog 共通。AWS/Sandboxの区分
Id / RelatedOpportunityId 名前は違うが同じ商談IDを指す
Arn × 商談を一意に識別するARN
PartnerOpportunityIdentifier × パートナーCRM側の識別子
PrimaryNeedsFromAws × AWSへの依頼内容(Co-Sell種別)
NationalSecurity × 国家安全保障関連案件かどうか
OpportunityType × 新規/更新/拡張の区分
Marketing(CampaignName等) × マーケティング施策由来の情報
LastModifiedDate / CreatedDate × 商談自体の更新・作成日時
Origin × AWS Referral / Partner Referral
InvolvementType × For Visibility Only / Co-Sell
InvolvementTypeChangeReason × InvolvementType変更理由
Visibility × Full / Limited
CosellMotion × AWS Field-engaged / Agent-engaged / Partner-led
Insights(品質スコア・AIレコメンド・支出インサイト) × summary固有のAI insights

Customer

項目 opp summary 備考
Customer.Account(会社名・業種・住所・AWSアカウントID等) × エンドカスタマーの企業情報
Customer.Contacts 顧客側の担当者連絡先

Project

項目 opp summary 備考
ExpectedCustomerSpend 同名だが算出主体が異なる
AwsPartition aws-eusc等の区分
DeliveryModels / Title / CustomerBusinessProblem / CustomerUseCase / SalesActivities / ApnPrograms / CompetitorName 等 × 商談の内容そのものを説明する項目群
ExpectedContractDuration × TCV(契約総額)からMRRへの換算に使う契約期間

ExpectedCustomerSpendは、get-opportunityではパートナーが入力した想定支出額、get-aws-opportunity-summaryではAWS AI insightsが算出したMRR(≒月間AWS利用料)推定値が入ります。

LifeCycle

項目 opp summary 備考
Stage oppはパートナー登録値、summaryはAWS側の把握値。未評価だと空になる
TargetCloseDate 課金開始/本稼働開始の目標日
NextSteps / NextStepsHistory 直近のネクストステップとその履歴
ClosedLostReason Closed Lostの理由コード
ReviewStatus / ReviewComments / ReviewStatusReason × AWSによる商談レビューの状況

Stageは同名であるものの、同じ値を見ているわけではありません。ざっと確認した限りだと、「AWS側はブランク」「両者で異なる値が入る」のケースが多かったです。

OpportunityTeam

項目 opp summary 備考
Email / FirstName / LastName oppではパートナー側担当者、summaryではAWS側担当者
BusinessTitle 値の選択肢が異なる
Phone × 担当者の電話番号

RelatedEntityIdentifiers / RelatedEntityIds

項目 opp summary 備考
Solutions 関連付けたパートナーソリューションID(S-+数字)
AwsProducts 関連付けたAWS製品名
AwsMarketplaceSolutions 関連付けたAWS Marketplaceソリューションのarn
AwsMarketplaceProducts 関連付けたAWS Marketplace製品のarn
AwsMarketplaceOffers / AwsMarketplaceOfferSets × オファー単位の関連付け

SoftwareRevenue

項目 opp summary 備考
Value(Amount, CurrencyCode) PARC等の契約金額
EffectiveDate / ExpirationDate 契約の開始日・終了日
DeliveryModel × Contract / Pay-as-you-go / Subscriptionの区分
Discount × 割引率(例: 15.00 = 15%)

共通して取得できる情報もあれば、一方にのみ存在するもの、似た項目名だが違うものを指しているものなど、差異のあり方について理解が進みました。

複数のOpportunityの情報をまとめて取得する

せっかくAWS CLIを使うなら、複数のOpportunityの情報を一括で取得したいです。情報の全量を取得するパターン、特定の項目について横串で取得するパターンをご紹介します。

対象としたいOpportunityのリストはこのような形でテキストファイルに保存されている前提とします。

OppIds.txt
O11111111
O22222222
O33333333
O44444444
O55555555

動作確認は下記環境で行なっています。

  • macOS
  • Zshバージョン:zsh 5.9 (arm64-apple-darwin25.0)
  • AWS CLIバージョン:aws-cli/2.36.19 Python/3.14.6 Darwin/25.5.0 exe/arm64
  • Jqバージョン:jq-1.6

複数のOpportunityの情報をjsonファイルにまとめる

2つのコマンドの結果をまとめて取得します。Opportunityごと、コマンドごとに1つのjsonファイルに結果を保存します。

ts=$(date +%Y%m%d_%H%M%S)

while read -r id; do
  [ -z "$id" ] && continue

  aws partnercentral-selling get-opportunity \
    --catalog AWS \
    --identifier "$id" \
    --region us-east-1
    > "${id}_get-opportunity_${ts}.json"
  echo "saved: ${id}_get-opportunity_${ts}.json"
  sleep 0.3

  aws partnercentral-selling get-aws-opportunity-summary \
    --catalog AWS \
    --related-opportunity-identifier "$id" \
    --region us-east-1
    > "${id}_get-aws-opportunity-summary_${ts}.json"
  echo "saved: ${id}_get-aws-opportunity-summary_${ts}.json"
  sleep 0.3
done < OppIds.txt

実行イメージとしてはこのような形に。

saved: O11111111_get-opportunity_20260902_113612.json
saved: O11111111_get-aws-opportunity-summary_20260902_113612.json
saved: O22222222_get-opportunity_20260902_113612.json
saved: O22222222_get-aws-opportunity-summary_20260902_113612.json
saved: O33333333_get-opportunity_20260902_113612.json
saved: O33333333_get-aws-opportunity-summary_20260902_113612.json
saved: O44444444_get-opportunity_20260902_113612.json
saved: O44444444_get-aws-opportunity-summary_20260902_113612.json
saved: O55555555_get-opportunity_20260902_113612.json
saved: O55555555_get-aws-opportunity-summary_20260902_113612.json

特定の項目を横串で確認する

手っ取り早く特定の項目だけ確認したいというケースがあるかもしれません。どの項目を確認したいかは完全に要件によるのでコマンドをそのまま流用、というわけにはいきませんが一例として載せておきます。

今回はget-opportunityの下記項目を取得したいとします。

  • Title
  • ExpectedCustomerSpend.Amount
  • LifeCycle.Stage

その前提でのコマンド例はこちら。

{
  printf "OppID\tTitle\tExpectedCustomerSpend.Amount\tLifeCycle.Stage\n"
  while read -r id; do
    [ -z "$id" ] && continue

    result=$(aws partnercentral-selling get-opportunity \
      --catalog AWS \
      --identifier "$id" \
      --region us-east-1)

    title=$(echo "$result" | jq -r '.Project.Title // "-"')
    amount=$(echo "$result" | jq -r '[.Project.ExpectedCustomerSpend[]? | select(.TargetCompany=="AWS")][0].Amount // "-"')
    stage=$(echo "$result" | jq -r '.LifeCycle.Stage // "-"')

    printf "%s\t%s\t%s\t%s\n" "$id" "$title" "$amount" "$stage"
    sleep 0.3
  done < OppIds.txt
} | column -t -s$'\t'

実行イメージはこのような形になります。

OppID      Title              ExpectedCustomerSpend.Amount  LifeCycle.Stage
O11111111  技術支援案件A       1500                          Launched
O22222222  技術支援案件B       2200                          Qualified
O33333333  技術支援案件C       800                           Technical Validation
O44444444  技術支援案件D       3000                          Business Validation
O55555555  技術支援案件E       1200                          Committed

終わりに

AWS CLIでAWS Partner CentralのOpportunity情報を取得してみた、という話でした。

単発で、複数Opportunityの特定の項目を確認したい、というケースにはちょうどよくハマるかと思います。AWSマネジメントコンソールから1個ずつ確認するには辛い、かといってスクリプトを組むほどではない、という場面でご参考ください。

以上、チバユキ (@batchicchi)がお送りしました。

参考

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事