

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Referensi tindakan perintah
<a name="action-reference-Commands"></a>

Tindakan Commands memungkinkan Anda menjalankan perintah shell dalam instance komputasi virtual. Saat Anda menjalankan tindakan, perintah yang ditentukan dalam konfigurasi tindakan dijalankan dalam wadah terpisah. Semua artefak yang ditetapkan sebagai artefak masukan untuk suatu CodeBuild tindakan tersedia di dalam wadah yang menjalankan perintah. Tindakan ini memungkinkan Anda untuk menentukan perintah tanpa terlebih dahulu membuat CodeBuild proyek. Untuk informasi selengkapnya, lihat [ActionDeclaration](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ActionDeclaration.html)dan [OutputArtifact](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_OutputArtifact.html)di *Referensi AWS CodePipeline API*.

**penting**  
Tindakan ini menggunakan CodeBuild komputasi CodePipeline terkelola untuk menjalankan perintah di lingkungan build. Menjalankan tindakan perintah akan dikenakan biaya terpisah di AWS CodeBuild.

**catatan**  
Tindakan Commands hanya tersedia untuk pipeline tipe V2.

**Topics**
+ [Pertimbangan untuk tindakan Perintah](#action-reference-Commands-considerations)
+ [Izin kebijakan peran layanan](#action-reference-Commands-policy)
+ [Tipe tindakan](#action-reference-Commands-type)
+ [Parameter konfigurasi](#action-reference-Commands-config)
+ [Artefak masukan](#action-reference-Commands-input)
+ [Artefak keluaran](#action-reference-Commands-output)
+ [Variabel-variabel lingkungan](#action-reference-Commands-envvars)
+ [Izin peran layanan: Tindakan perintah](#edit-role-Commands)
+ [Deklarasi tindakan (contoh)](#action-reference-Commands-example)
+ [Lihat juga](#action-reference-Commands-links)

## Pertimbangan untuk tindakan Perintah
<a name="action-reference-Commands-considerations"></a>

Pertimbangan berikut berlaku untuk tindakan Perintah.
+ Tindakan perintah menggunakan CodeBuild sumber daya yang mirip dengan CodeBuild tindakan, sambil mengizinkan perintah lingkungan shell dalam instance komputasi virtual tanpa perlu mengaitkan atau membuat proyek build.
**catatan**  
Menjalankan tindakan perintah akan dikenakan biaya terpisah di AWS CodeBuild.
+ Karena tindakan Command CodePipeline menggunakan CodeBuild resource, build yang dijalankan oleh action akan dikaitkan dengan batas build untuk akun Anda. CodeBuild Build yang dijalankan oleh tindakan Command akan dihitung terhadap batas build bersamaan seperti yang dikonfigurasi untuk akun tersebut.
+ Batas waktu untuk build dengan tindakan Commands adalah 55 menit, berdasarkan CodeBuild build.
+ Instance komputasi menggunakan lingkungan build yang terisolasi di CodeBuild. 
**catatan**  
Karena lingkungan build terisolasi digunakan di tingkat akun, instance dapat digunakan kembali untuk eksekusi pipeline lainnya.
+ Semua format didukung kecuali format multi-baris. Anda harus menggunakan format satu baris saat memasukkan perintah.
+ Tindakan perintah didukung untuk tindakan lintas akun. Untuk menambahkan tindakan perintah lintas akun, tambahkan `actionRoleArn` dari akun target Anda dalam deklarasi tindakan.
+ Untuk tindakan ini, CodePipeline akan mengambil peran layanan pipeline dan menggunakan peran itu untuk memungkinkan akses ke sumber daya saat runtime. Disarankan untuk mengonfigurasi peran layanan sehingga izin dicakup ke tingkat tindakan.
+ Izin yang ditambahkan ke peran CodePipeline layanan dirinci dalam[Menambahkan izin ke peran CodePipeline layanan](how-to-custom-role.md#how-to-update-role-new-services).
+ Izin yang diperlukan untuk melihat log di konsol dirinci di[Izin diperlukan untuk melihat log komputasi di konsol](security-iam-permissions-console-logs.md).
+ Tidak seperti tindakan lain di CodePipeline, Anda tidak menyetel bidang dalam konfigurasi tindakan; Anda mengatur bidang konfigurasi tindakan di luar konfigurasi tindakan.

## Izin kebijakan peran layanan
<a name="action-reference-Commands-policy"></a>

Saat CodePipeline menjalankan tindakan, CodePipeline buat grup log menggunakan nama pipeline sebagai berikut. Ini memungkinkan Anda untuk mengurangi izin untuk mencatat sumber daya menggunakan nama pipeline.

```
/aws/codepipeline/MyPipelineName
```

Jika Anda menggunakan peran layanan yang ada, untuk menggunakan tindakan Perintah, Anda perlu menambahkan izin berikut untuk peran layanan.
+ log: CreateLogGroup
+ log: CreateLogStream
+ log: PutLogEvents

Dalam pernyataan kebijakan peran layanan, cakupkan izin ke tingkat pipeline seperti yang ditunjukkan pada contoh berikut.

```
{
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
    ],
    "Resource": [
        "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME",
        "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*"
   ]
}
```

Untuk melihat log di konsol menggunakan halaman dialog detail tindakan, izin untuk melihat log harus ditambahkan ke peran konsol. Untuk informasi selengkapnya, lihat contoh kebijakan izin konsol di[Izin diperlukan untuk melihat log komputasi di konsol](security-iam-permissions-console-logs.md).

## Tipe tindakan
<a name="action-reference-Commands-type"></a>
+ Kategori: `Compute`
+ Pemilik: `AWS`
+ Penyedia: `Commands`
+ Versi: `1`

## Parameter konfigurasi
<a name="action-reference-Commands-config"></a>

**Commands**  
Wajib: Ya  
Anda dapat memberikan perintah shell untuk menjalankan `Commands` tindakan. Di konsol, perintah dimasukkan pada baris terpisah. Di CLI, perintah dimasukkan sebagai string terpisah.  
Format multi-baris tidak didukung dan akan menghasilkan pesan kesalahan. Format baris tunggal harus digunakan untuk memasukkan perintah di bidang **Perintah**.
 ComputeType Nilai EnvironmentType dan cocok dengan yang ada di CodeBuild. Kami mendukung subset dari jenis yang tersedia. Untuk informasi selengkapnya, lihat [Membangun Jenis Komputasi Lingkungan](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html).

**EnvironmentType**  
Wajib: Tidak  
Gambar OS untuk lingkungan build yang mendukung tindakan Command. Berikut ini adalah nilai yang valid untuk lingkungan build:  
+ LINUX\$1CONTAINER
+ WINDOWS\$1SERVER\$12022\$1CONTAINER
Pemilihan untuk kemudian **EnvironmentType**akan memungkinkan jenis komputasi untuk OS itu di **ComputeType**lapangan. Untuk informasi selengkapnya tentang jenis CodeBuild komputasi yang tersedia untuk tindakan ini, lihat referensi [mode komputasi dan tipe lingkungan build](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) di CodeBuild Panduan Pengguna.  
Jika tidak ditentukan, komputasi default menjadi berikut untuk lingkungan build:  
+ **Jenis komputasi:** GENERAL1 BUILD\$1 \$1SMALL
+ **Jenis lingkungan:** LINUX\$1CONTAINER

**ComputeType**  
Wajib: Tidak  
Berdasarkan pilihan untuk EnvironmentType, jenis komputasi dapat disediakan. Berikut ini adalah nilai yang tersedia untuk komputasi; Namun, perhatikan bahwa opsi yang tersedia dapat bervariasi menurut OS.  
+ BANGUN\$1 \$1KECIL GENERAL1
+ BANGUN\$1 \$1SEDANG GENERAL1
+ BANGUN\$1 \$1BESAR GENERAL1
Beberapa jenis komputasi tidak kompatibel dengan jenis lingkungan tertentu. Misalnya, WINDOWS\$1SERVER\$12022\$1CONTAINER tidak kompatibel dengan BUILD\$1 \$1SMALL. GENERAL1 Menggunakan kombinasi yang tidak kompatibel menyebabkan tindakan gagal dan menghasilkan kesalahan runtime.

**OutputVariabel**  
Wajib: Tidak  
Tentukan nama variabel di lingkungan Anda yang ingin Anda ekspor. Untuk referensi variabel CodeBuild lingkungan, lihat [Variabel lingkungan di lingkungan build](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html) di *Panduan CodeBuild Pengguna*. 

**Berkas**  
Wajib: Tidak  
Anda dapat menyediakan file yang ingin Anda ekspor sebagai artefak keluaran untuk tindakan tersebut.  
Format yang didukung untuk file sama dengan pola CodeBuild file. Misalnya, masukkan `**/` untuk semua file. Untuk informasi selengkapnya, lihat [Membangun referensi spesifikasi untuk CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.artifacts.files) di *Panduan CodeBuild Pengguna*.  

![\[Halaman Edit tindakan untuk pipeline baru dengan tindakan Commands\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/commands-edit-screen.png)


**VpcId**  
Wajib: Tidak  
ID VPC untuk sumber daya Anda.

**Subnet**  
Wajib: Tidak  
Subnet untuk VPC. Bidang ini diperlukan ketika perintah Anda perlu terhubung ke sumber daya di VPC.

**SecurityGroupIds**  
Wajib: Tidak  
Kelompok keamanan untuk VPC. Bidang ini diperlukan ketika perintah Anda perlu terhubung ke sumber daya di VPC.

Berikut ini adalah contoh JSON dari tindakan dengan bidang konfigurasi yang ditampilkan untuk lingkungan dan jenis komputasi, bersama dengan variabel lingkungan contoh.

```
 {
            "name": "Commands1",
            "actionTypeId": {
              "category": "Compute",
              "owner": "AWS",
              "provider": "Commands",
              "version": "1"
            },
            "inputArtifacts": [
              {
                "name": "SourceArtifact"
              }
            ],
            "commands": [
              "ls",
              "echo hello",
              "echo $BEDROCK_TOKEN",
            ],
            "configuration": {
              "EnvironmentType": "LINUX_CONTAINER",
              "ComputeType": "BUILD_GENERAL1_MEDIUM"
            },
            "environmentVariables": [
              {
                "name": "BEDROCK_TOKEN",
                "value": "apiTokens:bedrockToken",
                "type": "SECRETS_MANAGER"
              }
            ],
            "runOrder": 1
          }
```

## Artefak masukan
<a name="action-reference-Commands-input"></a>
+ **Jumlah artefak:** `1 to 10`

## Artefak keluaran
<a name="action-reference-Commands-output"></a>
+ **Jumlah artefak:** `0 to 1` 

## Variabel-variabel lingkungan
<a name="action-reference-Commands-envvars"></a>

**Key**  
Kunci dalam pasangan variabel lingkungan kunci-nilai, seperti. `BEDROCK_TOKEN`

**Nilai**  
Nilai untuk pasangan kunci-nilai, seperti. `apiTokens:bedrockToken` Nilai dapat diparameterisasi dengan variabel keluaran dari tindakan pipa atau variabel pipa.  
Saat menggunakan `SECRETS_MANAGER` tipe, nilai ini harus berupa nama rahasia yang telah Anda simpan di AWS Secrets Manager.

**Tipe**  
Menentukan jenis penggunaan untuk nilai variabel lingkungan. Nilai dapat berupa `PLAINTEXT` atau `SECRETS_MANAGER`, salah satu. Jika nilainya`SECRETS_MANAGER`, berikan referensi Rahasia dalam `EnvironmentVariable` nilainya. Ketika tidak ditentukan, ini default ke. `PLAINTEXT`  
Kami sangat tidak menyarankan penggunaan variabel lingkungan *plaintext* untuk menyimpan nilai sensitif, terutama kredenal. AWS Saat Anda menggunakan CodeBuild konsol atau AWS CLI, variabel lingkungan *plaintext* ditampilkan dalam teks biasa. Untuk nilai sensitif, kami sarankan Anda menggunakan `SECRETS_MANAGER` tipe sebagai gantinya.

**catatan**  
Saat Anda memasukkan`name`,`value`, dan `type` untuk konfigurasi variabel lingkungan Anda, terutama jika variabel lingkungan berisi sintaks variabel CodePipeline keluaran, jangan melebihi batas 1000 karakter untuk bidang nilai konfigurasi. Kesalahan validasi dikembalikan ketika batas ini terlampaui.

Untuk contoh deklarasi tindakan yang menunjukkan variabel lingkungan, lihat[Parameter konfigurasi](#action-reference-Commands-config).

**catatan**  
`SECRETS_MANAGER`Jenis ini hanya didukung untuk tindakan Command.
Rahasia yang direferensikan dalam tindakan Perintah akan disunting di log build yang mirip dengan. CodeBuild Tetapi pengguna pipeline yang memiliki akses **Edit** ke pipeline masih berpotensi mengakses nilai rahasia ini dengan memodifikasi perintah.
Untuk menggunakannya SecretsManager, Anda harus menambahkan izin berikut ke peran layanan pipeline Anda:  

  ```
  {
              "Effect": "Allow",
              "Action": [
                  "secretsmanager:GetSecretValue"
              ],
              "Resource": [
                  "SECRET_ARN"
              ]
          }
  ```

## Izin peran layanan: Tindakan perintah
<a name="edit-role-Commands"></a>

Untuk dukungan Perintah, tambahkan yang berikut ini ke pernyataan kebijakan Anda:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:iam::*:role/Service*",
                "arn:aws:iam::*:role/Service*"
            ]
        }
    ]
}
```

------

## Deklarasi tindakan (contoh)
<a name="action-reference-Commands-example"></a>

------
#### [ YAML ]

```
name: Commands_action
actionTypeId:
  category: Compute
  owner: AWS
  provider: Commands
  version: '1'
runOrder: 1
configuration: {}
commands:
- ls
- echo hello
- 'echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}'
outputArtifacts:
- name: BuildArtifact
  files:
  - **/
inputArtifacts:
- name: SourceArtifact
outputVariables:
- AWS_DEFAULT_REGION
region: us-east-1
namespace: compute
```

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

```
{
    "name": "Commands_action",
    "actionTypeId": {
        "category": "Compute",
        "owner": "AWS",
        "provider": "Commands",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {},
    "commands": [
        "ls",
        "echo hello",
        "echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}"
    ],
    "outputArtifacts": [
        {
            "name": "BuildArtifact",
            "files": [
                "**/"
            ]
        }
    ],
    "inputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "outputVariables": [
        "AWS_DEFAULT_REGION"
    ],
    "region": "us-east-1",
    "namespace": "compute"
}
```

------

## Lihat juga
<a name="action-reference-Commands-links"></a>

Sumber daya terkait berikut dapat membantu Anda saat Anda bekerja dengan tindakan ini.
+ [Tutorial: Buat pipeline yang menjalankan perintah dengan komputasi (tipe V2)](tutorials-commands.md)— Tutorial ini menyediakan contoh pipeline dengan tindakan Commands.