managed-runtime · git:20260930.a43963b · 2026-09-30 · sha256 d782e42656b65b56

managed-runtime git:20260930.a43963bA

Immutable. This exact content never changes and is served at /api/v1/blob/d782e42656b65b56.

---
name: managed-runtime
description: "Microsoft Copilot Managed Runtime(Public Preview)のアプリを ms CLI と @microsoft/managed-apps SDK で作成する。リポジトリ方式(platform-managed Git / 自社 GitHub / 外部ビルド)を作成前に確定し、ローカル開発、コネクタ接続、preview、live デプロイ、共有、GitHub Actions による CI までを Microsoft Learn の手順どおりに進める。"
category: ui
triggers:
  - "Managed Runtime"
  - "Copilot Managed Runtime"
  - "マネージドランタイム"
  - "managed-apps"
  - "@microsoft/managed-apps"
  - "managed-apps-cli"
  - "ms app create"
  - "ms app dev"
  - "ms app deploy"
  - "ms app clone"
  - "ms.config.json"
  - "managedapps.cloud.microsoft"
  - "Copilot Code で作ったアプリ"
  - "Cowork で作ったアプリを引き継ぐ"
---

# Copilot Managed Runtime アプリ開発スキル

Microsoft Copilot Managed Runtime のアプリを、CLI(`@microsoft/managed-apps-cli`、コマンド `ms`)と
SDK(`@microsoft/managed-apps`)で最初から作る。手順は Microsoft Learn の
[CLI クイックスタート](https://learn.microsoft.com/en-us/microsoft-365/managed-apps/developer/quickstart-managed-apps-cli?view=o365-worldwide)
に沿う。

> [!CAUTION]
> **Public Preview。** API・テンプレート・ツールは GA までに変わる可能性がある。
> 本番利用はユーザーの明示承認がある場合に限り、SDK / CLI / Vite plugin の版を固定する。

## Code Apps との境界

| 要件 | 選ぶもの |
|---|---|
| GA 必須、Azure B2B ゲスト、Dataverse ソリューション / Power Platform Pipelines 中心、使う人のほとんどが Power Apps Premium を持つ | [`code-apps`](../code-apps/SKILL.md) |
| Microsoft 365 の社内業務アプリ、Git のコミット単位で preview / live / rollback、M365 管理センターで一元管理 | 本スキル |
| Power Apps Premium を持たない人が中心で利用が不定期。Copilot Credits の従量課金で払いたい | 本スキル |

`@microsoft/power-apps` を `@microsoft/managed-apps` に置き換えるだけの移行はしない。
判断材料は [比較リファレンス](../architecture/references/managed-runtime-vs-code-apps.md)。

## スクリプト

| スクリプト | 用途 |
|---|---|
| [scripts/check_prereqs.py](scripts/check_prereqs.py) | Node / Git / Git Credential Manager / Git identity / `ms` CLI / サインインの確認(Step 1) |
| [scripts/create_app.py](scripts/create_app.py) | リポジトリ方式を明示して `ms app create`。URL・作成先・GitHub リポジトリを事前検証(Step 4) |
| [scripts/validate_project.py](scripts/validate_project.py) | push / deploy 前ゲート。Code Apps 混在、SDK の版、`.env` 追跡、外部通信、共有接続の `allowedActions`、未 push を検出(Step 7・8) |

パラメータは [references/.env.example](references/.env.example) を参照し、実値は `.env` に置く。

## ワークフロー

### Step 0: Preview 利用とライセンスを確認する

AskUserQuestion で次を確認し、承認がなければ `code-apps` を提案して止まる。

1. Public Preview であること。
2. 使う人ごとの支払い方法。Power Apps Premium を持つ人はクレジットを消費しない。持たない人は
   Managed Application Copilot Credits で払う(起動ごとと API 呼び出しごと。API 呼び出しは 1 回 0.1 クレジット)。
   ローカル実行する開発者にも同じ要件がかかる。
3. クレジットで払う人がいる場合は、管理者が M365 管理センター → Copilot → Cost management で従量課金を有効にし、
   **使う人**を実行用の支出ポリシーに入れる。作るときの課金設定とは別。見積もり方は
   [比較リファレンスのライセンス節](../architecture/references/managed-runtime-vs-code-apps.md#6-ライセンスで使い分ける)。
4. アプリは組織内向け。組織内共有リンクはゲストに使えない。
5. 既定 CSP は外部通信を遮断する。外部 API はコネクタ経由で呼ぶ。

### Step 1: 開発前提を確認する

```powershell
python .github/skills/managed-runtime/scripts/check_prereqs.py --install-cli
```

`MANAGED_APPS_CLI_VERSION` の版を導入し、Node.js >= 24.11.0、Git >= 2.27.0、Git Credential Manager、
Git の `user.name` / `user.email` を確認する。NG が 1 つでもあれば解消してから進む。

### Step 2: サインインする

```powershell
ms auth login
python .github/skills/managed-runtime/scripts/check_prereqs.py --check-auth
```

`ms auth status` のアカウントが対象テナントであることを確認する。

### Step 3: リポジトリ方式を決める

**作成後は変更できない**ため、AskUserQuestion で確定してから作る。

| 選択肢 | `--repo-mode` | 選ぶ条件 |
|---|---|---|
| platform-managed Git(既定) | `platform` | 設定なしで始めたい。clone / push は通常の Git で行える |
| 自社 GitHub | `github` | PR レビュー・ブランチ保護を統制に使う。既存の**空の private** リポジトリを用意する |
| 外部ビルド | `none` | 自前の CI でビルドして配備する。管理者による外部成果物デプロイの許可が必要 |

`github` は GitHub.com / GitHub Enterprise Cloud(`*.ghe.com`)のみ。対象 organization に
GitHub App「Microsoft Managed Apps」を導入しておく。
Copilot Code・Cowork・Copilot Studio で作ったアプリとの関係は [repository-modes.md](references/repository-modes.md)。

### Step 4: アプリを作成する(または既存アプリを引き継ぐ)

新規作成は dry-run で検証してから実行する。

```powershell
python .github/skills/managed-runtime/scripts/create_app.py `
  --display-name "<表示名>" --dir ./<app-folder> --repo-mode platform --dry-run
python .github/skills/managed-runtime/scripts/create_app.py `
  --display-name "<表示名>" --dir ./<app-folder> --repo-mode platform
```

自社 GitHub は `--repo-mode github --repo-url https://github.com/<org>/<repo>` を付ける。
スクリプトは作成先が空か、アプリが入れ子にならないか、URL の形式、リポジトリが private かつ空かを
CLI 実行前に検証する。既存の Web プロジェクトを登録する場合は、そのフォルダーで
`ms app init --display-name "<表示名>" --repo native|none|<url>` を実行する。

既存アプリ(Copilot Cowork / Copilot Studio / 他の開発者が作成)を引き継ぐ場合:

```powershell
ms app list --permission edit
ms app clone --app <app-id> ./<app-folder>   # 自社 GitHub のアプリは git clone <repository-url>
```

### Step 5: ローカルで開発する

```powershell
Set-Location ./<app-folder>
npm install
ms app dev
```

`ms app dev` が唯一のローカル起動コマンド。表示された Local Play URL を、テナントにサインインしている
ブラウザー プロファイルで開く。まだ何もデプロイされていないことをユーザーに伝える。
UI は React + TypeScript で実装し、SDK はサブパス(`@microsoft/managed-apps/auth` など)から import する
([sdk-usage.md](references/sdk-usage.md))。

### Step 6: データソースを追加する

```powershell
ms connector list --search <語>
ms connector list-actions --connector <connector-id>
ms app add data-source --connector <connector-id> --as table --table <table>
```

1. `ms connector list` の DLP / ACP 状態で、使うコネクタと操作がブロックされていないことを確認する。
   特定の環境(`--environment-id`)に作った場合は、[admin スキル](../admin/SKILL.md) の環境チェックと DLP 事前チェックも実行する。
2. 追加後は `generated/` のサービスを import して呼ぶ。`fetch` / `axios` で直接呼ばない。
3. 追加後に `ms.config.json` を読み、`sharedConnectionId` が付いた共有接続があれば、
   画面の実装後に `allowedActions` を決めて宣言する([sdk-usage.md](references/sdk-usage.md#共有接続の-allowedactions唯一の手編集))。

### Step 7: 検証して push し、preview で確認する

```powershell
python .github/skills/managed-runtime/scripts/validate_project.py --project . --build
git add .
git commit -m "<変更内容>"
git push
ms app play --mode preview
```

NG が 0 件になってから push する。preview は push 済みの最新コミットをビルドして表示する。
ビルドに失敗したら `ms app build-status --show-log` で原因を確認し、直して push し直す。
preview URL は書き込み権限を持つ開発者だけが開ける。

### Step 8: live へデプロイする

```powershell
python .github/skills/managed-runtime/scripts/validate_project.py --project . --stage deploy
ms app deploy
ms app info
```

`--stage deploy` は未 commit・未 push と共有接続の `allowedActions` も NG にする。
ユーザーが preview を確認して承認してから `ms app deploy` を実行する。
戻すときは `ms app deploy --commit <sha>` で過去の成功ビルドを指定する。

### Step 9: 共有する

```powershell
ms app share <user-email>,<group-object-id> --access play
ms app share <developer-email> --access edit
```

利用者は `play`、共同開発者だけ `edit`。組織全体に配る場合は `ms app share link create`。
利用者は [managedapps.cloud.microsoft](https://managedapps.cloud.microsoft/) からアプリを開く。

### Step 10: CI を構成する(外部ビルド方式のみ)

`--repo-mode none` で作ったアプリは、テンプレートから GitHub Actions のワークフローを生成する。

```powershell
python .github/skills/update-skills/scripts/scaffold_from_template.py `
  --template .github/skills/managed-runtime/templates/github-actions-deploy `
  --target . --force --dry-run
```

サービス プリンシパルの権限とシークレットの登録は [github-actions.md](references/github-actions.md)。
platform / github 方式は Step 7・8 のプラットフォーム ビルドを使う。

## 出力

最後に次を報告する: アプリ名と App ID、プロジェクトのパス、リポジトリ方式と Git remote、
追加したコネクタ、`validate_project.py` の結果、preview / live URL(`ms app info`)、共有先。
実行していない手順(deploy・共有など)は「未実施」と書く。

## 参考

- [リポジトリ方式](references/repository-modes.md)
- [SDK とデータ接続](references/sdk-usage.md)
- [ms CLI 早見表](references/cli-reference.md)
- [GitHub Actions による外部成果物デプロイ](references/github-actions.md)
- [トラブルシュート](references/troubleshooting.md)
- [Code Apps との比較](../architecture/references/managed-runtime-vs-code-apps.md)