

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アプリケーションを発行する方法
<a name="serverlessrepo-how-to-publish"></a>

このセクションでは、 CLI または AWS Serverless Application Repository を使用してサーバーレスアプリケーションを AWS SAM に発行する手順について説明します AWS マネジメントコンソール。また、アプリケーションを共有して他のユーザーがデプロイできるようにする方法と、 AWS Serverless Application Repositoryからアプリケーションを削除する方法についても説明します。

**重要**  
アプリケーションの発行時に入力した情報は暗号化されません。この情報には、作成者名などのデータが含まれます。個人を特定できる情報を保存または公開しない場合は、アプリケーションの発行時に、この情報を入力しないことをお勧めします。

## アプリケーションの発行 (AWS CLI)
<a name="publishing-application-through-cli"></a>

アプリケーションを に発行する最も簡単な方法は、一連の AWS SAM CLI コマンドを使用すること AWS Serverless Application Repository です。詳細については、 *AWS Serverless Application Model (AWS SAM) デベロッパーガイド*[の「 CLI AWS SAM を使用したアプリケーションの公開](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-publishing-applications.html)」を参照してください。

## 新しいアプリケーションの発行 (コンソール)
<a name="publishing-application-through-aws-console"></a>

このセクションでは、 を使用して AWS マネジメントコンソール に新しいアプリケーションを発行する方法について説明します AWS Serverless Application Repository。既存のアプリケーションの新しいバージョンを発行する手順については、「[既存アプリケーションの新しいバージョンの発行](serverlessrepo-how-to-publish-new-version.md)」を参照してください。

### 前提条件
<a name="publishing-application-prerequisites"></a>

