As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Use mudanças lineares de tráfego
O deslocamento de tráfego linear permite que você transfira gradualmente o tráfego de sua frota antiga (frota azul) para sua nova frota (frota verde). Com deslocamento de tráfego linear, você pode deslocar o tráfego em várias etapas, minimizando a chance de uma interrupção no seu endpoint. Essa opção de implantação azul/verde oferece maior controle da granularidade sobre o deslocamento de tráfego.
Você pode escolher o número de instâncias ou a porcentagem da capacidade da frota verde a ser ativada durante cada etapa. Cada etapa linear deve estar apenas entre 10 e 50% da capacidade da frota verde. Para cada etapa, há um período de cozimento durante o qual seus CloudWatch alarmes pré-especificados da Amazon monitoram as métricas da frota verde. Quando o período de baking termina e nenhum alarme dispara, a porção ativa da sua frota verde continua recebendo tráfego e uma nova etapa começa. Se qualquer alarme for disparado durante o período de baking, o tráfego do endpoint irá se reverter para sua frota azul.
O diagrama a seguir mostra como o deslocamento de tráfego linear roteia o tráfego para as frotas azul e verde.
Depois de SageMaker provisionar a nova frota, a primeira parte da frota verde é ativada e recebe tráfego. SageMaker desativa a porção do mesmo tamanho da frota azul e o período de cozimento começa. Se qualquer alarme for disparado, todo o tráfego do endpoint irá se reverter para sua frota azul. Se o período de baking terminar, a próxima etapa será iniciada. Outra parte da frota verde é ativada e recebe tráfego, parte da frota azul é desativada e outro período de baking começa. O mesmo processo se repete até que a frota azul seja totalmente desativada e a frota verde esteja totalmente ativa e recebendo todo o tráfego. Se um alarme disparar a qualquer momento, o processo de mudança SageMaker será encerrado e 100% do tráfego será revertido para a frota azul.
Pré-requisitos
Antes de configurar uma implantação com mudança linear de tráfego, você deve criar CloudWatch alarmes para monitorar as métricas do seu endpoint. Os alarmes ficam ativos durante o período de baking e, se algum alarme disparar, todo o tráfego do endpoint é revertido para a frota azul. Para saber como configurar CloudWatch alarmes em um endpoint, consulte a página de pré-requisitos. Configuração de reversão automática e monitoramento Para saber mais sobre CloudWatch alarmes, consulte Como usar CloudWatch alarmes da Amazon no Guia CloudWatch do usuário da Amazon.
Configurar o deslocamento de tráfego linear
Quando estiver pronto para a implantação e configurar os CloudWatch alarmes para o endpoint, você poderá usar o comando Amazon SageMaker UpdateEndpointAPIou o comando update-endpoint no para iniciar a AWS CLI implantação.
Tópicos
Como atualizar um endpoint () API
O exemplo a seguir UpdateEndpointAPImostra como você pode atualizar um endpoint com deslocamento linear de tráfego.
import boto3 client = boto3.client("sagemaker") response = client.update_endpoint( EndpointName="
<your-endpoint-name>
", EndpointConfigName="<your-config-name>
", DeploymentConfig={ "BlueGreenUpdatePolicy": { "TrafficRoutingConfiguration": { "Type": "LINEAR", "LinearStepSize": { "Type": "CAPACITY_PERCENT", "Value": 20 }, "WaitIntervalInSeconds": 300 }, "TerminationWaitInSeconds": 300, "MaximumExecutionTimeoutInSeconds": 3600 }, "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>
" } ] } } )
Para configurar a opção de deslocamento de tráfego linear, faça o seguinte:
Para
EndpointName
, use o nome do endpoint existente que deseja atualizar.Para
EndpointConfigName
, use o nome da configuração de endpoint que deseja usar.Em
DeploymentConfig
eBlueGreenUpdatePolicy
, noTrafficRoutingConfiguration
, defina o parâmetroType
comoLINEAR
. Isso especifica que a implantação usa o modo de deslocamento de tráfego linear.No campo
LinearStepSize
você pode alterar o tamanho das etapas modificando os parâmetrosType
eValue
. ParaType
, useCAPACITY_PERCENT
, ou seja, a porcentagem de sua frota verde que você deseja usar como tamanho da etapa e, em seguida, definaValue
como20
. Neste exemplo, você ativa 20% da capacidade da frota verde para cada etapa de deslocamento de tráfego. Observe que, ao personalizar o tamanho da etapa linear, você deve usar apenas etapas que representem 10% a 50% da capacidade da frota verde.Para
WaitIntervalInSeconds
, use300
. O parâmetro diz SageMaker para aguardar o tempo especificado (em segundos) entre cada mudança de tráfego. Esse intervalo é a duração do período de baking entre cada etapa linear. No exemplo anterior, SageMaker aguarda 5 minutos entre cada turno de tráfego.Para
TerminationWaitInSeconds
, use300
. Esse parâmetro indica SageMaker que você deve aguardar o tempo especificado (em segundos) depois que sua frota verde estiver totalmente ativa antes de encerrar as instâncias na frota azul. Neste exemplo, SageMaker aguarda 5 minutos após o período final de cozimento antes de encerrar a frota azul.Para
MaximumExecutionTimeoutInSeconds
, use3600
. Esse parâmetro define o tempo máximo em que a implantação pode ser executada antes do fim do tempo limite. No exemplo anterior, sua implantação tem um limite de 1 hora para ser concluída.Em
AutoRollbackConfiguration
, dentro doAlarms
campo, você pode adicionar seus CloudWatch alarmes por nome. Crie uma entradaAlarmName:
para cada alarme que você deseja usar.<your-cw-alarm>
Como atualizar um endpoint com uma política de atualização azul/verde existente () API
Ao usar o CreateEndpointAPIpara criar um endpoint, você pode, opcionalmente, especificar uma configuração de implantação para reutilização em futuras atualizações de endpoint. Você pode usar as mesmas DeploymentConfig
opções do UpdateEndpoint API exemplo anterior. Não há mudanças no CreateEndpoint API comportamento. Especificar a configuração da implantação não executa automaticamente uma atualização azul/verde no seu endpoint.
A opção de usar uma configuração de implantação anterior ocorre ao usar o UpdateEndpointAPIpara atualizar seu endpoint. Ao atualizar seu endpoint, você pode usar a opção RetainDeploymentConfig
para manter a configuração da implantação especificada ao criar o endpoint.
Ao chamar o UpdateEndpointAPI, RetainDeploymentConfig
defina como True
para manter as DeploymentConfig
opções da configuração original do endpoint.
response = client.update_endpoint( EndpointName="
<your-endpoint-name>
", EndpointConfigName="<your-config-name>
", RetainDeploymentConfig=True )
Como atualizar um endpoint () CLI
Se você estiver usando o AWS CLI, o exemplo a seguir mostra como iniciar uma implantação linear azul/verde usando o comando update-endpoint.
update-endpoint --endpoint-name
<your-endpoint-name>
--endpoint-config-name<your-config-name>
--deployment-config '{"BlueGreenUpdatePolicy": {"TrafficRoutingConfiguration": {"Type": "LINEAR", "LinearStepSize": {"Type": "CAPACITY_PERCENT", "Value": 20}, "WaitIntervalInSeconds": 300}, "TerminationWaitInSeconds": 300, "MaximumExecutionTimeoutInSeconds": 3600}, "AutoRollbackConfiguration": {"Alarms": [{"AlarmName": "<your-alarm>
"}]}'
Para configurar a opção de deslocamento de tráfego linear, faça o seguinte:
Para
endpoint-name
, use o nome do endpoint que você deseja atualizar.Para
endpoint-config-name
, use o nome da configuração de endpoint que deseja usar.Para
deployment-config
, use um BlueGreenUpdatePolicyJSONobjeto.
nota
Se você preferir salvar seu JSON objeto em um arquivo, consulte Geração de AWS CLI esqueleto e parâmetros de entrada no Guia do AWS CLI usuário.