

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon Personalize 지표 속성 업데이트
<a name="updating-metric-attribution"></a>

 지표 어트리뷰션을 업데이트할 때 지표를 추가 및 제거하고 출력 구성을 수정할 수 있습니다. Personalize 콘솔 AWS Command Line Interface또는 AWS SDKS를 사용하여 지표 어트리뷰션을 업데이트할 수 있습니다.

**Topics**
+ [지표 어트리뷰션 업데이트(콘솔)](#updating-metric-attribution-console)
+ [지표 어트리뷰션 업데이트(AWS CLI)](#updating-metric-attribution-cli)
+ [지표 어트리뷰션(AWS SDK) 업데이트](#updating-metric-attribution-sdk)

## 지표 어트리뷰션 업데이트(콘솔)
<a name="updating-metric-attribution-console"></a>

Personalize 콘솔에서 지표 어트리뷰션을 업데이트하려면 **지표 어트리뷰션** 페이지에서 변경합니다.

**지표 어트리뷰션을 업데이트하려면**

1. [https://console.aws.amazon.com/acm-pca/home](https://console.aws.amazon.com/personalize/home)에서 Personalize 콘솔을 열고 계정에 로그인합니다.

1. 데이터세트 그룹을 선택합니다.

1. 탐색 창에서 **지표 어트리뷰션**을 선택합니다.

1. 하단 섹션에서 **지표 어트리뷰션** 탭 또는 **지표 어트리뷰션 구성** 탭을 선택하여 변경을 시작합니다.
   + 지표를 추가하거나 제거하려면 **지표 어트리뷰션** 탭을 선택하고 **속성 편집**을 선택합니다. **지표 어트리뷰션 편집** 페이지에서 변경한 다음 **업데이트**를 선택하여 변경 사항을 저장합니다.
   + S3 출력 버킷 또는 IAM 서비스 역할을 변경하려면 **지표 어트리뷰션 구성 편집** 탭을 선택하고 **어트리뷰션 구성 편집** 페이지에서 변경합니다. **업데이트**를 선택하여 변경 사항을 저장합니다.

## 지표 어트리뷰션 업데이트(AWS CLI)
<a name="updating-metric-attribution-cli"></a>

지표 어트리뷰션을 생성한 후 AWS Command Line Interface (AWS CLI)를 사용하여 지표를 추가 및 제거하고 출력 구성을 수정할 수 있습니다. 다음 코드는 `update-metric-attribution`명령으로 지표를 제거하는 방법을 보여줍니다.

```
aws personalize update-metric-attribution \
--metric-attribution-arn {{metric attribution arn}} \
--remove-metrics {{metricName1}} {{metricName2}}
```

 다음 코드는 지표를 추가하고 새 출력 구성을 지정하는 방법을 보여줍니다.

```
aws personalize update-metric-attribution \
--metric-attribution-arn {{metric attribution arn}} \
--metrics-output-config "{\"roleArn\": \"{{new role ARN}}\", \"s3DataDestination\":{\"kmsKeyArn\":\"{{kms key ARN}}\",\"path\":\"s3://{{amzn-s3-demo-bucket2}}/{{new-folder-name}}/\"}}" \
--add-metrics "[{
  \"eventType\": \"{{event type}}\",
  \"expression\": \"{{SUM(DatasetType.COLUMN_NAME)}}\",
  \"metricName\": \"{{metric name}}\"
}]"
```

 Personalize는 사용자가 업데이트한 지표 어트리뷰션을 기준으로 ARN을 반환합니다. 파라미터의 전체 목록은 [UpdateMetricAttribution](API_UpdateMetricAttribution.md)단원을 참조하세요.

## 지표 어트리뷰션(AWS SDK) 업데이트
<a name="updating-metric-attribution-sdk"></a>

지표 어트리뷰션을 생성한 후 지표를 추가 또는 제거하고 출력 구성을 수정할 수 있습니다. 다음 코드는 지표 어트리뷰션에서 지표를 제거하는 방법을 보여줍니다.

------
#### [ SDK for Python (Boto3) ]

```
import boto3
            
personalize = boto3.client('personalize')

metricsToRemove = ["{{metricName1}}", "{{metricName2}}"]
            
response = personalize.update_metric_attribution(
  metricAttributionArn = "{{metric attribution ARN}}",
  removeMetrics = metricsToRemove
)
```

------
#### [ SDK for Java 2.x ]

```
public static void removeMetrics(PersonalizeClient client,
                                 String metricAttributionArn,
                                 String metric1Name,
                                 String metric2Name) {

    ArrayList<String> metricsToRemove = new ArrayList<>(Arrays.asList(metric1Name, metric2Name));
    
    try {
    
        UpdateMetricAttributionRequest request = UpdateMetricAttributionRequest.builder()
                .metricAttributionArn(metricAttributionArn)
                .removeMetrics(metricsToRemove)
                .build();
                
        UpdateMetricAttributionResponse response = client.updateMetricAttribution(request);
        System.out.println(response);
        
    } catch (PersonalizeException e) {
        System.out.println(e.awsErrorDetails().errorMessage());
    }
}
```

------
#### [ SDK for JavaScript v3 ]

```
// Get service clients and commands using ES6 syntax.
import {UpdateMetricAttributionCommand, PersonalizeClient } from
  "@aws-sdk/client-personalize";

// create personalizeClient
const personalizeClient = new PersonalizeClient({
  region: "REGION"
});

// set the update request param
export const updateMetricAttributionParam = {
  metricAttributionArn: "METRIC_ATTRIBUTION_ARN",    /* required */
  removeMetrics: ["METRIC_NAME_1", "METRIC_NAME_2"]    /* specify list of names of metrics to delete */
};
export const run = async () => {
  try {
    const response = await personalizeClient.send(
      new UpdateMetricAttributionCommand(updateMetricAttributionParam)
    );
    console.log("Success", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------

 다음 코드는 지표를 추가하고 새 출력 구성을 지정하는 방법을 보여줍니다.

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize = boto3.client('personalize')

newMetrics = [{ 
      "eventType": "{{event type}}",
      "expression": "{{SUM(DatasetType.COLUMN_NAME)}}",
      "metricName": "{{metric name}}"
}]

newOutputConfig = {
  "roleArn": "{{Amazon Personalize service role ARN}}", 
  "s3DataDestination": {
    "kmsKeyArn": "{{key ARN}}", 
    "path": "{{s3://amzn-s3-demo-bucket/<folder>}}"
  }
}

response = personalize.update_metric_attribution(
  metricAttributionArn = "{{metric attribution arn}}",
  metricsOutputConfig = newOutputConfig,
  addMetrics = newMetrics
)
```

------
#### [ SDK for Java 2.x ]

```
public static void addMetricsAndUpdateOutputConfig(PersonalizeClient personalizeClient,
                                                String metricAttributionArn,
                                                String newMetric1EventType,
                                                String newMetric1Expression,
                                                String newMetric1Name,
                                                String newMetric2EventType,
                                                String newMetric2Expression,
                                                String newMetric2Name,
                                                String roleArn,
                                                String s3Path,
                                                String kmsKeyArn) {
    try {
    
        MetricAttribute newAttribute = MetricAttribute.builder()
                .eventType(newMetric1EventType)
                .expression(newMetric1Expression)
                .metricName(newMetric1Name)
                .build();
                
        MetricAttribute newAttribute2 = MetricAttribute.builder()
                .eventType(newMetric2EventType)
                .expression(newMetric2Expression)
                .metricName(newMetric2Name)
                .build();

        ArrayList<MetricAttribute> newAttributes = new ArrayList<>(Arrays.asList(newAttribute, newAttribute2));

        S3DataConfig newDataDestination = S3DataConfig.builder()
                .kmsKeyArn(kmsKeyArn)
                .path(s3Path)
                .build();

        MetricAttributionOutput newOutputConfig = MetricAttributionOutput.builder()
                .roleArn(roleArn)
                .s3DataDestination(newDataDestination)
                .build();
                
        UpdateMetricAttributionRequest request = UpdateMetricAttributionRequest.builder()
                .metricAttributionArn(metricAttributionArn)
                .metricsOutputConfig(newOutputConfig)
                .addMetrics(newAttributes)
                .build();
                
        UpdateMetricAttributionResponse response = personalizeClient.updateMetricAttribution(request);
        System.out.println("New metrics added!");
        System.out.println(response);
        
    } catch (PersonalizeException e) {
        System.out.println(e.awsErrorDetails().errorMessage());
    }
}
```

------
#### [ SDK for JavaScript v3 ]

```
// Get service clients and commands using ES6 syntax.
import {UpdateMetricAttributionCommand, PersonalizeClient } from
  "@aws-sdk/client-personalize";

// create personalizeClient
const personalizeClient = new PersonalizeClient({
  region: "REGION"
});

export const updateMetricAttributionParam = {
  metricAttributionArn: "METRIC_ATTRIBUTION_ARN",
  addMetrics: [
    {
      eventType: "EVENT_TYPE",                      /* required for each metric */
      expression: "SUM(DatasetType.COLUMN_NAME)",   /* required for each metric */
      metricName: "METRIC_NAME",                    /* required for each metric */
    }
  ],
  metricsOutputConfig: {
    roleArn: "ROLE_ARN",                      /* required */
    s3DataDestination: {                
      kmsKeyArn: "KEY_ARN",                                                      /* optional */
      path: "s3://amzn-s3-demo-bucket/<folderName>/",    /* optional */
    },
  }
};

export const run = async () => {
  try {
    const response = await personalizeClient.send(
      new UpdateMetricAttributionCommand(updateMetricAttributionParam)
    );
    console.log("Success", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------

Personalize는 사용자가 업데이트한 지표 어트리뷰션을 기준으로 ARN을 반환합니다. 파라미터의 전체 목록은 [UpdateMetricAttribution](API_UpdateMetricAttribution.md)단원을 참조하세요.