Aviso de fim do suporte: em 20 de maio de 2026, AWS encerrará o suporte para AWS SimSpace Weaver. Depois de 20 de maio de 2026, você não poderá mais acessar o SimSpace Weaver console ou os SimSpace Weaver recursos. Para obter mais informações, consulte AWS SimSpace Weaver Fim do suporte.
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á.
Tutorial detalhado: conheça os detalhes ao criar o aplicativo de exemplo
O tutorial de início rápido abordou como criar, iniciar, parar e excluir uma simulação de amostra usando quick-start.py
stop-and-delete.py
e. Este tutorial abordará detalhadamente como esses scripts funcionam e os parâmetros adicionais que esses scripts podem usar para maximizar a flexibilidade das simulações personalizadas do Weaver.
Requisitos
Antes de começar, você deve concluir as etapas em Configurando para SimSpace Weaver.
Etapa 1: ativar o registro (opcional)
Como ativar o registro
-
Navegue até:
sdk-folder
/Samples/PathfindingSample/tools -
Abra o arquivo do esquema em um editor de texto:
pathfinding-single-worker-schema.yaml
-
Encontre a seção
simulation_properties:
no início do arquivo:simulation_properties: default_entity_index_key_type: "Vector3<f32>"
-
Insira as duas linhas a seguir após a linha
simulation_properties:
:log_destination_service: "logs" log_destination_resource_name: "MySimulationLogs"
-
Confirme se a seção
simulation_properties:
é a mesma que a seguinte:simulation_properties: log_destination_service: "logs" log_destination_resource_name: "MySimulationLogs" default_entity_index_key_type: "Vector3<f32>"
-
Salve o arquivo e saia do seu editor de texto.
Etapa 2: inicie sua simulação
Conforme mostrado no tutorial de início rápido, as etapas mais básicas para iniciar uma simulação de amostra são:
-
Navegue até:
sdk-folder/Samples/PathfindingSample/tools/cloud
-
Execute um dos seguintes comandos:
-
Docker:
python quick-start.py
-
WSL:
python quick-start.py --al2
-
Esse script automatiza comandos comuns do terminal, todos os quais podem ser executados manualmente usando o. AWS CLI Essas etapas são:
-
Faça o upload do esquema Weaver para o S3.
-
SimSpace Weaver usa um esquema para configurar sua simulação. O esquema é um arquivo de texto simples formatado em YAML. Para obter mais informações, consulte Configurar a simulação.
-
-
Crie e faça upload de um contêiner personalizado (opcional).
-
Se seu esquema definir um contêiner personalizado, o script de início rápido criará a imagem do docker e a enviará para o Amazon ECR. Para obter mais informações, consulte Contêineres personalizados. Consulte o
PythonBubblesSample
esquema para ver um exemplo desse recurso.
-
-
Crie o projeto.
-
quick-start.py
chama abuild_project
função definida embuild.py
. Essa etapa variará de acordo com o projeto. Para o PathfindingSample, CMake é usado. O comando CMake e Docker para o qual pode ser encontrado embuild.py
.
-
-
Faça o upload dos artefatos de construção para o S3.
-
Você pode verificar seus buckets do S3 para garantir que todos os uploads tenham sido bem-sucedidos. Para obter informações sobre como gerenciar arquivos com o Amazon S3, consulte Criar, configurar e trabalhar com buckets do Amazon S3 no Guia do usuário do Amazon Simple Storage Service.
-
Os zips do aplicativo de exemplo e o bucket do S3 usam o seguinte formato de nome:
-
weaver-sample-bucket-account-number-region
-
Aplicativo espacial:
ProjectNameSpatial.zip
-
Exibir aplicativo (personalizado):
ProjectNameView.zip
-
-
-
Inicie a simulação.
-
Este é um resumo da
aws simspaceweaver start-simulation
AWS CLI ligação. Para obter mais informações, consulte a Referência de AWS CLI Comandos para SimSpace Weaver. -
O script será repetido até que o status da simulação seja
STARTED
ouFAILED
. Poderá levar alguns minutos para que a simulação seja iniciada.
-
-
Veja os detalhes da simulação.
-
A API DescribeSimulation fornece detalhes sobre a simulação, incluindo o estado. Uma simulação pode estar em um dos seguintes estados:
Estados do ciclo de vida da simulação
-
STARTING
: estado inicial após chamar StartSimulation -
STARTED
: todos os aplicativos espaciais são lançados e estão saudáveis -
STOPPING
: estado inicial após chamar StopSimulation -
STOPPED
: todos os recursos computacionais estão parados -
DELETING
: estado inicial após chamar DeleteSimulation -
DELETED
: todos os recursos atribuídos à simulação são excluídos -
FAILED
: a simulação teve um erro/falha crítica e foi interrompida -
SNAPSHOT_IN_PROGRESS
: um snapshot está em andamento
Como obter os detalhes da simulação
-
Chame a API ListSimulations.
aws simspaceweaver list-simulations
O script deve exibir detalhes sobre cada uma das simulações, semelhantes aos seguintes:
{ "Status": "STARTED", "CreationTime": 1664921418.09, "Name": "MyProjectSimulation_22-10-04_22_10_15", "Arn": "arn:aws:simspaceweaver:us-west-2:111122223333:simulation/MyProjectSimulation_22-10-04_22_10_15", "TargetStatus": "STARTED" }
-
Chame DescribeSimulation para obter os detalhes da simulação. Substitua
simulation-name
pelo Name da simulação a partir da saída da etapa anterior.aws simspaceweaver describe-simulation --simulation
simulation-name
O script deve exibir mais detalhes sobre a simulação que você especificou, semelhantes aos seguintes:
{ "Status": "STARTED", "CreationTime": 1664921418.09, "Name": "MyProjectSimulation_22-10-04_22_10_15", "Arn": "arn:aws:simspaceweaver:us-west-2:111122223333:simulation/MyProjectSimulation_22-10-04_22_10_15", "TargetStatus": "STARTED" }
-
-
-
Inicie aplicativos personalizados.
-
SimSpace Weaver não gerencia o ciclo de vida de aplicativos personalizados. Você deve iniciar os aplicativos personalizados. É uma prática recomendada iniciar os aplicativos personalizados antes de iniciar o relógio de simulação, mas você também pode fazê-lo depois.
Você pode chamar a StartApp API para iniciar seus aplicativos personalizados.
aws simspaceweaver start-app --simulation
simulation-name
--nameapp-name
--domaindomain-name
A chamada de API StartApp criará e iniciará uma nova instância do aplicativo personalizado usando o nome que você fornecer. Se você fornecer o nome de um aplicativo que já existe, receberá um erro. Se quiser reiniciar um aplicativo específico (instância), primeiro interrompa-o e depois exclua-o.
nota
O status da sua simulação deve ser
STARTED
antes de iniciar aplicativos personalizados.O aplicativo de exemplo fornece o aplicativo
ViewApp
personalizado para visualizar sua simulação. Este aplicativo fornece um endereço IP estático e um número de porta para conectar os clientes de simulação (você fará isso em uma etapa posterior deste tutorial). Você pode pensar em um domain como uma classe de aplicativos com o mesmo código executável e as mesmas opções de inicialização. O app name Identifica a instância do aplicativo. Para obter mais informações sobre SimSpace Weaver conceitos, consulteConceitos-chave para SimSpace Weaver.É possível usar a API DescribeApp para verificar o status de um aplicativo personalizado depois de iniciá-lo.
aws simspaceweaver describe-app --simulation
simulation-name
--appapp-name
--domaindomain-name
Como iniciar o aplicativo de visualização neste tutorial
-
Ligue StartApp para
ViewApp
.aws simspaceweaver start-app --simulation
simulation-name
--name ViewApp --domain MyViewDomain -
Chame DescribeApp para verificar o status do seu aplicativo personalizado.
aws simspaceweaver describe-app --simulation
simulation-name
--app ViewApp --domain MyViewDomain
Depois que o status do seu aplicativo personalizado (instância) for
STARTED
, a saída de DescribeApp incluirá o endereço IP e o número da porta desse aplicativo personalizado (instância). No exemplo da saída a seguir, o endereço IP é o valor deAddress
e o número da porta é o valor deActual
no blocoEndpointInfo
.{ "Status": "STARTED", "Domain": "MyViewDomain", "TargetStatus": "STARTED", "Simulation": "MyProjectSimulation_22-10-04_22_10_15", "LaunchOverrides": { "LaunchCommands": [] }, "EndpointInfo": { "IngressPortMappings": [ { "Declared": 7000, "Actual": 4321 } ], "Address": "198.51.100.135" }, "Name": "ViewApp" }
nota
O valor de
Declared
é o número da porta à qual o código do seu aplicativo deve ser vinculado. O valor deActual
é o número da porta que é SimSpace Weaver exposta aos clientes para se conectarem ao seu aplicativo. SimSpace Weaver mapeia aDeclared
porta até aActual
porta.nota
Você pode usar o procedimento descrito em Obtenha o endereço IP e o número da porta de um aplicativo personalizado para obter o endereço IP e o número da porta de qualquer aplicativo personalizado iniciado.
-
-
-
Inicie o relógio.
-
Quando você cria uma simulação pela primeira vez, ela tem um relógio, mas ele não está funcionando. Quando o relógio não está funcionando, a simulação não atualiza seu estado. Depois de iniciar o relógio, ele começará a enviar marcações para os aplicativos. A cada clique, seus aplicativos espaciais examinam as entidades que possuem e enviam os resultados para SimSpace Weaver
nota
Pode levar de 30 a 60 segundos para iniciar o relógio.
Chame a API StartClock.
aws simspaceweaver start-clock --simulation
simulation-name
nota
A API StartClock usa o
, que você pode encontrar usando a API ListSimulations:simulation-name
aws simspaceweaver list-simulations
-
parâmetros de início rápido
-
-h, --help
-
Liste esses parâmetros.
-
-
--limpar
-
Exclua o conteúdo do diretório de compilação antes de compilar.
-
-
--al2
-
É construído diretamente na máquina nativa em vez do Docker. Use isso somente se estiver executando em um ambiente Amazon Linux 2, como WSL.
-
-
--somente upload
-
Faça o upload apenas do esquema e dos zips do aplicativo para o Amazon S3, não inicie a simulação.
-
-
--sem construção
-
Pule a reconstrução do projeto.
-
-
--sem contêiner
-
Ignore a reconstrução do contêiner de simulação listado no esquema.
-
-
--cliente do console
-
Crie e conecte automaticamente o cliente do console listado em config.py.
-
-
--esquema esquema
-
Qual esquema essa invocação usará. O padrão é o valor de 'SCHEMA' em config.py.
-
-
--name NAME
-
Qual nome a simulação terá. O padrão é o valor de 'project_name'-date-time em config.py.
-
Etapa 3: verifique os registros (opcional)
SimSpace Weaver grava mensagens de gerenciamento de simulação e a saída do console de seus aplicativos no Amazon CloudWatch Logs. Para obter mais informações sobre como trabalhar com registros, consulte Trabalho com grupos de registros e fluxos de registros no Guia do usuário do Amazon CloudWatch Logs.
Cada simulação que você cria tem seu próprio grupo de CloudWatch registros em Registros. O nome do grupo de logs é especificado no esquema de simulação. No trecho de esquema a seguir, o valor de log_destination_service
é logs
. Isso significa que o valor de log_destination_resource_name
é o nome de um grupo de logs. Nesse caso, o grupo de logs é MySimulationLogs
.
simulation_properties: log_destination_service: "logs" log_destination_resource_name: "MySimulationLogs" default_entity_index_key_type: "Vector3<f32>"
Você também pode usar a API DescribeSimulation para encontrar o nome do grupo de logs para simulação depois de iniciá-lo.
aws simspaceweaver describe-simulation --simulation
simulation-name
O exemplo a seguir mostra a parte da saída de DescribeSimulation que descreve a configuração de registro. O nome do grupo de logs é mostrado no final do LogGroupArn
.
"LoggingConfiguration": { "Destinations": [ { "CloudWatchLogsLogGroup": { "LogGroupArn": "arn:aws:logs:us-west-2:111122223333:log-group:MySimulationLogs" } } ] },
Cada grupo de logs de simulação contém vários fluxos de logs:
-
Fluxo de registros de gerenciamento — mensagens de gerenciamento de simulação produzidas pelo SimSpace Weaver serviço.
/sim/management
-
Fluxo de registro de erros — mensagens de erro produzidas pelo SimSpace Weaver serviço. Esse fluxo de log só existe se houver erros. SimSpace Weaver armazena erros gravados por seus aplicativos em seus próprios fluxos de registro de aplicativos (consulte os fluxos de registro a seguir).
/sim/errors
-
Fluxos de logs de aplicativos espaciais (um para cada aplicativo espacial em cada operador): saída do console produzida por aplicativos espaciais. Cada aplicativo espacial grava em seu próprio fluxo de logs. O
spatial-app-id
são todos os caracteres após o delimitador no final doworker-id
./domain/
spatial-domain-name
/app/worker-worker-id
/spatial-app-id
-
Fluxos de logs de aplicativos personalizados (um para cada instância de aplicativo personalizado): saída de console produzida por aplicativos personalizados. Cada instância do aplicativo personalizado grava em seu próprio fluxo de logs.
/domain/
custom-domain-name
/app/custom-app-name
/random-id
-
Fluxos de logs do aplicativo de serviço (um para cada instância do aplicativo de serviço): saída do console produzida pelos aplicativos de serviço. Cada aplicativo de serviço grava em seu próprio fluxo de logs. O
service-app-id
são todos os caracteres após o delimitador no final doservice-app-name
./domain/
service-domain-name
/app/service-app-name
/service-app-id
nota
O aplicativo de exemplo não tem aplicativos de serviço.
Etapa 4: veja sua simulação
O SDK do SimSpace Weaver aplicativo fornece opções diferentes para visualizar o aplicativo de amostra. Você pode usar o cliente de console de amostra se não tiver suporte local para o desenvolvimento do Unreal Engine. As instruções para o cliente Unreal Engine pressupõem que você esteja usando o Windows.
O cliente do console exibe uma lista dos eventos da entidade à medida que eles ocorrem. O cliente obtém as informações do evento da entidade do ViewApp
. Se o cliente do console exibir a lista de eventos, ele confirmará a conectividade da rede com a atividade do ViewApp
e na simulação.
A simulação PathfindingSample
cria entidades estacionárias e móveis em um plano bidimensional. As entidades móveis se movem em torno das entidades estacionárias. O cliente do Unreal Engine fornece uma visualização dos eventos da entidade.
Cliente de console
O cliente do console pode ser criado e conectado automaticamente ao iniciar uma amostra, quick-start.py
se você incluir a --consoleclient
opção. Para criar e conectar o cliente do console depois de quick-start.py
já ter sido chamado, faça o seguinte:
Navegue até:
sdk-folder/Clients/TCP/CppConsoleClient
Execute o script para criar e conectar o cliente:
python start_client.py --host ip-address --port port-number
O script fará o seguinte:
-
Crie o cliente do console com CMake.
-
Inicie o executável construído com o endereço IP e o número da porta fornecidos.
.\WeaverNngConsoleClient.exe --url tcp://
ip-address:port-number
Cliente Unreal Engine
Consulte Lançamento do cliente de visualização Unreal Engine.
Etapa 5: Pare e exclua sua simulação
Navegue até:
sdk-folder/Samples/PathfindingSample/tools/cloud
Encontre os nomes das suas simulações:
aws simspaceweaver list-simulations
Pare e exclua a simulação:
python stop-and-delete.py --simulation simulation-name
O script stop-and-delete.py
fará o seguinte:
-
Chame o AWS CLI comando para interromper uma simulação.
-
aws simspaceweaver stop-simulation
-
Para obter mais informações, consulte Referência de AWS CLI comandos para SimSpace Weaver.
-
-
Chame o AWS CLI comando para excluir uma simulação.
-
aws simpaceweaver delete-simulation
-
Para obter mais informações, consulte Referência de AWS CLI comandos para SimSpace Weaver.
-
stop-and-delete parâmetros
-
-h, --help
-
Liste esses parâmetros.
-
-
--simulação SIMULAÇÃO
-
O nome da simulação para stop-and-delete
-
-
--parar
-
Apenas pare a simulação. Não o exclui.
-
-
--excluir
-
Exclua somente uma simulação. Só funcionará se a simulação for uma
STOPPED
ou outraFAILED
.
-
Solução de problemas
Veja Solução de problemas no tutorial de início rápido.