にアプリケーションを公開する前に AWS Serverless Application Repository、以下が必要です。
+ 有効な AWS アカウント。
+ 使用される AWS リソースを定義する valid AWS Serverless Application Model (AWS SAM) テンプレート。 AWS SAM テンプレートの詳細については、[AWS SAM 「テンプレートの基本](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-basics.html)」を参照してください。
+ の `package` コマンドを使用して AWS CloudFormation 作成したアプリケーションのパッケージ AWS CLI。このコマンドは、 AWS SAM テンプレートが参照するローカルアーティファクト (ローカルパス) をパッケージ化します。詳細については、 CloudFormation ドキュメントの「 [パッケージ](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html)」を参照してください。
+ アプリケーションのソースコードを指す URL (アプリケーションを公開で発行する場合)。
+ readme.txt ファイル。このファイルには、お客様がアプリケーションを使用する方法、およびお客様独自の AWS アカウントでアプリケーションをデプロイする前の設定方法が説明されている必要があります。
+ [SPDX ウェブサイト](https://spdx.org/licenses/)の license.txt ファイルまたは有効なライセンス識別子。ライセンスは、アプリケーションを公開共有する場合にのみ必要です。アプリケーションを非公開にしたり、非公開共有したりする場合は、ライセンスを指定する必要はありません。
+ アプリケーションをパッケージ化したときに Amazon S3 にアップロードしたアーティファクトに対する読み取りアクセス許可をサービスに付与するための有効な Amazon S3 バケットポリシー。このポリシーを設定するには、次の手順に従います。

  1. Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

  1. アプリケーションのパッケージ化に使用した Amazon S3 バケットを選択します。

  1. **[アクセス許可]** タブを選択します。

  1. [**バケットポリシー**] ボタンを選択します。

  1. 次のポリシーステートメントを [**バケットポリシーエディタ**] に貼り付けます。必ず `Resource`要素でバケット名を、 `Condition`要素で AWS アカウント ID を置き換えてください。`Condition` 要素の 式は、指定された AWS アカウントからアプリケーションにアクセスするアクセス許可 AWS Serverless Application Repository のみを持つようにします。ポリシーステートメントの詳細については、*IAM ユーザーガイド*の「[IAM JSON ポリシーの要素のリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)」を参照してください。

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Principal": {
                     "Service":  "serverlessrepo.amazonaws.com"
                 },
                 "Action": "s3:GetObject",
                 "Resource": "arn:aws:s3:::bucketname/*",
                 "Condition" : {
                     "StringEquals": {
                         "aws:SourceAccount": "123456789012"
                     }
                 }
             }
         ]
     }
     ```

------

  1. **[保存]** ボタンを選択します。

### 手順
<a name="create-new-application"></a>

次の手順を使用して AWS Serverless Application Repository 、 で新しいアプリケーションを作成します。

**で新しいアプリケーションを作成するには AWS Serverless Application Repository**

1. [AWS Serverless Application Repository コンソール](https://console.aws.amazon.com/serverlessrepo/home)を開き、[**Publish applications**] を選択します。

1. [**Publish an application**] ページで、次のアプリケーション情報を入力し、[**Publish application**] を選択します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/serverlessrepo/latest/devguide/serverlessrepo-how-to-publish.html)

## アプリケーションの共有
<a name="share-application"></a>

公開アプリケーションには、次の 3 つのカテゴリのいずれかでアクセス許可を設定できます。
+ **非公開 (デフォルト)** - 同じアカウントで作成され、他の AWS アカウントと共有されていないアプリケーション。 AWS アカウントを共有するコンシューマーのみが、プライベートアプリケーションをデプロイするアクセス許可を持っています。
+ **プライベート共有** – パブリッシャーが特定の AWS アカウントのセットまたは AWS 組織内の AWS アカウントと明示的に共有したアプリケーション。コンシューマーには、自分の AWS アカウントまたは AWS Organization と共有されているアプリケーションをデプロイするアクセス許可があります。詳細については AWS Organizations、*[AWS Organizations 「 ユーザーガイド](https://docs.aws.amazon.com/organizations/latest/userguide/)*」を参照してください。
+ **公開共有** – パブリッシャーがすべてのユーザーと共有しているアプリケーション。すべてのコンシューマーは、すべての公開共有アプリケーションをデプロイするためのアクセス許可を付与されます。

アプリケーションを に公開すると AWS Serverless Application Repository、デフォルトでプライベートに設定されます****。このセクションでは、アプリケーションを特定の AWS アカウントまたは AWS 組織とプライベートに共有する方法、または全員とパブリックに共有する方法について説明します。

### コンソールからのアプリケーションの共有
<a name="share-application-console"></a>

アプリケーションを他のユーザーと共有するには、2 つのオプションがあります。1) 特定の AWS アカウントまたは AWS 組織内の AWS アカウントと共有するか、2) 全員とパブリックに共有します。詳細については AWS Organizations、*[AWS Organizations 「 ユーザーガイド](https://docs.aws.amazon.com/organizations/latest/userguide/)*」を参照してください。

**オプション 1: アプリケーションを AWS 組織内の特定の AWS アカウント (複数可) またはアカウントと共有するには**

1. [AWS Serverless Application Repository コンソール](https://console.aws.amazon.com/serverlessrepo/home)を開きます。

1. ナビゲーションペインで、[**Published Applications (後悔アプリケーション)**] を選択して、作成したアプリケーションの一覧を表示します。

1. 共有するアプリケーションを選択します。

1. [**共有**] タブを選択します。

1. [**Application policy statements (アプリケーションポリシーステートメント)**] セクションで、[**Create Statement (ステートメントの作成)**] ボタンを選択します。

1. [**Statement Configuration (ステートメント設定)**] ウィンドウで、アプリケーションの共有方法に基づいてフィールドに入力します。
**注記**  
組織と共有している場合は、 AWS アカウントがメンバーである組織のみを指定できます。自分がメンバーではない AWS 組織を指定しようとすると、エラーが発生します。  
アプリケーションを AWS Organization と共有するには、今後共有を取り消す必要がある場合に備えて、 `UnshareApplication`アクションがポリシーステートメントに追加されることを確認する必要があります。

1. **[保存]** ボタンを選択します。

**オプション 2: アプリケーションをすべてのユーザーと公開するには**

1. [AWS Serverless Application Repository コンソール](https://console.aws.amazon.com/serverlessrepo/home)を開きます。

1. ナビゲーションペインで、[**Published Applications (後悔アプリケーション)**] を選択して、作成したアプリケーションの一覧を表示します。

1. 共有するアプリケーションを選択します。

1. [**共有**] タブを選択します。

1. [**Public Sharing (公開共有)**] セクションで、[**編集**] ボタンを選択します。

1. [**Public Sharing (公開共有)**] で、[**有効**] ラジオボタンを選択します。

1. テキストボックスにアプリケーション名を入力し、[**保存**] ボタンを選択します。

**注記**  
アプリケーションを公開共有するには、`SemanticVersion` プロパティ `LicenseUrl` とプロパティの両方が設定されている必要があります。

### を介したアプリケーションの共有 AWS CLI
<a name="share-application-cli"></a>

を使用してアプリケーションを共有するには AWS CLI 、 `[put-application-policy](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/put-application-policy.html)` コマンドを使用して、プリンシパルとして共有する AWS アカウント (複数可) を指定するアクセス許可を付与します。

CLI を使用してアプリケーションを共有する方法の詳細については、 AWS 「」を参照してください[AWS Serverless Application Repository アプリケーションポリシーの例](security_iam_resource-based-policy-examples.md)。

## アプリケーションの共有解除
<a name="unshare-applications"></a>

Organization からアプリケーションの共有を解除するには、次の 2 つのオプションがあります AWS 。

1. アプリケーションの発行者は、`[put-application-policy](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/put-application-policy.html)` コマンドを使用してアクセス許可を削除できます。

1.  AWS 組織の*管理アカウントの*ユーザーは、[アプリケーションが別のアカウントのユーザーによって公開された場合でも、組織と共有されている任意のアプリケーションで共有解除](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/applications-applicationid-unshare.html)アプリケーションオペレーションを実行できます。
**注記**  
アプリケーションが「アプリケーションの共有解除」オペレーションで AWS Organization から共有解除された場合、そのアプリケーションを AWS Organization と再度共有することはできません。

   詳細については AWS Organizations、*[AWS Organizations 「 ユーザーガイド](https://docs.aws.amazon.com/organizations/latest/userguide/)*」を参照してください。

### アクセス許可を削除するパブリッシャー
<a name="unshare-applications-publisher"></a>

#### コンソールからアクセス許可を削除するパブリッシャー
<a name="unshare-application-publisher-console"></a>

を通じてアプリケーションの共有を解除するには AWS マネジメントコンソール、他の AWS アカウントと共有しているポリシーステートメントを削除します。これを実行するには、以下の手順を実行します。

1. [AWS Serverless Application Repository コンソール](https://console.aws.amazon.com/serverlessrepo/home) を開きます。

1. 左側のナビゲーションペインで、[**使用可能なアプリケーション**] を選択します。

1. 共有解除するアプリケーションを選択します。

1. [**共有**] タブを選択します。

1. [**Application policy statements (アプリケーションポリシーステートメント)**] セクションで、共有解除するアカウントとアプリケーションを共有しているポリシーステートメントを選択します。

1. **[削除]** を選択します。

1. 確認メッセージが表示されます。**[削除]** をもう一度選択します。

#### を介したアクセス許可の削除 AWS CLI
<a name="unshare-application-publisher-cli"></a>

を使用してアプリケーションの共有を解除するには AWS CLI、パブリッシャーは `[put-application-policy](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/put-application-policy.html)` コマンドを使用してアクセス許可を削除または変更し、アプリケーションをプライベートにしたり、別の AWS アカウントのセットと共有したりできます。

CLI を使用したアクセス許可の変更の詳細については、 AWS 「」を参照してください[AWS Serverless Application Repository アプリケーションポリシーの例](security_iam_resource-based-policy-examples.md)。

### アプリケーションを共有解除する管理アカウント
<a name="unshare-applications-management"></a>

#### コンソールを使用して管理アカウントが AWS Organization からアプリケーションを共有解除する
<a name="unshare-application-management-console"></a>

を通じて AWS Organization からアプリケーションの共有を解除するには AWS マネジメントコンソール、*管理アカウントの*ユーザーが以下を実行できます。

1. [AWS Serverless Application Repository コンソール](https://console.aws.amazon.com/serverlessrepo/home) を開きます。

1. 左側のナビゲーションペインで、[**使用可能なアプリケーション**] を選択します。

1. アプリケーションのタイルで、[**共有解除**] を選択します。

1. [共有解除] メッセージボックスで、組織 ID とアプリケーション名を入力し、[**保存**] を選択して、アプリケーションの共有解除を確認します。

#### を通じて AWS 組織からアプリケーションを共有解除する管理アカウント AWS CLI
<a name="unshare-application-management-cli"></a>

 AWS Organization からアプリケーションの共有を解除するには、*管理アカウントの*ユーザーが `aws serverlessrepo unshare-application` コマンドを実行できます。

次のコマンドは、 AWS Organization からアプリケーションの共有を解除します。ここで、*application-id* はアプリケーションの Amazon リソースネーム (ARN) で、 *organization-id* は Organization ID です AWS 。

```
1. aws serverlessrepo unshare-application --application-id application-id --organization-id organization-id
```

## アプリケーションの削除
<a name="deleting-applications"></a>

 AWS マネジメントコンソール または AWS SAM CLI AWS Serverless Application Repository を使用して、 からアプリケーションを削除できます。

### アプリケーションの削除 (コンソール)
<a name="deleting-application-through-aws-console"></a>

を使用して公開されたアプリケーションを削除するには AWS マネジメントコンソール、次の手順を実行します。

1. [AWS Serverless Application Repository コンソール](https://console.aws.amazon.com/serverlessrepo/home)を開きます。

1. [**My Applications (マイアプリケーション)**] に、削除するアプリケーションを選択します。

1. アプリケーションの詳細ページで、[**Delete application (アプリケーションの削除)**] を選択します。

1. [**Delete application (アプリケーションの削除)**] を選択して、削除を完了します。

### アプリケーションの削除 (AWS CLI)
<a name="deleting-application-through-cli"></a>

を使用して公開されたアプリケーションを削除するには AWS CLI、 `[aws serverlessrepo delete-application](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/delete-application.html)` コマンドを実行します。

次のコマンドはアプリケーションを削除します。ここで、`application-id` はアプリケーションの Amazon リソースネーム (ARN) です。

```
1. aws serverlessrepo delete-application --application-id application-id
```

# 既存アプリケーションの新しいバージョンの発行
<a name="serverlessrepo-how-to-publish-new-version"></a>

このセクションでは、 CLI または AWS Serverless Application Repository を使用して、既存のアプリケーションの新しいバージョンを AWS SAM に発行する方法について説明します AWS マネジメントコンソール。新しいアプリケーションを発行する手順については、「[アプリケーションを発行する方法](serverlessrepo-how-to-publish.md)」を参照してください。

## 既存アプリケーションの新しいバージョンの発行 (AWS CLI)
<a name="serverlessrepo-how-to-publish-new-version-cli"></a>

既存のアプリケーションの新しいバージョンを発行する最も簡単な方法は、一連の AWS SAM CLI コマンドを使用することです。詳細については、 *AWS Serverless Application Model (AWS SAM) デベロッパーガイド*[の「 CLI AWS SAM を使用したアプリケーションの公開](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-publishing-applications.html)」を参照してください。

## 既存アプリケーションの新しいバージョンの発行 (コンソール)
<a name="serverlessrepo-how-to-publish-new-version-console"></a>

以前に発行したアプリケーションの新しいバージョンを発行するには、次の手順に従います。

1. [AWS Serverless Application Repository コンソール](https://console.aws.amazon.com/serverlessrepo/home)を開きます。

1. ナビゲーションペインで、[**My Applications**] を選択し、作成済みのアプリケーションを一覧表示します。

1. 新しいバージョンを発行するアプリケーションを選択します。

1. **[新しいバージョンを発行]** を選択します。

1. [**Versions**] に、次のアプリケーション情報を入力します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/serverlessrepo/latest/devguide/serverlessrepo-how-to-publish-new-version.html)

1. [**Publish version**] を選択します。