

# AWS Proton examples using AWS CLI
<a name="cli_proton_code_examples"></a>

次のコード例では、AWS Proton で AWS Command Line Interface を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

*アクション*はより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

各例には完全なソースコードへのリンクが含まれており、コードの設定方法と実行方法に関する手順を確認できます。

**Topics**
+ [アクション](#actions)

## アクション
<a name="actions"></a>

### `cancel-service-instance-deployment`
<a name="proton_CancelServiceInstanceDeployment_cli_topic"></a>

次のコード例は、`cancel-service-instance-deployment` を使用する方法を示しています。

**AWS CLI**  
**サービスインスタンスのデプロイをキャンセルするには**  
次の `cancel-service-instance-deployment` の例では、サービスインスタンスのデプロイをキャンセルします。  

```
aws proton cancel-service-instance-deployment \
    --service-instance-name "instance-one" \
    --service-name "simple-svc"
```
出力:  

```
{
    "serviceInstance": {
        "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one",
        "createdAt": "2021-04-02T21:29:59.962000+00:00",
        "deploymentStatus": "CANCELLING",
        "environmentName": "simple-env",
        "lastDeploymentAttemptedAt": "2021-04-02T21:45:15.406000+00:00",
        "lastDeploymentSucceededAt": "2021-04-02T21:38:00.823000+00:00",
        "name": "instance-one",
        "serviceName": "simple-svc",
        "spec": "proton: ServiceSpec\npipeline:\n  my_sample_pipeline_optional_input: abc\n  my_sample_pipeline_required_input: '123'\ninstances:\n- name: my-instance\n  environment: MySimpleEnv\n  spec:\n    my_sample_service_instance_optional_input: def\n    my_sample_service_instance_required_input: '456'\n- name: my-other-instance\n  environment: MySimpleEnv\n  spec:\n    my_sample_service_instance_required_input: '789'\n",
        "templateMajorVersion": "1",
        "templateMinorVersion": "1",
        "templateName": "svc-simple"
    }
}
```
詳細については、「*AWS Proton Administrator Guide*」の「[Update a service instance](https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-instance-update.html)」または「*AWS Proton User Guide*」の「[Update a service instance](https://docs.aws.amazon.com/proton/latest/userguide/ug-svc-instance-update.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[CancelServiceInstanceDeployment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/proton/cancel-service-instance-deployment.html)」を参照してください。

### `cancel-service-pipeline-deployment`
<a name="proton_CancelServicePipelineDeployment_cli_topic"></a>

次のコード例は、`cancel-service-pipeline-deployment` を使用する方法を示しています。

**AWS CLI**  
**サービスパイプラインのデプロイをキャンセルするには**  
次の `cancel-service-pipeline-deployment` の例では、サービスパイプラインのデプロイをキャンセルします。  

```
aws proton cancel-service-pipeline-deployment \
    --service-name "simple-svc"
```
出力:  

```
{
    "pipeline": {
        "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline",
        "createdAt": "2021-04-02T21:29:59.962000+00:00",
        "deploymentStatus": "CANCELLING",
        "lastDeploymentAttemptedAt": "2021-04-02T22:02:45.095000+00:00",
        "lastDeploymentSucceededAt": "2021-04-02T21:39:28.991000+00:00",
        "templateMajorVersion": "1",
        "templateMinorVersion": "1",
        "templateName": "svc-simple"
    }
}
```
詳細については、「*AWS Proton Administrator Guide*」の「[Update a service pipeline](https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-pipeline-update.html)」または「*AWS Proton User Guide*」の「[Update a service pipeline](https://docs.aws.amazon.com/proton/latest/userguide/ag-svc-pipeline-update.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[CancelServicePipelineDeployment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/proton/cancel-service-pipeline-deployment.html)」を参照してください。

### `create-service`
<a name="proton_CreateService_cli_topic"></a>

次のコード例は、`create-service` を使用する方法を示しています。

**AWS CLI**  
**サービスを作成するには**  
次の `create-service` の例では、サービスパイプラインを使用してサービスを作成します。  

```
aws proton create-service \
    --name "MySimpleService" \
    --template-name "fargate-service" \
    --template-major-version "1" \
    --branch-name "mainline" \
    --repository-connection-arn "arn:aws:codestar-connections:region-id:account-id:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" \
    --repository-id "myorg/myapp" \
    --spec file://spec.yaml
```
`spec.yaml` の内容:  

```
proton: ServiceSpec

pipeline:
    my_sample_pipeline_required_input: "hello"
    my_sample_pipeline_optional_input: "bye"

instances:
    - name: "acme-network-dev"
        environment: "ENV_NAME"
        spec:
            my_sample_service_instance_required_input: "hi"
            my_sample_service_instance_optional_input: "ho"
```
出力:  

```
{
    "service": {
        "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService",
        "createdAt": "2020-11-18T19:50:27.460000+00:00",
        "lastModifiedAt": "2020-11-18T19:50:27.460000+00:00",
        "name": "MySimpleService",
        "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "repositoryId": "myorg/myapp",
        "status": "CREATE_IN_PROGRESS",
        "templateName": "fargate-service"
    }
}
```
詳細については、「*AWS Proton Administrator Guide*」の「[Create a service](https://docs.aws.amazon.com/proton/latest/adminguide/ag-create-svc.html)」および「*AWS Proton User Guide*」の「[Create a service](https://docs.aws.amazon.com/proton/latest/userguide/ug-svc-create.html)」を参照してください。  
+  API の詳細については、AWS CLI コマンドリファレンスの「[CreateService](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/proton/create-service.html)」を参照してください。**

### `delete-service`
<a name="proton_DeleteService_cli_topic"></a>

次のコード例は、`delete-service` を使用する方法を示しています。

**AWS CLI**  
**サービスを削除する方法**  
次の `delete-service` の例では、サービスを削除します。  

```
aws proton delete-service \
    --name "simple-svc"
```
出力:  

```
{
    "service": {
        "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc",
        "branchName": "mainline",
        "createdAt": "2020-11-28T22:40:50.512000+00:00",
        "description": "Edit by updating description",
        "lastModifiedAt": "2020-11-29T00:30:39.248000+00:00",
        "name": "simple-svc",
        "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "repositoryId": "myorg/myapp",
        "status": "DELETE_IN_PROGRESS",
        "templateName": "fargate-service"
    }
}
```
詳細については、「*AWS Proton Administrator Guide*」の「[Delete a service](https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-delete.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[DeleteService](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/proton/delete-service.html)」を参照してください。

### `get-service-instance`
<a name="proton_GetServiceInstance_cli_topic"></a>

次のコード例は、`get-service-instance` を使用する方法を示しています。

**AWS CLI**  
**サービスインスタンスの詳細を取得するには**  
次の `get-service-instance` の例では、サービスインスタンスの詳細データを取得します。  

```
aws proton get-service-instance \
    --name "instance-one" \
    --service-name "simple-svc"
```
出力:  

```
{
    "serviceInstance": {
        "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one",
        "createdAt": "2020-11-28T22:40:50.512000+00:00",
        "deploymentStatus": "SUCCEEDED",
        "environmentName": "simple-env",
        "lastDeploymentAttemptedAt": "2020-11-28T22:40:50.512000+00:00",
        "lastDeploymentSucceededAt": "2020-11-28T22:40:50.512000+00:00",
        "name": "instance-one",
        "serviceName": "simple-svc",
        "spec": "proton: ServiceSpec\npipeline:\n  my_sample_pipeline_optional_input: hello world\n  my_sample_pipeline_required_input: pipeline up\ninstances:\n- name: instance-one\n  environment: my-simple-env\n  spec:\n    my_sample_service_instance_optional_input: Ola\n    my_sample_service_instance_required_input: Ciao\n",
        "templateMajorVersion": "1",
        "templateMinorVersion": "0",
        "templateName": "svc-simple"
    }
}
```
詳細については、「*AWS Proton Administrator Guide*」の「[View service data](https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-view.html)」または「*AWS Proton User Guide*」の「[View service data](https://docs.aws.amazon.com/proton/latest/userguide/ug-svc-view.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GetServiceInstance](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/proton/get-service-instance.html)」を参照してください。

### `get-service`
<a name="proton_GetService_cli_topic"></a>

次のコード例は、`get-service` を使用する方法を示しています。

**AWS CLI**  
**サービスの詳細を取得するには**  
次の `get-service` の例では、サービスの詳細データを取得します。  

```
aws proton get-service \
    --name "simple-svc"
```
出力:  

```
{
    "service": {
        "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc",
        "branchName": "mainline",
        "createdAt": "2020-11-28T22:40:50.512000+00:00",
        "lastModifiedAt": "2020-11-28T22:44:51.207000+00:00",
        "name": "simple-svc",
        "pipeline": {
            "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "createdAt": "2020-11-28T22:40:50.512000+00:00",
            "deploymentStatus": "SUCCEEDED",
            "lastDeploymentAttemptedAt": "2020-11-28T22:40:50.512000+00:00",
            "lastDeploymentSucceededAt": "2020-11-28T22:40:50.512000+00:00",
            "spec": "proton: ServiceSpec\npipeline:\n  my_sample_pipeline_required_input: hello\n  my_sample_pipeline_optional_input: bye\ninstances:\n- name: instance-svc-simple\n  environment: my-simple-env\n  spec:\n    my_sample_service_instance_required_input: hi\n    my_sample_service_instance_optional_input: ho\n",
            "templateMajorVersion": "1",
            "templateMinorVersion": "1",
            "templateName": "svc-simple"
        },
        "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
        "repositoryId": "myorg/myapp",
        "spec": "proton: ServiceSpec\npipeline:\n  my_sample_pipeline_required_input: hello\n  my_sample_pipeline_optional_input: bye\ninstances:\n- name: instance-svc-simple\n  environment: my-simple-env\n  spec:\n    my_sample_service_instance_required_input: hi\n    my_sample_service_instance_optional_input: ho\n",
        "status": "ACTIVE",
        "templateName": "svc-simple"
    }
}
```
詳細については、「*AWS Proton Administrator Guide*」の「[View service data](https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-view.html)」または「*AWS Proton User Guide*」の「[View service data](https://docs.aws.amazon.com/proton/latest/userguide/ug-svc-view.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GetService](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/proton/get-service.html)」を参照してください。

### `list-service-instances`
<a name="proton_ListServiceInstances_cli_topic"></a>

次のコード例は、`list-service-instances` を使用する方法を示しています。

**AWS CLI**  
**例 1: すべてのサービスインスタンスを一覧表示するには**  
次の `list-service-instances` の例では、サービスインスタンスを一覧表示します。  

```
aws proton list-service-instances
```
出力:  

```
{
    "serviceInstances": [
        {
            "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one",
            "createdAt": "2020-11-28T22:40:50.512000+00:00",
            "deploymentStatus": "SUCCEEDED",
            "environmentArn": "arn:aws:proton:region-id:123456789012:environment/simple-env",
            "lastDeploymentAttemptedAt": "2020-11-28T22:40:50.512000+00:00",
            "lastDeploymentSucceededAt": "2020-11-28T22:40:50.512000+00:00",
            "name": "instance-one",
            "serviceName": "simple-svc",
            "templateMajorVersion": "1",
            "templateMinorVersion": "0",
            "templateName": "fargate-service"
        }
    ]
}
```
詳細については、「*AWS Proton Administrator Guide*」の「[View service instance data](https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-instance-view.html)」または「*AWS Proton User Guide*」の「[View service instance data](https://docs.aws.amazon.com/proton/latest/userguide/ag-svc-instance-view.html)」を参照してください。  
**例 2: 指定されたサービスインスタンスを一覧表示するには**  
次の `get-service-instance` の例では、サービスインスタンスを取得します。  

```
aws proton get-service-instance \
    --name "instance-one" \
    --service-name "simple-svc"
```
出力:  

```
{
    "serviceInstance": {
        "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one",
        "createdAt": "2020-11-28T22:40:50.512000+00:00",
        "deploymentStatus": "SUCCEEDED",
        "environmentName": "simple-env",
        "lastDeploymentAttemptedAt": "2020-11-28T22:40:50.512000+00:00",
        "lastDeploymentSucceededAt": "2020-11-28T22:40:50.512000+00:00",
        "name": "instance-one",
        "serviceName": "simple-svc",
        "spec": "proton: ServiceSpec\npipeline:\n  my_sample_pipeline_optional_input: hello world\n  my_sample_pipeline_required_input: pipeline up\ninstances:\n- name: instance-one\n  environment: my-simple-env\n  spec:\n    my_sample_service_instance_optional_input: Ola\n    my_sample_service_instance_required_input: Ciao\n",
        "templateMajorVersion": "1",
        "templateMinorVersion": "0",
        "templateName": "svc-simple"
    }
}
```
詳細については、「*AWS Proton Administrator Guide*」の「[View service instance data](https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-instance-view.html)」または「*AWS Proton User Guide*」の「[View service instance data](https://docs.aws.amazon.com/proton/latest/userguide/ag-svc-instance-view.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ListServiceInstances](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/proton/list-service-instances.html)」を参照してください。

### `update-service-instance`
<a name="proton_UpdateServiceInstance_cli_topic"></a>

次のコード例は、`update-service-instance` を使用する方法を示しています。

**AWS CLI**  
**サービスインスタンスを新しいマイナーバージョンに更新するには**  
次の `update-service-instance` の例では、サービスインスタンスをサービステンプレートの新しいマイナーバージョンに更新し、「my-other-instance」という名前の新しいインスタンスを新しい必須の入力に追加します。  

```
aws proton update-service-instance \
    --service-name "simple-svc" \
    --spec "file://service-spec.yaml " \
    --template-major-version "1" \
    --template-minor-version "1" \
    --deployment-type "MINOR_VERSION" \
    --name "instance-one"
```
`service-spec.yaml` の内容:  

```
proton: ServiceSpec
pipeline:
    my_sample_pipeline_optional_input: "abc"
    my_sample_pipeline_required_input: "123"
instances:
    - name: "instance-one"
        environment: "simple-env"
        spec:
            my_sample_service_instance_optional_input: "def"
            my_sample_service_instance_required_input: "456"
    - name: "my-other-instance"
        environment: "simple-env"
        spec:
            my_sample_service_instance_required_input: "789"
```
出力:  

```
{
    "serviceInstance": {
        "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one",
        "createdAt": "2021-04-02T21:29:59.962000+00:00",
        "deploymentStatus": "IN_PROGRESS",
        "environmentName": "arn:aws:proton:region-id:123456789012:environment/simple-env",
        "lastDeploymentAttemptedAt": "2021-04-02T21:38:00.823000+00:00",
        "lastDeploymentSucceededAt": "2021-04-02T21:29:59.962000+00:00",
        "name": "instance-one",
        "serviceName": "simple-svc",
        "templateMajorVersion": "1",
        "templateMinorVersion": "0",
        "templateName": "svc-simple"
    }
}
```
詳細については、「*AWS Proton Administrator Guide*」の「[Update a service instance](https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-instance-update.html)」または「*AWS Proton User Guide*」の「[Update a service instance](https://docs.aws.amazon.com/proton/latest/userguide/ag-svc-instance-update.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[UpdateServiceInstance](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/proton/update-service-instance.html)」を参照してください。

### `update-service-pipeline`
<a name="proton_UpdateServicePipeline_cli_topic"></a>

次のコード例は、`update-service-pipeline` を使用する方法を示しています。

**AWS CLI**  
**サービスパイプラインを更新するには**  
次の `update-service-pipeline` の例では、サービスパイプラインをサービステンプレートの新しいマイナーバージョンに更新します。  

```
aws proton update-service-pipeline \
    --service-name "simple-svc" \
    --spec "file://service-spec.yaml" \
    --template-major-version "1" \
    --template-minor-version "1" \
    --deployment-type "MINOR_VERSION"
```
出力:  

```
{
    "pipeline": {
        "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "createdAt": "2021-04-02T21:29:59.962000+00:00",
        "deploymentStatus": "IN_PROGRESS",
        "lastDeploymentAttemptedAt": "2021-04-02T21:39:28.991000+00:00",
        "lastDeploymentSucceededAt": "2021-04-02T21:29:59.962000+00:00",
        "spec": "proton: ServiceSpec\n\npipeline:\n  my_sample_pipeline_optional_input: \"abc\"\n  my_sample_pipeline_required_input: \"123\"\n\ninstances:\n  - name: \"my-instance\"\n    environment: \"MySimpleEnv\"\n    spec:\n      my_sample_service_instance_optional_input: \"def\"\n      my_sample_service_instance_required_input: \"456\"\n  - name: \"my-other-instance\"\n    environment: \"MySimpleEnv\"\n    spec:\n      my_sample_service_instance_required_input: \"789\"\n",
        "templateMajorVersion": "1",
        "templateMinorVersion": "0",
        "templateName": "svc-simple"
    }
}
```
詳細については、「*AWS Proton Administrator Guide*」の「[Update a service pipeline](https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-pipeline-update.html)」または「*AWS Proton User Guide*」の「[Update a service pipeline](https://docs.aws.amazon.com/proton/latest/userguide/ag-svc-pipeline-update.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[UpdateServicePipeline](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/proton/update-service-pipeline.html)」を参照してください。

### `update-service`
<a name="proton_UpdateService_cli_topic"></a>

次のコード例は、`update-service` を使用する方法を示しています。

**AWS CLI**  
**サービスを更新するには**  
次の `update-service` の例では、サービスの説明を編集します。  

```
aws proton update-service \
    --name "MySimpleService" \
    --description "Edit by updating description"
```
出力:  

```
{
    "service": {
        "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService",
        "branchName": "mainline",
        "createdAt": "2021-03-12T22:39:42.318000+00:00",
        "description": "Edit by updating description",
        "lastModifiedAt": "2021-03-12T22:44:21.975000+00:00",
        "name": "MySimpleService",
        "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "repositoryId": "myorg/myapp",
        "status": "ACTIVE",
        "templateName": "fargate-service"
    }
}
```
詳細については、「*AWS Proton Administrator Guide*」の「[Edit a service](https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-update.html)」または「*AWS Proton User Guide*」の「[Edit a service](https://docs.aws.amazon.com/proton/latest/userguide/ug-svc-update.html)」を参照してください。  
+  API の詳細については、AWS CLI コマンドリファレンスの「[UpdateService](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/proton/update-service.html)」を参照してください。**