

# CloudWatch Synthetics 카나리에서 종속 항목 사용
<a name="CloudWatch_Synthetics_Canaries_dependencies"></a>

이 섹션에서는 CloudWatch Synthetics 카나리에서 `Dependencies`를 사용하는 방법을 설명합니다. `Dependencies` 필드를 사용하면 카나리 스크립트에서 사용할 수 있는 추가 라이브러리 또는 사용자 지정 코드를 포함할 수 있도록 카나리에 대한 종속 항목을 지정할 수 있습니다.

## 개요
<a name="overview"></a>

CloudWatch Synthetics 카나리는 Lambda 계층을 종속 항목으로 지정하도록 지원합니다. 이 기능을 사용하면 다음을 수행할 수 있습니다.
+ 여러 카나리에서 공통 코드 공유
+ 카나리 스크립트 코드와 별도로 종속 항목 관리
+ 종속 항목을 Lambda 계층으로 이동하여 카나리 스크립트의 크기 축소

## 지원되는 API
<a name="supported-apis"></a>

`Dependencies` 필드는 다음 API에서 지원됩니다.
+  [CreateCanary](https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_CreateCanary.html) 
+  [UpdateCanary](https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_UpdateCanary.html) 
+  [ StartCanaryDryRun](https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_StartCanaryDryRun.html) 

## 구문
<a name="syntax"></a>

`Dependencies` 필드는 요청 구문에서 코드 구조의 일부입니다.

```
"Code": { 
  "Handler": "string",
  "S3Bucket": "string",
  "S3Key": "string",
  "S3Version": "string",
  "ZipFile": blob,
  "Dependencies": [
    {
      "Type": "LambdaLayer",
      "Reference": "string"
    }
  ]
}
```

## 종속 항목 추가
<a name="usage"></a>

다음은 다양한 시나리오에서 `Dependencies` 필드를 사용하기 위한 몇 가지 예제와 지침입니다.

### 종속 항목이 있는 카나리 생성
<a name="creating-canary"></a>

카나리를 생성할 때 Lambda 계층을 종속 항목으로 지정할 수 있습니다.

```
{
  "Name": "my-canary",
  "Code": {
    "Handler": "pageLoadBlueprint.handler",
    "S3Bucket": "my-bucket",
    "S3Key": "my-canary-script.zip",
    "Dependencies": [
      {
        "Type": "LambdaLayer",
        "Reference": "arn:aws:lambda:us-west-2:123456789012:layer:my-custom-layer:1"
      }
    ]
  },
  "ArtifactS3Location": "s3://my-bucket/artifacts/",
  "ExecutionRoleArn": "arn:aws:iam::123456789012:role/my-canary-role",
  "Schedule": {
    "Expression": "rate(5 minutes)"
  },
  "RuntimeVersion": "syn-nodejs-puppeteer-3.9"
}
```

### 카나리의 종속 항목 업데이트
<a name="updating-canary"></a>

UpdateCanary API를 사용하여 카나리의 종속 항목을 업데이트할 수 있습니다.

```
{
  "Name": "my-canary",
  "Code": {
    "Dependencies": [
      {
        "Type": "LambdaLayer",
        "Reference": "arn:aws:lambda:us-west-2:123456789012:layer:my-updated-layer:2"
      }
    ]
  }
}
```

### 종속 항목 제거
<a name="removing-dependencies"></a>

카나리에서 종속 항목을 제거하려면 종속 항목 필드에 빈 배열을 제공합니다.

```
{
  "Name": "my-canary",
  "Code": {
    "Dependencies": []
  }
}
```

### StartCanaryDryRun을 사용하여 종속 항목 테스트
<a name="testing-dependencies"></a>

새 종속 항목으로 카나리를 업데이트하기 전에 StartCanaryDryRun API를 사용하여 카나리를 테스트할 수 있습니다.

```
{
  "Name": "my-canary",
  "Code": {
    "Dependencies": [
      {
        "Type": "LambdaLayer",
        "Reference": "arn:aws:lambda:us-west-2:123456789012:layer:my-test-layer:3"
      }
    ]
  }
}
```

## 제한 사항 및 고려 사항
<a name="limitations"></a>
+ 하나의 Lambda 계층만 종속 항목으로 지정할 수 있습니다.
+ 종속 항목이 있는 카나리를 생성하는 데 사용되는 역할은 [필요한 역할 및 권한](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Roles.html) 외에도 종속 항목 계층에 대한 ` lambda:GetLayerVersion` 액세스 권한을 보유해야 합니다.

## 호환되는 Lambda 계층 생성
<a name="creating-compatible-layers"></a>

계층을 생성하고 패키징하는 방법에 대한 자세한 내용은 [계층으로 Lambda 종속성 관리](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html)를 참조하세요. 카나리 패킹 구조를 기반으로 하는 카나리 검사의 패키징 구조를 이해하려면 [카나리 스크립트 작성](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_WritingCanary.html)을 참조하세요.