

AWS O Mainframe Modernization Service (experiência em Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Service (experiência em Managed Runtime Environment), explore o AWS Mainframe Modernization Service (experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte Alteração na [disponibilidade AWS da modernização do mainframe](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

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: Converta o código de Assembler para COBOL em AWS Mainframe Modernization
<a name="assembler-conversion-steps"></a>

Você pode usar este documento como um step-by-step guia para entender como converter o código Assembler de modernização do mainframe em COBOL. Além disso, também é possível consultar o [workshop Automated code conversion from Assembler to COBOL](https://catalog.workshops.aws/awsm2ccm-assembler-cobol/en-US) para saber mais sobre o processo de conversão.

**Contents**
+ [Pré-requisitos](#tutorial-assembler-conversion-prerequisites)
+ [Etapa 1: compartilhe os ativos de construção com Conta da AWS](#tutorial-assembler-conversion-share-assets)
+ [Etapa 2: criar buckets do Amazon S3](#tutorial-assembler-conversion-create-bucket)
+ [Etapa 3: criar a política do IAM](#tutorial-assembler-conversion-IAM-policy)
+ [Etapa 4: criar um perfil do IAM](#tutorial-assembler-conversion-IAM-role)
+ [Etapa 5: anexar a política do IAM ao perfil do IAM](#tutorial-assembler-conversion-attach)
+ [Etapa 6: criar o CodeBuild projeto](#tutorial-assembler-conversion-create-project)
  + [Etapa 6.1: criar o projeto de definição](#tutorial-conversion-define-project)
  + [Etapa 6.2: criar o projeto de análise de código](#tutorial-conversion-analysis-project)
  + [Etapa 6.3: criar o projeto de Conversão de Código](#tutorial-conversion-code-project)
+ [Etapa 7: definir o projeto e fazer upload do código-fonte](#tutorial-assembler-conversion-define-upload)
+ [Etapa 8: executar a análise e entender os relatórios](#tutorial-assembler-conversion-run-analysis)
+ [Etapa 9: executar a conversão de código](#tutorial-assembler-conversion-run-code)
+ [Etapa 10: verificar a conversão de código](#tutorial-assembler-conversion-verify)
+ [Etapa 11: baixar o código convertido](#tutorial-assembler-conversion-download)
+ [Limpar os recursos](#tutorial-assembler-conversion-clean-resources)

## Pré-requisitos
<a name="tutorial-assembler-conversion-prerequisites"></a>

Leia a [Noções básicas sobre o faturamento da Conversão de Código para conversão de Assembler](assembler-conversion-billing.md) seção para entender como a conversão do código Assembler gera cobranças (relatórios de faturamento) sobre você AWS Account Management e como o faturamento funciona.

## Etapa 1: compartilhe os ativos de construção com Conta da AWS
<a name="tutorial-assembler-conversion-share-assets"></a>

Nesta etapa, certifique-se de compartilhar os ativos de construção com os seus Conta da AWS, especialmente na região em que os ativos estão sendo usados.

1. Abra o AWS Mainframe Modernization console em [https://console.aws.amazon.com/m2/](https://us-west-2.console.aws.amazon.com/m2/home?region=us-west-2#/).

1. Na navegação à esquerda, selecione **Ferramentas**.

1. Em **Conversão de código de modernização do AWS Mainframe com mLogica**, escolha **Compartilhar** ativos com meu. Conta da AWS

**Importante**  
Você precisa executar essa etapa uma vez em cada AWS região em que pretende fazer construções.

## Etapa 2: criar buckets do Amazon S3
<a name="tutorial-assembler-conversion-create-bucket"></a>

Nesta etapa, você vai criar buckets do Amazon S3. O primeiro bucket é o bucket do projeto do AWS CodeBuild para armazenar o código-fonte e, depois, enviar o bucket de saída para armazenar a saída do AWS CodeBuild (código convertido). Para obter mais informações, consulte [Criação, configuração e trabalho com buckets do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html) no *Guia do usuário do Amazon S3*.

1. Para criar o bucket do projeto, faça login no console do Amazon S3 e escolha **Criar bucket**.

1. Em **Configuração geral**, forneça um nome para o bucket e especifique Região da AWS onde você deseja criar o bucket. Um exemplo de nome é `codebuild-regionId-accountId-bucket`, em que: 
   + `regionId`é o Região da AWS do balde.
   +  `accountId`é sua Conta da AWS identidade.
**nota**  
Se você estiver criando o bucket em um local diferente Região da AWS do Leste dos EUA (Norte da Virgínia), especifique o `LocationConstraint` parâmetro. Para obter mais informações, consulte [Criar Bucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) na *Referência da API do Amazon Simple Storage Service*.

1. Mantenha todas as outras configurações e escolha **Criar bucket.**

Independentemente dos nomes que você escolher para esses buckets, não deixe de usá-los ao longo deste tutorial.

## Etapa 3: criar a política do IAM
<a name="tutorial-assembler-conversion-IAM-policy"></a>

Nesta etapa, você vai criar uma [política do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html). A política do IAM fornecida concede permissões específicas AWS CodeBuild para interagir com o Amazon S3, o Amazon Elastic Container Registry, os registros CodeBuild gerados pela [ CloudWatch Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) Amazon Elastic Compute Cloud e recursos para conversão de código. Essa política não é personalizada para clientes. A política concede permissões AWS Mainframe Modernization para interagir e obter as estatísticas de conversão do Código para faturar o cliente de forma adequada.

Para saber como criar uma política do IAM, consulte [Criar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do usuário do IAM*.

**Como criar uma política**

1. Faça login no console do IAM e escolha **Politicas** no painel de navegação esquerdo.

1. Selecione **Criar política**.

1. Copie e cole a política JSON a seguir no editor de políticas.

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	  
       "Statement": [ 
           { 
               "Action": [
                   "s3:PutObject", 
                   "s3:GetObject", 
                   "s3:GetBucketLocation", 
                   "s3:ListBucket", 
                   "s3:PutObjectAcl", 
                   "s3:GetBucketAcl" 
               ], 
               "Resource": [ 
                   "arn:aws:s3:::codebuild-regionId-accountId-bucket", 
                   "arn:aws:s3:::codebuild-regionId-accountId-bucket/*", 
                   "arn:aws:s3:::aws-m2-repo-*" ], 
                       "Effect": "Allow" 
             }, 
             {
                 "Action": [ 
                   "ecr:GetAuthorizationToken", 
                   "ecr:BatchCheckLayerAvailability", 
                   "ecr:BatchGetImage", 
                   "ecr:GetDownloadUrlForLayer", 
                   "logs:*", 
                   "ec2:DescribeSecurityGroups", 
                   "ec2:DescribeSubnets", 
                   "ec2:DescribeNetworkInterfaces", 
                   "ec2:DeleteNetworkInterface", 
                   "ec2:CreateNetworkInterface", 
                   "ec2:DescribeDhcpOptions", 
                   "ec2:DescribeVpcs", 
                   "ec2:CreateNetworkInterfacePermission" 
               ], 
               "Resource": "*", 
               "Effect": "Allow" 
            } 
       ] 
   }
   ```

------

1. Também é possível adicionar tags à política. Tags são pares de chave-valor que podem ajudar você a organizar, monitorar ou controlar o acesso para a política.

1. Escolha **Próximo: análise**.

1. Forneça um nome para a política, por exemplo, `CodeBuildAWSM2CCMPolicy`.

1. Também é possível inserir uma descrição para a política e revisar o resumo da política para garantir que ela esteja correta.

1. Selecione **Criar política**.

## Etapa 4: criar um perfil do IAM
<a name="tutorial-assembler-conversion-IAM-role"></a>

Nesta etapa, você cria uma nova [função do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que permite CodeBuild interagir com AWS os recursos para você, depois de associar as políticas do IAM que você criou anteriormente a essa nova função do IAM.

Para obter informações sobre a criação de uma função de serviço, consulte [Criação de uma função para delegar permissões a um AWS serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) no *Guia do usuário do IAM*.

1. Faça login no console do IAM e escolha **Perfis** no painel de navegação esquerdo.

1. Selecione **Criar perfil**.

1. Em **Tipo de entidade confiável**, escolha **Serviço AWS**.

1. **Em Casos de uso para outros serviços da AWS**, escolha e **CodeBuild**, em seguida, escolha **CodeBuild**novamente.

1. Escolha **Próximo**.

1. Na página **Adicionar permissões**, escolha **Próximo**. Você atribui uma política à função posteriormente.

1. Em **Detalhes da função**, forneça um nome para a função, por exemplo,`IAMRoleTaskExecutionRoleForCodeBuild`.

1. Em **Selecionar entidades confiáveis**, verifique se o documento de política tem a seguinte aparência:

------
#### [ JSON ]

****  

   ```
   {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
               {
                 "Effect": "Allow",
                 "Principal": {
                   "Service": "codebuild.amazonaws.com"
                 },
                 "Action": "sts:AssumeRole"
               }
             ]
   }
   ```

------

1. Selecione **Criar perfil**.

## Etapa 5: anexar a política do IAM ao perfil do IAM
<a name="tutorial-assembler-conversion-attach"></a>

Nesta etapa, é necessário anexar a política do IAM criada anteriormente ao perfil `IAMRoleTaskExecutionRoleForCodeBuild` do IAM.

1. Faça login no console do IAM e escolha **Perfis** no painel de navegação esquerdo.

1. Em **Perfil do IAM**, escolha a função que você criou anteriormente, por exemplo, `IAMRoleTaskExecutionRoleForCodeBuild`.

1. Em **Políticas de permissões**, escolha **Adicionar permissões** e, em seguida, **Anexar políticas**.

1. Em **Outras políticas de permissões**, escolha as políticas que você criou anteriormente, por exemplo, `CodeBuildAWSM2CCMPolicy`.

1. Escolha **Anexar políticas**.

## Etapa 6: criar o CodeBuild projeto
<a name="tutorial-assembler-conversion-create-project"></a>

Nesta etapa, você cria três CodeBuild projetos diferentes com base no `buildspec.yml` arquivo mencionado acima.

### Etapa 6.1: criar o projeto de definição
<a name="tutorial-conversion-define-project"></a>

**Como criar o projeto de definição**

1. Faça login no CodeBuild console e escolha **Criar projeto de compilação**.

1. Na seção **Configuração do projeto**, forneça um nome para o projeto, por exemplo, `1-awsm2ccm-define-project`.

1. Na seção **Origem**, em **Provedor de origem**, deixe a seleção padrão.

1. Na seção **Ambiente**, escolha **Imagem personalizada**.

1. No campo **Tipo de ambiente**, escolha **Linux**.

1. Em **Registro de imagens**, escolha **Outro registro**.

1. No campo **URL do registro externo**, siga a seção [AWS Mainframe Modernization contêiner](assembler-conversion-components-process.md#assembler-conversion-components-container).

1. Em **Perfil de serviço**, escolha **Perfil de serviço existente** e, no campo **ARN do perfil**, escolha o perfil de serviço que você criou anteriormente; por exemplo, `IAMRoleTaskExecutionRoleForCodeBuild`.

1. Expanda a seção **Configuração adicional** e faça o seguinte:

   1. VPC: configure, se necessário, com base na configuração.

   1. Tempo limite: defina como **60 minutos**.

   1. Tempo limite na fila: defina como **480 minutos**.

   1. Criptografia: escolha as configurações de criptografia apropriadas (o padrão é bom).

   1. Na seção **Variáveis de ambiente**, adicione o seguinte, um por um:
      + Nome: **PROJECT\_BUCKET**. Valor: `codebuild-regionId-accountId- bucket`. Tipo: **Texto simples**.
      + Nome: **PROJECT\_DIR**. Valor: `prj_codebuild_01`. Tipo: **Texto simples**.
      + Nome: **AWSM2CCM\_ACTION**. Valor: `define_project`. Tipo: **Texto simples**.
      + Nome: **AWSM2CCM\_LOGGING\_BUCKET**. Valor: `s3:// codebuild-regionId-accountId-bucket`. Tipo: **Texto simples**.

1. Na seção **Buildspec**, escolha **Inserir comandos de compilação** e **Alternar para editor**.

1. Substitua os valores atuais por estes:

   ```
   version: 0.2 
   phases: 
       build: 
           commands: 
               - . /app/awsm2ccm_prod/bin/setup_env.sh 
               - run_awsm2ccm.sh $PROJECT_DIR 
   artifacts: 
       files: 
           - '**/*' 
       discard-paths: no 
       base-directory: $PROJECT_DIR
   ```

   onde, PROJECT\_DIR são variáveis de ambiente disponíveis em. CodeBuild Para obter mais informações, consulte [Variáveis de ambiente em ambientes de compilação](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html).

1. Na seção **Artefatos**, faça o seguinte:
   + Em **Tipo**, escolha **Amazon S3** e o bucket de saída, por exemplo, `codebuild-regionId-accountId-bucket`.
   + em **Caminho**, deixe esse campo vazio.
   + Em **Nome**, digite `prj_codebuild_01`.
   + em **Embalagem de artefatos**, selecione **Nenhuma**.
   + em **Substituir nome do artefato**, desmarque essa opção.
   + Em **Criptografia**, mantenha as configurações padrão.

1. Na seção **Logs**, faça o seguinte:
   + CloudWatch registros: **desativado**
   + Logs do S3: **Habilitado**.
   + Bucket: `codebuild-regionId-account-bucket`
   + Caminho do log: `CODEBUILD-LOGS`.

1. Selecione **Create build project (Criar projeto de compilação)**.

### Etapa 6.2: criar o projeto de análise de código
<a name="tutorial-conversion-analysis-project"></a>

**Como criar o projeto de análise de código**

1. Faça login no CodeBuild console e escolha **Criar projeto de compilação**.

1. Na seção **Configuração do projeto**, forneça um nome para o projeto, por exemplo, `2-awsm2ccm-analysis`.

1. Na seção **Origem**, em **Provedor de origem**, escolha **Amazon S3** e, depois, escolha o bucket de entrada que você criou anteriormente, por exemplo, `codebuild-regionId-accountId-bucket`.

1. No campo **Chave do objeto do S3** ou **Pasta do S3**, insira `prj_codebuild_01`.

1. Na seção **Ambiente**, escolha **Imagem personalizada**.

1. No campo **Tipo de ambiente**, escolha **Linux**.

1. Em **Registro de imagens**, escolha **Outro registro**.

1. No campo **URL do registro externo**, siga a seção [AWS Mainframe Modernization contêiner](assembler-conversion-components-process.md#assembler-conversion-components-container).

1. Em **Perfil de serviço**, escolha **Perfil de serviço existente** e, no campo **ARN do perfil**, escolha o perfil de serviço que você criou anteriormente; por exemplo, `IAMRoleTaskExecutionRoleForCodeBuild`.

1. Expanda a seção **Configuração adicional** e faça o seguinte:

   1. VPC: configure, se necessário, com base na configuração.

   1. Tempo limite: defina como **60 minutos**.

   1. Tempo limite na fila: defina como **480 minutos**.

   1. Criptografia: escolha as configurações de criptografia apropriadas (o padrão é bom).

   1. Na seção **Variáveis de ambiente**, adicione o seguinte, um por um:
      + Nome: **PROJECT\_BUCKET**. Valor: `codebuild-regionId-accountId-bucket`. Tipo: **Texto simples**.
      + Nome: **PROJECT\_DIR**. Valor: `prj_codebuild_01`. Tipo: **Texto simples**.
      + Nome: **AWSM2CCM\_ACTION**. Valor: `analysis`. Tipo: **Texto simples**.
      + Nome: **AWSM2CCM\_LOGGING\_BUCKET**. Valor: `s3:// codebuild-regionId-accountId-bucket`. Tipo: **Texto simples**.

1. Na seção **Buildspec**, escolha **Inserir comandos de compilação** e **Alternar para editor**.

1. Substitua os valores atuais por estes:

   ```
   version: 0.2 
   phases: 
       build: 
           commands: 
               - ln -s $CODEBUILD_SRC_DIR $PROJECT_DIR 
               - . /app/awsm2ccm_prod/bin/setup_env.sh 
               - run_awsm2ccm.sh $PROJECT_DIR
   artifacts: 
       files: 
           - '*.log' 
           - '_Converted/*/*' 
           - '_Reports/*' 
       secondary-artifacts: 
           reports: 
               files: 
                   - '_Reports/AWSM2CCM*' 
       discard-paths: no 
       base-directory: $PROJECT_DIR
   ```

   onde, PROJECT\_DIR são variáveis de ambiente disponíveis em. CodeBuild Para obter mais informações, consulte [Variáveis de ambiente em ambientes de compilação](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html).

1. Na seção **Artefatos**, faça o seguinte:
   + Em **Tipo**, escolha **Amazon S3** e, depois, escolha o bucket de saída (por exemplo, `codebuild-regionId-accountId-bucket`).
   + Em **Caminho**, insira **ARTEFATOS**.
   + Em **Nome**, digite `prj_codebuild_01`.
   + em **Embalagem de artefatos**, selecione **Nenhuma**.
   + em **Substituir nome do artefato**, desmarque essa opção.
   + Em **Criptografia**, mantenha as configurações padrão.

1. Na seção **Logs**, faça o seguinte:
   + CloudWatch registros: **desativado**
   + Logs do S3: **Habilitado**.
   + Bucket: `codebuild-regionId-account-bucket`
   + Caminho do log: `CODEBUILD-LOGS`.

1. Selecione **Create build project (Criar projeto de compilação)**.

### Etapa 6.3: criar o projeto de Conversão de Código
<a name="tutorial-conversion-code-project"></a>

**Como criar o projeto de Conversão de Código**

1. Faça login no CodeBuild console e escolha **Criar projeto de compilação**.

1. Na seção **Configuração do projeto**, forneça um nome para o projeto, por exemplo, `3-awsm2ccm-convert`.

1. Na seção **Origem**, em **Provedor de origem**, escolha **Amazon S3** e, depois, escolha o bucket de entrada que você criou anteriormente, por exemplo, `codebuild-regionId-accountId-bucket`.

1. No campo **Chave do objeto do S3** ou **Pasta do S3**, insira `prj_codebuild_01`.

1. Na seção **Ambiente**, escolha **Imagem personalizada**.

1. No campo **Tipo de ambiente**, escolha **Linux**.

1. Em **Registro de imagens**, escolha **Outro registro**.

1. No campo **URL do registro externo**, siga a seção [AWS Mainframe Modernization contêiner](assembler-conversion-components-process.md#assembler-conversion-components-container).

1. Em **Perfil de serviço**, escolha **Perfil de serviço existente** e, no campo **ARN o perfil**, escolha o perfil de serviço que você criou anteriormente; por exemplo, `IAMRoleTaskExecutionRoleForCodeBuild`.

1. Expanda a seção **Configuração adicional** e faça o seguinte:

   1. VPC: configure, se necessário, com base na configuração.

   1. Tempo limite: defina como **60 minutos**.

   1. Tempo limite na fila: defina como **480 minutos**.

   1. Criptografia: escolha as configurações de criptografia apropriadas (o padrão é bom).

   1. Na seção **Variáveis de ambiente**, adicione o seguinte, um por um:
      + Nome: **PROJECT\_BUCKET**. Valor: `codebuild-regionId-accountId-bucket`. Tipo: **Texto simples**.
      + Nome: **PROJECT\_DIR**. Valor: `prj_codebuild_01`. Tipo: **Texto simples**.
      + Nome: **AWSM2CCM\_ACTION**. Valor: `conversion`. Tipo: **Texto simples**.
      + Nome: **AWSM2CCM\_LOGGING\_BUCKET**. Valor: `s3:// codebuild-regionId-accountId-bucket`. Tipo: **Texto simples**.

1. Na seção **Buildspec**, escolha **Inserir comandos de compilação** e **Alternar para editor**.

1. Substitua os valores atuais por estes:

   ```
   version: 0.2 
   phases: 
       build: 
           commands: 
               - export AWSM2CCM_PUSH_RUNTIME_COPYBOOKS=y 
               - ln -s $CODEBUILD_SRC_DIR $PROJECT_DIR 
               - . /app/awsm2ccm_prod/bin/setup_env.sh
               - run_awsm2ccm.sh $PROJECT_DIR
   artifacts: 
       files: 
           - '*.log' 
           - '_Converted/*/*' 
           - '_Reports/*'  
       discard-paths: no 
       base-directory: $PROJECT_DIR
   ```

   onde, PROJECT\_DIR são variáveis de ambiente disponíveis em. CodeBuild Para obter mais informações, consulte [Variáveis de ambiente em ambientes de compilação](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html).

1. Na seção **Artefatos**, faça o seguinte:
   + Em **Tipo**, escolha **Amazon S3** e, depois, escolha o bucket de saída (por exemplo, `codebuild-regionId-accountId-bucket`).
   + Em **Caminho**, insira **ARTEFATOS**.
   + Em **Nome**, digite `prj_codebuild_01`.
   + em **Embalagem de artefatos**, selecione **Nenhuma**.
   + em **Substituir nome do artefato**, desmarque essa opção.
   + Em **Criptografia**, mantenha as configurações padrão.

1. Na seção **Logs**, faça o seguinte:
   + CloudWatch registros: **desativado**
   + Logs do S3: **Habilitado**.
   + Bucket: `codebuild-regionId-account-bucket`
   + Caminho do log: `CODEBUILD-LOGS`.

1. Selecione **Create build project (Criar projeto de compilação)**.

## Etapa 7: definir o projeto e fazer upload do código-fonte
<a name="tutorial-assembler-conversion-define-upload"></a>

A definição do projeto configura a pasta do projeto e os arquivos de configuração, inicializados com as configurações padrão. Nesta etapa, você inicia a compilação. Para fazer isso:

1. Faça login no AWS CodeBuild console.

1. No painel de navegação esquerdo, selecione **Projetos de compilação**.

1. Selecione o projeto criado anteriormente (`1-awsm2ccm-define-project`) a ser compilado.

1. Escolha **Iniciar compilação** e **Iniciar agora** para definir o projeto. Quando a compilação for iniciada, o status mudará para *em andamento*.

1. Escolha **os detalhes da fase** para ver o progresso de cada etapa orquestrada pelo AWS CodeBuild projeto.

1. Espere até que o status seja alterado para **bem-sucedido** em todas as etapas.

1. Acesse o console do Amazon S3.

1. Localize e clique no bucket do Amazon S3 denominado `codebuild-regionId-accountId-bucket`.
   + **`CODEBUILD-LOGS/`**A pasta contém os AWS CodeBuild registros dos AWS CodeBuild projetos em execução.
   + A pasta **`prj_codebuild_01/`** que contém a estrutura do projeto. É usada durante as etapas de análise, expand\_macros e conversão. É possível selecionar `prj_codebuild_01/` para explorar os detalhes.
   + Arquivo de configuração **`cobol_reserved.rsw`** (lista de palavras COBOL) reservado para o conversor. É usado durante a etapa de conversão.
   + A pasta **`Macro_Expansion/`** contém macros para expandir em programas Assembler. É usada durante a etapa expand\_macros.
   + O arquivo de configuração **`macro_settings.json`** contém a substituição personalizada de macros. É usada durante a etapa expand\_macros.
   + A pasta **`macrolib/`** contém as macros Assembler a serem convertidas. É usada durante a etapa de análise e de conversão.

     1. Selecione `macrolib/`.

     1. Por padrão, uma macro Assembler denominada `MACRO1.mac` é fornecida como um arquivo de exemplo. Exclua esse arquivo, pois ele não é necessário para a análise.

     1. Faça upload das macros nesse diretório.
   + O arquivo de configuração **`project_settings_aux.json`** contém configurações relacionadas à página de código. É usado durante a etapa de conversão.
   + O arquivo de configuração **`project_settings.json`** contém configurações para o conversor. É usado durante a etapa de conversão.
   + A pasta **`srclib/`** contém os programas Assembler a serem convertidos. É usada durante a etapa de análise e de conversão.

     1. Selecione `srclib/`.

     1. Por padrão, dois programas Assembler denominados `SQtest01.asm` e `SQtest02.asm` são fornecidos como exemplos. Exclua esses arquivos, pois eles não são necessários para análise e conversão.

     1. Faça upload dos programas Assembler nesse diretório.

1. Verifique o status da etapa `1-awsm2ccm-define-project`. Dever ser bem-sucedido na guia **Status da compilação mais recente**.

Está tudo pronto para a próxima etapa: **análise de código**.

## Etapa 8: executar a análise e entender os relatórios
<a name="tutorial-assembler-conversion-run-analysis"></a>

**nota**  
AWS Mainframe Modernization A etapa de *análise* de conversão de código é gratuita.

Nesta etapa, você vai iniciar outra compilação:

1. No painel de navegação esquerdo, selecione **Criar projetos**.

1. Escolha o projeto criado na etapa 6.2 para compilar: `2-awsm2ccm-analysis`.

1. Escolha **Iniciar compilação** e **Iniciar agora** para gerar relatórios de análise. Isso iniciará a compilação e mudará o status para *em andamento*.

1. Escolha **os detalhes da fase**, onde você verá o progresso de cada etapa orquestrada pelo AWS CodeBuild projeto. Espere até que o status seja alterado para *bem-sucedido* em todas as etapas.

1.  Console de gerenciamento da AWS Em, acesse o console de serviço do Amazon S3.

1. Localize e clique no bucket do Amazon S3: `codebuild-regionId-accountId-bucket`

   1. A pasta **`ARTIFACTS/`** contém as saídas das etapas de *análise* e de *conversão*.

   1. Selecione `ARTIFACTS/prj_codebuild_01/_Reports/`.

   1. Os seguintes relatórios estarão disponíveis:
      + `AWSM2CCM-Analysis-Report-<timestamp>.pdf`é um relatório executivo que fornece o escopo e o faturamento da conversão do AWS Mainframe Modernization Código, melhorando a conversão, o resumo da conversão e as estatísticas detalhadas da conversão. Ele também resume as contagens de códigos e as contagens de códigos faturáveis em nível de projeto e fornece métricas e listas de membros referidos para cada componente. É fundamental executar e examinar esse relatório antes de executar a conversão real.
      + `Conversion_Detailed_Statistics.txt` fornece a frequência e o resultado esperado da conversão (mostrado como “Status da conversão”) para cada instrução encontrada em cada componente. Isso oferece uma maneira rápida de identificar se as instruções são claras que o conversor não aceita. Os possíveis resultados de *Status de conversão* são:
        + **Totalmente convertido**: a instrução será convertida com exatidão em COBOL.
        + **Parcialmente convertida**: a instrução é aceita, mas usa um parâmetro ou uma expressão não aceita. Provavelmente, ajustes manuais são necessários após a conversão.
        + **Não convertida**: a instrução não é aceita pelo conversor.
        + **Instruções de pré-compilação para verificação**: normalmente estão incluídas nas macros e se referem ao que provavelmente também é conhecido como instruções de *linguagem de montagem condicional* (por exemplo, AIF, AGO) no mainframe. Elas são processadas pelo pré-compilador, que é conduzido por essas instruções ou diretivas, seleciona e produz um código ASM *limpo/estático*. Essas instruções dependem dos valores reais dos parâmetros de macro que são compilados. Portanto, a mesma macro pode gerar diferentes partes do código ASM, dependendo dos valores dos parâmetros transmitidos. Isso ocorre devido à presença dessas *instruções de pré-compilação*. Nesse caso, pense em expandir ou reprojetar a macro.
      + `Conversion_Global_Statistics.txt` fornece um resumo de *Status da conversão* em um nível de componente.
      + `CrossReference_PgmToCpyMacro.txt` indica as dependências do programa Assembler em macros. Ele oferece uma maneira rápida de determinar se alguma macro está ausente no código carregado.
      + `CrossReference_PgmToPgm.txt` indica as dependências do programa Assembler em outros programas Assembler. Ele oferece uma maneira rápida de determinar se algum programa Assembler está ausente no código carregado.

1. Retorne ao console AWS CodeBuild de serviço.

1. Verifique o status da etapa **2-awsm2ccm-analysis**. Dever ser **bem-sucedido** na guia **Status da compilação mais recente**.

Está tudo pronto para a próxima etapa: **conversão de código**.

## Etapa 9: executar a conversão de código
<a name="tutorial-assembler-conversion-run-code"></a>

**Importante**  
AWS Mainframe Modernization A etapa de *conversão de* código será cobrada de acordo com seu uso. Para obter mais informações sobre o faturamento, consulte [Noções básicas sobre o faturamento da Conversão de Código para conversão de Assembler](assembler-conversion-billing.md).

Nesta etapa, você vai configurar o processo de conversão e iniciar a compilação.

1.  Console de gerenciamento da AWS Em, acesse o serviço Amazon S3.

1. Localize e clique no bucket do Amazon S3: `codebuild-regionId-accountId-bucket`.

   1. Acesse `prj_codebuild_01/`.

   1. Selecione `project_settings.json` e escolha **Baixar**.

   1. Abra o arquivo `project_settings.json` para ver a seguinte estrutura JSON:

      ```
      { 
      "Source programs directory":"srclib", 
      "Source copybooks/macros directory":"macrolib", 
      "Copybook/Macros Conversion":"Called_only", 
      "Do not regenerate the Copy/Macro if already exists":"false", 
      "Target Compiler":"IBM", 
      "Endianess":"Big", 
      "Converted programs extension":"", 
      "Converted CICS programs extension":"", 
      "Converted copies/macros extension":"", 
      "Trace Level":"STANDARD", 
      "Trace file open mode":"append", 
      "Data definition level":5, 
      "Start picture column":40, 
      "Generate Sync FILLER with name":"FILL-SYNC", 
      "Use SYNC clause":"yes", 
      "Decimal Point Comma":"true", 
      "Original Source Placement":"RIGHT" 
      }
      ```

      em que,
      + **Diretório do programa de origem**: contém os programas Assembler necessários para a conversão.
      + O **diretório de cadernos/macros de origem**: contém as macros Assembler e os cadernos necessários para a conversão.
      + A **conversão de cadernos e macros** pode ser:
        + **Tudo**: Este botão de rádio indica que a *conversão completa* converterá tudo o que copybook/Macros está disponível no diretório, independentemente de estar sendo usado pelos programas ou não.
        + **Called\_only**: Este botão de rádio indica que a *conversão completa* converterá somente o copybook/Macros que realmente é usado pelos programas.
      + 
**Importante**  
Você não precisa regenerar o Copy/Macro se ele já existir.

        Quando isso for verdade, a ferramenta não converterá o caderno/macro novamente, se ele já tiver sido convertido (existir na pasta de saída). 
      + **Destino**: a conversão dos programas (código gerado) depende do compilador COBOL de destino. Há compatibilidade com as seguintes opções:
        + “IBM” para mainframe IBM.
        + “MF” para COBOL do Micro Focus. 
        + “VERYANT” para Veryant isCOBOL.
        + “NTT” para NTT DATA Enterprise COBOL (Unikix).
      + **Endianess e Bitness**: a conversão dos programas (código gerado) depende da plataforma de destino (bit/endianess). Essa combinação permite a seleção das seguintes opções aceitas:
        + Endianess: *Big* (para Big-Endian)/Little (Little-Endian). Por exemplo, o z/OS mainframe IBM é Big-Endian, o Windows é Little-Endian, o Linux varia de acordo com a distribuição (por exemplo, o Amazon Linux 2 no EC2 é Little-Endian).
        + Bitness: 32/64 (se não for fornecido, o padrão será 32). A configuração recomendada é de 32 bits.
      + **Extensão do programa convertido**: isso serve para definir a extensão do arquivo para os programas COBOL gerados. Vazio (“”): sem extensão. Para destinos COBOL da Rocket Software (antiga Micro Focus), o *CBL* é recomendado para permitir que o Rocket Enterprise Developer reconheça corretamente os arquivos.
      + **Extensão do programa CICS convertido**: isso serve para definir a extensão do arquivo para os programas COBOL CICS gerados. Vazio (“”): sem extensão. Para destinos COBOL da Rocket Software, o *CBL* é recomendado para permitir que o Rocket Enterprise Developer reconheça corretamente os arquivos.
      + **Extensão de cadernos/macros convertidos**: serve para definir a extensão do arquivo para os cadernos COBOL gerados. Vazio (“”): sem extensão. Para alvos COBOL da Rocket Software, o *CPY* é recomendado para permitir que o Rocket Enterprise Developer reconheça corretamente os arquivos.
      + **Nível de rastreamento**: o rastreamento é a informação que é registrada usando CodeBuild durante a conversão. O usuário pode selecionar o nível de detalhe selecionando qualquer uma das opções fornecidas.
        + **ERROR** = TRACE ERROR: somente erros de conversão são exibidos.
        + **STANDARD** = TRACE STANDARD: erros de conversão e informações padrão são exibidos. Essa é a configuração recomendada.
        + **ALL** = TRACE ALL: nível máximo de rastreamento
      + **Modo de abertura do arquivo de rastreamento**: não usado. A configuração padrão de *anexar* é recomendada.
      + **Nível de definição de dados**: indica o nível inicial dos subcampos (após o nível “01”) definido na seção de armazenamento de trabalho e vinculação. Deve ser um número.
      + **Iniciar coluna de imagem**: trata-se do formato do código COBOL gerado e indica a coluna em que a cláusula *PIC* é colocada (após os nomes dos campos). Deve ser um número.
      + **Posicionamento da origem original:** indica a posição em que os comentários são colocados no programa. Há duas opções:
        + **DIREITA**: essa opção colocará o comentário ou as informações adicionais na posição à direita após a coluna 73. Em COBOL, o código é escrito nas primeiras 72 colunas e qualquer elemento a partir da coluna 73 será tratado como um comentário.
        + **ACIMA**: essa opção colocará o comentário acima do conteúdo convertido.
      + **Gerar Sync FILLER com nome**: essa opção está relacionada ao alinhamento na memória de campos binários (tipos de dados Assembler “H”, “F”, “D”, que são convertidos no tipo de dados “COMP” COBOL). Para garantir o *limite de alinhamento* adequado, campos de *preenchimento* explícitos serão adicionados durante a conversão. Essa é uma opção baseada em texto; o valor deve ser uma string (como FILL-SYNC).
      + **Usar a cláusula SYNC**: essa opção se refere ao alinhamento na memória de campos binários. Sim = todos os campos convertidos em COBOL. “COMP” será definido com a cláusula “SYNC” (por exemplo, 05 WRKFLD PIC S9(09) COMP SYNC).
      + **Vírgula de ponto decimal**: quando essa condição for válida, a cláusula *DECIMAL-POINT IS COMMA* será adicionada ao parágrafo COBOL “SPECIAL-NAMES”.

   1. Com base nos requisitos, altere os parâmetros apropriados e salve o `project_settings.json`.

   1. Remova o arquivo `project_settings.json` existente de `prj_codebuild_01/` no bucket do Amazon S3 e faça upload da nova versão.

1. Volte para o AWS CodeBuild serviço.

1. Selecione o projeto criado anteriormente a ser compilado: `3-awsm2ccm-convert`.

   1. Escolha **Iniciar compilação** e **Iniciar agora** para converter programas e macros Assembler em programas e cadernos COBOL.

   1. Aguarde até que o status da compilação mude para **Bem-sucedido** para esse projeto. Ele estará na guia **Status da versão mais recente**.

## Etapa 10: verificar a conversão de código
<a name="tutorial-assembler-conversion-verify"></a>

1.  Console de gerenciamento da AWS Em, acesse o serviço Amazon S3.

1. Localize e clique no bucket do Amazon S3: `codebuild-regionId-accountId-bucket`.

1. Navegue até **`awsm2ccm-do-not-delete `**. AWS Mainframe Modernization A conversão de código cria arquivos binários codificados para cada módulo Assembler ou Macro durante o processo de conversão. Esses arquivos são essenciais para evitar o faturamento duplicado para os clientes e também para monitorar quanto do código Assembler fornecido foi analisado e convertido. Os arquivos são armazenados no seguinte local: `codebuild-regionId-accountId- bucket/awsm2ccm-do-not-delete/<your_AWS_account_id>/Hash`. Os arquivos codificados não contêm nenhum código Assembler e também não é possível extrair o código do cliente desses arquivos.
**Importante**  
Não edite esses arquivos manualmente nem os exclua. A edição ou a exclusão desses arquivos pode gerar várias cobranças pelos mesmos componentes.

   Trate a pasta **`awsm2ccm-do-not-delete/`** como um diretório gerenciado pelo sistema. Consulte Suporte antes de fazer qualquer alteração nesse diretório ou em seu conteúdo.

1. Clique em `codebuild-regionId-accountId-bucket` para voltar ao bucket.

1. Escolha a pasta **`ARTIFACTS/prj_codebuild_01/`**.**\_Converted/** contém as saídas COBOL geradas como resultado da etapa de conversão de código. Ela terá os seguintes subdiretórios:
   + A pasta **copybooks/** contém os cadernos COBOL gerados.
   + A pasta **programs/ ** contém os programas COBOL gerados.
   + A pasta **runtime\_lib/** contém programas e cadernos COBOL adicionais fornecidos pela solução.

1. **Se os *Relatórios de Análise* e outros relatórios indicarem que a conversão foi bem-sucedida e o AWS CodeBuild projeto `3-awsm2ccm-convert` estiver marcado como **Bem-sucedido**, baixe o código COBOL e os cadernos do diretório \_Converted/.**

## Etapa 11: baixar o código convertido
<a name="tutorial-assembler-conversion-download"></a>

Nesta etapa, baixe o código COBOL e os cadernos do diretório **\_Converted/** e compile-os no ambiente COBOL de destino.

1.  Console de gerenciamento da AWS Em, acesse o serviço Amazon S3.

1. Localize e clique no bucket do Amazon S3: `codebuild-regionId-accountId-bucket`.

1. Navegue até o local: ` ARTIFACTS/prj_codebuild_01/_Converted/`.

1. Baixe o código COBOL convertido de todos os subdiretórios em **\_Converted/**. Também é possível usar o seguinte comando da CLI para baixá-los de uma vez:

   ```
   aws s3 cp s3://codebuild-regionId-accountId- 
   bucket/ARTIFACTS/prj_codebuild_01/_Converted/ . --recursive
   ```

1. Analise e compile o COBOL convertido no ambiente COBOL de destino.

## Limpar os recursos
<a name="tutorial-assembler-conversion-clean-resources"></a>

Se você não precisar mais dos recursos que criou para este tutorial, exclua-os para evitar cobranças adicionais. Para fazer isso, realize as etapas a seguir:
+ Exclua os buckets do S3 que você criou para este tutorial. Para ter mais informações, consulte [Excluir um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) no *Guia do usuário do Amazon Simple Storage Service*.
+ Exclua as políticas de IAM que você criou para este tutorial. Para ter mais informações, consulte [Excluir políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-delete.html) no *Guia do usuário do IAM*.
+ Exclua o perfil do IAM que você criou para este tutorial. Para ter mais informações, consulte [Excluir perfis ou perfis de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) no *Guia do usuário do IAM*.
+ Exclua o CodeBuild projeto que você criou para este tutorial. Para obter mais informações, consulte [Excluir um projeto de compilação CodeBuild no](https://docs.aws.amazon.com/codebuild/latest/userguide/delete-project.html) *Guia AWS CodeBuild do usuário*.