Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Cambio de tráfico de valor controlado
Con el cambio de tráfico de valor controlado, puede probar una parte del tráfico de puntos de conexión en la nueva flota, mientras que la antigua flota presta servicio al resto del tráfico. Este paso de prueba es una barrera de seguridad que valida la funcionalidad de la nueva flota antes de transferir todo el tráfico a la nueva flota. Aún tienes las ventajas de una implementación azul/verde, y la función de canalización añadida le permite asegurarse de que su nueva flota (verde) puede hacer inferencias antes de dejar que gestione el 100 % del tráfico.
La parte de su flota verde que se activa para recibir tráfico se denomina valor controlado y puede elegir el tamaño de dicho valor controlado. Tenga en cuenta que el tamaño del valor controlado debe ser inferior o igual al 50 % de la capacidad de la flota nueva. Cuando finaliza el período de cocción y no se activa ninguna CloudWatch alarma de Amazon previamente especificada, el resto del tráfico pasa de la flota antigua (azul) a la verde. El cambio de tráfico en el valor controlado le proporciona más seguridad durante la implementación, ya que cualquier problema con el modelo actualizado solo afecta al valor controlado.
El siguiente diagrama muestra cómo el cambio de tráfico de valor controlado gestiona la distribución del tráfico entre las flotas azul y verde.
Una vez que se SageMaker aprovisiona la flota verde, SageMaker dirige una parte del tráfico entrante (por ejemplo, el 25%) hacia el Canario. A continuación, comienza el período de inactividad, durante el cual CloudWatch las alarmas monitorizan el rendimiento de la flota ecológica. Durante este tiempo, tanto la flota azul como la verde están parcialmente activas y reciben tráfico. Si alguna de las alarmas se activa durante el período de inactividad, se SageMaker inicia una reversión y todo el tráfico vuelve a la flota azul. Si ninguna de las alarmas se activa, todo el tráfico pasa a la flota verde y se produce un último período de inactividad. Si el último período de inactividad finaliza sin que se active ninguna alarma, la flota verde atenderá a todo el tráfico y pondrá SageMaker fin a la flota azul.
Requisitos previos
Antes de configurar una implementación con Canary Traffic Shifting, debes crear CloudWatch alarmas de Amazon para monitorear las métricas desde tu punto de conexión. Las alarmas están activas durante el período de cocción y, si alguna alarma se activa, todo el tráfico de los puntos de conexión se transfiere a la flota azul. Para obtener información sobre cómo configurar CloudWatch las alarmas en un punto final, consulta la página de requisitos previosConfiguración y monitorización de la reversión automática. Para obtener más información sobre CloudWatch las alarmas, consulta Uso de CloudWatch las alarmas de Amazon en la Guía del CloudWatch usuario de Amazon.
Configurar cambio de tráfico de valor controlado
Cuando esté listo para la implementación y haya configurado CloudWatch las alarmas de Amazon para su terminal, puede usar la SageMaker UpdateEndpointAPI de Amazon o el comando update-endpoint AWS CLI para iniciar la implementación.
Temas
Cómo actualizar un punto de conexión (API)
En el siguiente ejemplo de la UpdateEndpointAPI, se muestra cómo actualizar un punto final con el tráfico de Canary Traffic Shifting.
import boto3 client = boto3.client("sagemaker") response = client.update_endpoint( EndpointName="
<your-endpoint-name>
", EndpointConfigName="<your-config-name>
", DeploymentConfig={ "BlueGreenUpdatePolicy": { "TrafficRoutingConfiguration": { "Type": "CANARY", "CanarySize": { "Type": "CAPACITY_PERCENT", "Value": 30 }, "WaitIntervalInSeconds": 600 }, "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800 }, "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>
" } ] } } )
Para configurar la opción de cambio de tráfico de valor controlado, haga lo siguiente:
En
EndpointName
, utilice el nombre del punto de conexión existente que quiera actualizar.En
EndpointConfigName
, utilice el nombre de la configuración de punto de conexión que quiera utilizar.En
DeploymentConfig
yBlueGreenUpdatePolicy
, enTrafficRoutingConfiguration
, establezca el parámetroType
enCANARY
. Esto especifica que la implementación utiliza el cambio de tráfico de valor controlado.En el campo
CanarySize
, puede cambiar el tamaño del valor controlado modificando los parámetrosType
yValue
. EnType
, utiliceCAPACITY_PERCENT
, es decir, el porcentaje de su flota verde que quiera usar como valor controlado y, a continuación, establezcaValue
en30
. En este ejemplo, utilizas el 30% de la capacidad de la flota verde como valor controlado. Tenga en cuenta que el tamaño del valor controlado debe ser igual o inferior al 50 % de la capacidad de la flota verde.En
WaitIntervalInSeconds
, utilice600
. El parámetro indica SageMaker que hay que esperar el tiempo especificado (en segundos) entre cada turno de intervalo. Este intervalo es la duración del período de cocción de los valores controlados. En el ejemplo anterior, SageMaker espera 10 minutos después del turno de canarios y, a continuación, completa el segundo y último turno de tráfico.En
TerminationWaitInSeconds
, utilice600
. Este parámetro indica SageMaker que hay que esperar el tiempo especificado (en segundos) hasta que la flota verde esté completamente activa antes de finalizar las instancias de la flota azul. En este ejemplo, SageMaker espere 10 minutos después del último período de cocción antes de cerrar la flota azul.En
MaximumExecutionTimeoutInSeconds
, utilice1800
. Este parámetro establece el período máximo de tiempo durante el cual puede ejecutarse la implementación antes de que transcurra el tiempo de espera. En el ejemplo anterior, la implementación tiene un límite de 30 minutos para finalizar.En
AutoRollbackConfiguration
, dentro delAlarms
campo, puede añadir sus CloudWatch alarmas por nombre. Cree una entradaAlarmName:
para cada alarma que quiera utilizar.<your-cw-alarm>
Cómo actualizar un punto de conexión con una política de actualización (API) azul/verde existente
Cuando usa la CreateEndpointAPI para crear un punto final, puede especificar opcionalmente una configuración de implementación para reutilizarla en futuras actualizaciones del punto final. Puede usar las mismas DeploymentConfig
opciones que en el ejemplo de UpdateEndpoint API anterior. No hay cambios en el comportamiento de la CreateEndpoint API. Al especificar la configuración de implementación, no se realiza automáticamente ninguna actualización azul/verde en el punto de conexión.
La opción de usar una configuración de implementación anterior se produce cuando se usa la UpdateEndpointAPI para actualizar el punto final. Al actualizar el punto de conexión, puede utilizar la opción RetainDeploymentConfig
para conservar la configuración de implementación que haya especificado al crear el punto de conexión.
Al llamar a la UpdateEndpointAPI, configúrela en esta opción RetainDeploymentConfig
True
para mantener las DeploymentConfig
opciones de la configuración original de su punto final.
response = client.update_endpoint( EndpointName="
<your-endpoint-name>
", EndpointConfigName="<your-config-name>
", RetainDeploymentConfig=True )
Cómo actualizar un punto de conexión (CLI)
Si utilizas la AWS CLI, en el siguiente ejemplo se muestra cómo iniciar una implementación de Canary azul/verde mediante el comando update-endpoint.
update-endpoint --endpoint-name
<your-endpoint-name>
--endpoint-config-name<your-config-name>
--deployment-config '"BlueGreenUpdatePolicy": {"TrafficRoutingConfiguration": {"Type": "CANARY", "CanarySize": {"Type": "CAPACITY_PERCENT", "Value": 30}, "WaitIntervalInSeconds": 600}, "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800}, "AutoRollbackConfiguration": {"Alarms": [{"AlarmName": "<your-alarm>
"}]}'
Para configurar la opción de cambio de tráfico de valor controlado, haga lo siguiente:
En
endpoint-name
, utilice el nombre del punto de conexión que quiera actualizar.En
endpoint-config-name
, utilice el nombre de la configuración del punto de conexión que quiera utilizar.Para ello
deployment-config
, utilice un objeto JSON. BlueGreenUpdatePolicy
nota
Si prefiere guardar el objeto JSON en un archivo, consulte Generación de parámetros AWS CLI básicos y de entrada en la Guía del AWS CLI usuario.