

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

# AppSpec Bagian 'sumber daya' (hanya Amazon ECS dan AWS Lambda penerapan)
<a name="reference-appspec-file-structure-resources"></a>

 Konten di `'resources'` bagian AppSpec file bervariasi, tergantung pada platform komputasi penerapan Anda. `'resources'`Bagian untuk penyebaran Amazon ECS berisi definisi tugas Amazon ECS, wadah, dan port untuk merutekan lalu lintas ke set tugas Amazon ECS yang diperbarui, dan informasi opsional lainnya. `'resources'`Bagian untuk AWS Lambda penerapan berisi nama, alias, versi saat ini, dan versi target dari fungsi Lambda. 

**Topics**
+ [AppSpec Bagian 'sumber daya' untuk penerapan AWS Lambda](#reference-appspec-file-structure-resources-lambda)
+ [AppSpec Bagian 'sumber daya' untuk penerapan Amazon ECS](#reference-appspec-file-structure-resources-ecs)

## AppSpec Bagian 'sumber daya' untuk penerapan AWS Lambda
<a name="reference-appspec-file-structure-resources-lambda"></a>

`'resources'`Bagian ini menentukan fungsi Lambda untuk menyebarkan dan memiliki struktur berikut:

YAML:

```
resources:
  - name-of-function-to-deploy:
      type: "AWS::Lambda::Function"
      properties:
        name: name-of-lambda-function-to-deploy
        alias: alias-of-lambda-function-to-deploy
        currentversion: version-of-the-lambda-function-traffic-currently-points-to
        targetversion: version-of-the-lambda-function-to-shift-traffic-to
```

JSON:

```
"resources": [
    {
        "name-of-function-to-deploy" {
            "type": "AWS::Lambda::Function",
            "properties": {
                "name": "name-of-lambda-function-to-deploy",
                "alias": "alias-of-lambda-function-to-deploy",
                "currentversion": "version-of-the-lambda-function-traffic-currently-points-to",
                "targetversion": "version-of-the-lambda-function-to-shift-traffic-to"
            }
        }
    }
]
```

Setiap properti ditentukan dengan string. 
+ `name` – Wajib. Ini adalah nama fungsi Lambda yang akan digunakan.
+ `alias` – Wajib. Ini adalah nama alias untuk fungsi Lambda.
+ `currentversion` – Wajib. Ini adalah versi lalu lintas fungsi Lambda yang saat ini menunjuk ke. Nilai ini harus berupa bilangan bulat positif yang valid.
+ `targetversion` – Wajib. Ini adalah versi lalu lintas fungsi Lambda yang digeser ke. Nilai ini harus berupa bilangan bulat positif yang valid.

## AppSpec Bagian 'sumber daya' untuk penerapan Amazon ECS
<a name="reference-appspec-file-structure-resources-ecs"></a>

 `'resources'`Bagian ini menentukan layanan Amazon ECS untuk diterapkan dan memiliki struktur berikut: 

YAML:

```
Resources:
  - TargetService:
      Type: AWS::ECS::Service
      Properties:
        TaskDefinition: "task-definition-arn"
        LoadBalancerInfo: 
          ContainerName: "ecs-container-name" 
          ContainerPort: "ecs-application-port"
# Optional properties
        PlatformVersion: "ecs-service-platform-version"
        NetworkConfiguration:
          AwsvpcConfiguration:
            Subnets: ["ecs-subnet-1","ecs-subnet-n"] 
            SecurityGroups: ["ecs-security-group-1","ecs-security-group-n"] 
            AssignPublicIp: "ENABLED | DISABLED"
        CapacityProviderStrategy:
          - Base: integer
            CapacityProvider: "capacityProviderA"
            Weight: integer
          - Base: integer
            CapacityProvider: "capacityProviderB"
            Weight: integer
```

JSON:

```
"Resources": [
    {
        "TargetService": {
            "Type": "AWS::ECS::Service",
            "Properties": {
                "TaskDefinition": "task-definition-arn",
                "LoadBalancerInfo": {
                    "ContainerName": "ecs-container-name",
                    "ContainerPort": "ecs-application-port"
                },
                "PlatformVersion": "ecs-service-platform-version",
                "NetworkConfiguration": {
                    "AwsvpcConfiguration": {
                        "Subnets": [
                            "ecs-subnet-1",
                            "ecs-subnet-n"
                        ],
                        "SecurityGroups": [
                            "ecs-security-group-1",
                            "ecs-security-group-n"
                        ],
                        "AssignPublicIp": "ENABLED | DISABLED"
                    }
                },
                "CapacityProviderStrategy": [
                    {
                        "Base": integer,
                        "CapacityProvider": "capacityProviderA",
                        "Weight": integer
                    },
                    {
                        "Base": integer,
                        "CapacityProvider": "capacityProviderB",
                        "Weight": integer
                    }
                ]
            }
        }
    }
]
```

Setiap properti ditentukan dengan string kecuali untuk`ContainerPort`, yang merupakan angka. 
+ `TaskDefinition` – Wajib. Ini adalah definisi tugas untuk layanan Amazon ECS untuk diterapkan. Ini ditentukan dengan ARN dari definisi tugas. Format ARN adalah. `arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision` Untuk informasi selengkapnya, lihat [Amazon Resource Names (ARNs) dan ruang nama AWS layanan](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
**catatan**  
`:task-definition-revision`Bagian dari ARN adalah opsional. Jika dihilangkan, Amazon ECS menggunakan revisi ACTIVE terbaru dari definisi tugas.
+ `ContainerName` – Wajib. Ini adalah nama wadah Amazon ECS yang berisi aplikasi Amazon ECS Anda. Itu harus berupa wadah yang ditentukan dalam definisi tugas Amazon ECS Anda.
+ `ContainerPort` – Wajib. Ini adalah port pada kontainer tempat lalu lintas akan diarahkan.
+ `PlatformVersion`: Opsional. Versi platform tugas Fargate dalam layanan Amazon ECS yang digunakan. Untuk informasi selengkapnya, lihat [Versi platform AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). Jika tidak ditentukan, `LATEST` digunakan secara default.
+  `NetworkConfiguration`: Opsional. Di bawah`AwsvpcConfiguration`, Anda dapat menentukan yang berikut ini. Untuk informasi selengkapnya, lihat [AwsVpcConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_AwsVpcConfiguration.html)di *Referensi API Amazon ECS Container Service*. 
  + `Subnets`: Opsional. Daftar terpisah koma dari satu atau beberapa subnet di layanan Amazon ECS Anda.
  + `SecurityGroups`: Opsional. Daftar terpisah koma dari satu atau beberapa grup keamanan di Amazon Elastic Container Service Anda.
  + `AssignPublicIp`: Opsional. String yang menentukan apakah elastic network interface layanan Amazon ECS Anda menerima alamat IP publik. Nilai yang valid adalah `ENABLED` dan `DISABLED`.
**catatan**  
 Semua atau tidak ada pengaturan di bawah `NetworkConfiguration` harus ditentukan. Misalnya, jika Anda ingin menentukan`Subnets`, Anda juga harus menentukan `SecurityGroups` dan`AssignPublicIp`. Jika tidak ada yang ditentukan, CodeDeploy gunakan pengaturan Amazon ECS jaringan saat ini. 
+ `CapacityProviderStrategy`: Opsional. Daftar penyedia kapasitas Amazon ECS yang ingin Anda gunakan untuk penyebaran Anda. Untuk informasi selengkapnya, lihat [Penyedia kapasitas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-capacity-providers.html) di *Panduan Pengembang Layanan Kontainer Elastis Amazon*. Untuk setiap penyedia kapasitas, Anda dapat menentukan pengaturan berikut. Untuk detail tentang pengaturan ini, lihat [AWS::ECS::ServiceCapacityProviderStrategyItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-capacityproviderstrategyitem.html)di *Panduan AWS CloudFormation Pengguna*
  + `Base`: Opsional. Nilai dasar menandakan berapa banyak tugas, dengan angka minimum, yang berjalan pada penyedia kapasitas tertentu. Hanya satu penyedia kapasitas di strategi penyedia kapasitas yang dapat menentukan nilai dasar. Jika tidak ada nilai yang ditentukan, nilai default 0 digunakan.
  + `CapacityProvider`: Opsional. Nama singkat dari penyedia kapasitas. Contoh: *CapacityProvidera*
  + `Weight`: Opsional.

    Nilai *bobot* menandakan persentase relatif dari jumlah total tugas yang diluncurkan yang harus menggunakan penyedia kapasitas tertentu. Nilai `weight` dipertimbangkan setelah nilai `base`, jika ditentukan, dianggap memuaskan.

    Jika tidak ada nilai `weight` yang ditentukan, nilai default `0` digunakan. Ketika beberapa penyedia kapasitas ditentukan dalam strategi penyedia kapasitas, setidaknya satu dari penyedia kapasitas harus memiliki nilai bobot lebih besar dari nol dan penyedia kapasitas apa pun dengan bobot `0` tidak akan digunakan untuk menempatkan tugas. Jika Anda menentukan beberapa penyedia kapasitas dalam strategi di mana semua memiliki bobot `0`, tindakan `RunTask` atau `CreateService` apa pun yang menggunakan strategi penyedia kapasitas akan gagal.

     Contoh skenario untuk penggunaan bobot yang menentukan strategi yang berisi dua penyedia kapasitas dan keduanya memiliki bobot `1`, jadi ketika `base` dianggap memuaskan, tugas akan dibagi secara merata ke dua penyedia kapasitas. Dengan menggunakan logika yang sama, jika Anda menentukan bobot `1` untuk *capacityProviderA* dan bobot `4` untuk *capacityProviderB*, maka untuk setiap satu tugas yang berjalan menggunakan *capacityProviderA*, empat tugas akan menggunakan *capacityProviderB*.