YAML da ação “Invocação do AWS Lambda” - Amazon CodeCatalyst

YAML da ação “Invocação do AWS Lambda”

Confira a seguir a definição de YAML da ação Invocação do AWS Lambda. Para saber como usar essa ação, consulte Invocar uma função do Lambda usando um fluxo de trabalho.

Essa definição de ação existe como uma seção dentro de um arquivo de definição de fluxo de trabalho mais amplo. Para obter mais informações sobre esse arquivo, consulte Definição do YAML do fluxo de trabalho.

nota

A maioria das propriedades YAML a seguir tem elementos de interface de usuário correspondentes no editor visual. Para pesquisar um elemento de interface, use Ctrl+F. O elemento será listado com a propriedade YAML associada.

# The workflow definition starts here. # See Propriedades de nível superior for details. Name: MyWorkflow SchemaVersion: 1.0 Actions: # The action definition starts here. LambdaInvoke_nn: Identifier: aws/lambda-invoke@v1 DependsOn: - dependent-action Compute: Type: EC2 | Lambda Fleet: fleet-name Timeout: timeout-minutes Inputs: # Specify a source or an artifact, but not both. Sources: - source-name-1 Artifacts: - request-payload Variables: - Name: variable-name-1 Value: variable-value-1 - Name: variable-name-2 Value: variable-value-2 Environment: Name: environment-name Connections: - Name: account-connection-name Role: iam-role-name Configuration: Function: my-function|function-arn AWSRegion: us-west-2 # Specify RequestPayload or RequestPayloadFile, but not both. RequestPayload: '{"firstname": "Li", lastname: "Jean", "company": "ExampleCo", "team": "Development"}' RequestPayloadFile: my/request-payload.json ContinueOnError: true|false LogType: Tail|None ResponseFilters: '{"name": ".name", "company": ".department.company"}' Outputs: Artifacts: - Name: lambda_artifacts Files: - "lambda-response.json"

LambdaInvoke

(Obrigatório)

Especifique o nome da ação. Todos os nomes de ação devem ser exclusivos no fluxo de trabalho. Os nomes de ação são limitados a caracteres alfanuméricos (a-z, A-Z, 0-9), hifens (-) e sublinhados (_). Não são permitidos espaços. Não é possível usar aspas para habilitar caracteres especiais e espaços nos nomes de ação.

Padrão: Lambda_Invoke_Action_Workflow_nn.

Interface de usuário correspondente: guia Configuração/Nome da ação

Identifier

(LambdaInvoke/Identifier)

(Obrigatório)

Identifica a ação. Não altere essa propriedade, a menos que você queira alterar a versão. Para ter mais informações, consulte Especificação da versão da ação a ser usada.

Padrão: aws/lambda-invoke@v1.

Interface de usuário correspondente: diagrama de fluxo de trabalho/rótuloLambdaInvoke_nn/aws/lambda-invoke@v1

DependsOn

(LambdaInvoke/DependsOn)

(Opcional)

Especifique uma ação, um grupo de ação ou um portão que deve ser executado com êxito para que essa ação seja executada.

Para ter mais informações sobre a funcionalidade “Depende de”, consulte Sequenciar ações.

Interface de usuário correspondente: guia Entradas/Depende de - opcional

Compute

(LambdaInvoke/Compute)

(Opcional)

O mecanismo de computação usado para executar as ações de fluxo de trabalho. É possível especificar a computação em nível de fluxo de trabalho ou em nível de ação, mas não em ambos. Quando especificada em nível de fluxo de trabalho, a configuração de computação se aplica a todas as ações definidas no fluxo de trabalho. Em nível de fluxo de trabalho, também é possível realizar várias ações na mesma instância. Para ter mais informações, consulte Compartilhamento de computação entre ações.

Interface de usuário correspondente: nenhuma

Type

(LambdaInvoke/Compute/Type)

(Obrigatório se Compute for incluído)

O tipo do mecanismo de computação. É possível usar um dos seguintes valores:

  • EC2 (editor visual) ou EC2 (editor YAML)

    Otimizado para flexibilidade durante as execuções de ação.

  • Lambda (editor visual) ou Lambda (editor YAML)

    Velocidades otimizadas de inicialização da ação.

Para obter informações sobre tipos de dados, consulte Tipos de computação.

Interface de usuário correspondente: guia Configuração/Tipo de computação

Fleet

(LambdaInvoke/Compute/Fleet)

(Opcional)

Especifique a máquina ou a frota que executará o fluxo de trabalho ou as ações de fluxo de trabalho. Com frotas sob demanda, quando uma ação é iniciada, o fluxo de trabalho provisiona os recursos necessários e as máquinas são destruídas quando a ação termina. Exemplos de frota sob demanda: Linux.x86-64.Large, Linux.x86-64.XLarge. Para ter mais informações sobre frotas sob demanda, consulte Propriedades da frota sob demanda.

Com frotas provisionadas, você configura um conjunto de máquinas dedicadas para realizar as ações do fluxo de trabalho. Essas máquinas permanecem ociosas, prontas para processar ações imediatamente. Para ter mais informações sobre frotas provisionadas, consulte Propriedades da frota provisionada.

Se Fleet for omitido, o padrão será Linux.x86-64.Large.

Interface de usuário correspondente: guia Configuração/Frota de computação

Timeout

(LambdaInvoke/Timeout)

(Obrigatório)

Especifique a quantidade de tempo em minutos (editor YAML) ou horas e minutos (editor visual) que a ação pode ser realizada antes que o CodeCatalyst termine a ação. O mínimo é de cinco minutos e o máximo está descrito em Cotas para fluxos de trabalho no CodeCatalyst. O tempo limite padrão é igual ao tempo limite máximo.

Interface de usuário correspondente: guia Configuração/Tempo limite - opcional

Inputs

(LambdaInvoke/Inputs)

(Obrigatório)

A seção Inputs define os dados que a ação Invocação do AWS Lambda precisa durante a execução de um fluxo de trabalho.

nota

Somente uma entrada (uma origem ou um artefato) é permitida por ação Invocação do AWS Lambda. As variáveis não são contadas nesse total.

Interface de usuário correspondente: guia Entradas

Sources

(LambdaInvoke/Inputs/Sources)

(Obrigatório se RequestPayloadFile for fornecido)

Se você quiser transmitir um arquivo JSON de carga útil de solicitação para a ação Invocação do AWS Lambda, e esse arquivo de carga útil estiver armazenado em um repositório de origem, especifique o rótulo desse repositório de origem. Atualmente, o único rótulo compatível é WorkflowSource.

Se o arquivo de carga útil de solicitação não estiver em um repositório de origem, ele deverá residir em um artefato gerado por outra ação.

Para ter mais informações sobre o arquivo de carga útil, consulte RequestPayloadFile.

nota

Em vez de especificar um arquivo de carga útil, você pode adicionar o código JSON da carga útil diretamente à ação usando a propriedade RequestPayload. Para ter mais informações, consulte RequestPayload.

Para obter mais informações sobre fontes, consulte Conectar repositórios de origem aos fluxos de trabalho.

Interface de usuário correspondente: guia Entradas/Origens - opcional

Artifacts - input

(LambdaInvoke/Inputs/Artifacts)

(Obrigatório se RequestPayloadFile for fornecido)

Se você quiser transmitir um arquivo JSON de carga útil de solicitação para a ação Invocação do AWS Lambda, e esse arquivo de carga estiver contido em um artefato de saída de uma ação anterior, especifique esse artefato aqui.

Para ter mais informações sobre o arquivo de carga útil, consulte RequestPayloadFile.

nota

Em vez de especificar um arquivo de carga útil, você pode adicionar o código JSON da carga útil diretamente à ação usando a propriedade RequestPayload. Para ter mais informações, consulte RequestPayload.

Para ter mais informações sobre artefatos, inclusive exemplos, consulte Compartilhar artefatos e arquivos entre ações.

Interface de usuário correspondente: guia Configuração/Artefatos - opcional

Variables - input

(LambdaInvoke/Inputs/Variables)

(Opcional)

Especifique uma sequência de pares de nome/valor que definam as variáveis de entrada que você deseja disponibilizar para a ação. Os nomes de variável são limitados a caracteres alfanuméricos (a-z, A-Z, 0-9), hifens (-) e sublinhados (_). Não são permitidos espaços. Não é possível usar aspas para habilitar caracteres especiais e espaços nos nomes de variável.

Para ter mais informações sobre variáveis, inclusive exemplos, consulte Uso de variáveis em fluxos de trabalho.

Interface de usuário correspondente: guia Entradas/Variáveis - opcional

Environment

(LambdaInvoke/Environment)

(Obrigatório)

Especifique o ambiente do CodeCatalyst a ser usado com a ação. A ação se conecta à Conta da AWS e à Amazon VPC opcional especificada no ambiente escolhido. A ação usa o perfil do IAM padrão especificado no ambiente para se conectar à Conta da AWS e usa o perfil do IAM especificado na conexão da Amazon VPC para se conectar à Amazon VPC.

nota

Se o perfil do IAM padrão não tiver as permissões exigidas pela ação, você poderá configurar a ação para usar um perfil diferente. Para ter mais informações, consulte Alteração do perfil do IAM de uma ação.

Para ter mais informações sobre ambientes, consulte Implantação em Contas da AWS e VPCs e Criar um ambiente.

Interface de usuário correspondente: guia Configuração/Ambiente

Name

(LambdaInvoke/Environment/Name)

(Obrigatório se Environment for incluído)

Especifique o nome de um ambiente existente que deseja associar à ação.

Interface de usuário correspondente: guia Configuração/Ambiente

Connections

(LambdaInvoke/Environment/Connections)

(Opcional nas versões mais recentes da ação; obrigatório nas versões mais antigas)

Especifique a conexão da conta a ser associada à ação. É possível especificar no máximo uma conexão de conta em Environment.

Se você não especificar uma conexão de conta:

  • A ação usa a conexão da Conta da AWS e o perfil do IAM padrão especificados no ambiente no console do CodeCatalyst. Para ter informações sobre como adicionar uma conexão de conta e um perfil do IAM padrão ao ambiente, consulte Criar um ambiente.

  • O perfil do IAM padrão deve incluir as políticas e as permissões exigidas pela ação. Para determinar quais são essas políticas e permissões, consulte a descrição da propriedade Perfil na documentação de definição de YAML da ação.

Para ter mais informações sobre conexões de conta, consulte Permissão do acesso a recursos da AWS com Contas da AWS conectadas. Para ter informações sobre como adicionar uma conexão de conta a um ambiente, consulte Criar um ambiente.

Interface de usuário correspondente: uma das seguintes, dependendo da versão da ação:

  • (Versões mais recentes) Guia Configuração/Ambiente/O que há no meu ambiente?/menu de três pontos/Mudar de perfil

  • (Versões mais antigas) Guia Configuração/”Ambiente/conta/perfil”/conexão de conta da AWS

Name

(LambdaInvoke/Environment/Connections/Name)

(Obrigatório se Connections for incluído)

Especifique o nome da conexão da conta.

Interface de usuário correspondente: uma das seguintes, dependendo da versão da ação:

  • (Versões mais recentes) Guia Configuração/Ambiente/O que há no meu ambiente?/menu de três pontos/Mudar de perfil

  • (Versões mais antigas) Guia Configuração/”Ambiente/conta/perfil”/conexão de conta da AWS

Role

(LambdaInvoke/Environment/Connections/Role)

(Obrigatório se Connections for incluído)

Especifique o nome do perfil do IAM que a ação Invocação do AWS Lambda usa para acessar a AWS e invocar sua função do Lambda. Adicione o perfil ao seu espaço do CodeCatalyst e verifique se o perfil inclui as políticas a seguir.

Se você não especificar um perfil do IAM, a ação usará o perfil padrão listado no ambiente no console do CodeCatalyst. Se você usar o perfil padrão no ambiente, verifique se ele tem as políticas a seguir.

  • A política de permissões a seguir:

    Atenção

    Limite as permissões às exibidas na política a seguir. Usar um perfil com permissões mais amplas pode representar um risco de segurança.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:aws-region:aws-account:function:function-name" } ] }
  • A política de confiança personalizada a seguir:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
nota

Você pode usar o perfil CodeCatalystWorkflowDevelopmentRole-spaceName com essa ação, se desejar. Para obter mais informações sobre essa função, consulte Criar o perfil CodeCatalystWorkflowDevelopmentRole-spaceName para a conta e o espaço. Entenda que o perfil CodeCatalystWorkflowDevelopmentRole-spaceName tem permissões de acesso completas, o que pode representar um risco de segurança. Recomendamos que você use esse perfil apenas em tutoriais e em cenários em que a segurança seja menos preocupante.

Interface de usuário correspondente: uma das seguintes, dependendo da versão da ação:

  • (Versões mais recentes) Guia Configuração/Ambiente/O que há no meu ambiente?/menu de três pontos/Mudar de perfil

  • (Versões mais antigas) Guia Configuração/“Ambiente/conta/perfil”/Perfil

Configuration

(LambdaInvoke/Configuration)

(Obrigatório)

Uma seção na qual você pode definir as propriedades de configuração da ação.

Interface de usuário correspondente: guia Configuração

Function

(LambdaInvoke/Configuration/Function)

(Obrigatório)

Especifique a função do AWS Lambda que essa ação invocará. Você pode especificar o nome da função ou o nome do recurso da Amazon (ARN). É possível encontrar o nome ou ARN no console do Lambda.

nota

A conta da AWS na qual a função do Lambda reside pode ser diferente da conta especificada em Connections:.

Interface de usuário correspondente: guia Configuração/Função

AWSRegion

(LambdaInvoke/Configuration/AWSRegion)

(Obrigatório)

Especifique a região da AWS em que sua função do AWS Lambda reside. Para ver uma lista de códigos de região, consulte Endpoints regionais na Referência geral da AWS.

Interface de usuário correspondente: guia Configuração/Bucket de destino - opcional

RequestPayload

(LambdaInvoke/Configuration/RequestPayload)

(Opcional)

Se você quiser transmitir uma carga útil de solicitação para a ação Invocação do AWS Lambda, especifique a carga útil da solicitação aqui, no formato JSON.

Exemplo da carga útil de solicitação:

'{ "key": "value" }'

Se você não quiser transmitir uma carga útil de solicitação para sua função do Lambda, omita essa propriedade.

nota

Você pode especificar RequestPayload ou RequestPayloadFile, mas não os dois.

Para ter mais informações sobre a carga útil da solicitação, consulte o tópico Invocar na Referência da API do AWS Lambda.

Interface de usuário correspondente: guia Configuração/Carga útil de solicitação - opcional

RequestPayloadFile

(LambdaInvoke/Configuration/RequestPayloadFile)

(Opcional)

Se você quiser transmitir uma carga útil de solicitação para a ação Invocação do AWS Lambda, especifique o caminho até essa carga útil aqui. O arquivo estar no formato JSON.

O arquivo de carga útil da solicitação pode residir em um repositório de origem ou em um artefato de uma ação anterior. O caminho do arquivo é relativo ao repositório de origem ou à raiz do artefato.

Se você não quiser transmitir uma carga útil de solicitação para sua função do Lambda, omita essa propriedade.

nota

Você pode especificar RequestPayload ou RequestPayloadFile, mas não os dois.

Para ter mais informações sobre o arquivo de carga útil da solicitação, consulte o tópico Invocar na Referência da API do AWS Lambda.

Interface de usuário correspondente: guia Configuração/Arquivo de carga útil de solicitação - opcional

ContinueOnError

(LambdaInvoke/Configuration/RequestPayloadFile)

(Opcional)

Especifique se você deseja marcar a ação Invocação do AWS Lambda como bem-sucedida, mesmo que a função invocada do AWS Lambda falhe. Considere definir essa propriedade como true para permitir que ações subsequentes em seu fluxo de trabalho sejam iniciadas apesar da falha do Lambda.

O padrão é falhar na ação se a função do Lambda falhar (“desativada” no editor visual ou false no editor YAML).

Interface de usuário correspondente: guia Configuração/Continuar com erro

LogType

(LambdaInvoke/Configuration/LogType)

(Opcional)

Especifique se você deseja incluir logs de erros na resposta da função do Lambda depois que ela for invocada. Você pode visualizar esses logs na guia Logs da ação Invocação do Lambda no console do CodeCatalyst. Os valores possíveis são:

  • Tail - logs de retorno

  • None - logs não de retorno

O padrão é Tail.

Para ter mais informações sobre o tipo de log, consulte o tópico Invocar na Referência da API do AWS Lambda.

Para obter mais informações sobre como visualizar logs, consulte Visualização do status e detalhes de execução do fluxo de trabalho.

Interface de usuário correspondente: guia Configuração/Tipo de log

ResponseFilters

(LambdaInvoke/Configuration/ResponseFilters)

(Opcional)

Especifique quais chaves na carga útil de resposta do Lambda você deseja converter em variáveis de saída. Em seguida, você pode referenciar as variáveis de saída em ações subsequentes no fluxo de trabalho. Para ter mais informações sobre variáveis no CodeCatalyst, consulte Uso de variáveis em fluxos de trabalho.

Por exemplo, se a carga útil de resposta for semelhante a esta:

responsePayload = { "name": "Saanvi", "location": "Seattle", "department": { "company": "Amazon", "team": "AWS" } }

... e os filtros de resposta forem semelhantes a estes:

Configuration: ... ResponseFilters: '{"name": ".name", "company": ".department.company"}'

... a ação gera as seguintes variáveis de saída:

Chave Valor

name

Saanvi

company

Amazon

Depois, você pode referenciar as variáveis name e company em ações subsequentes.

Se você não especificar nenhuma chave em ResponseFilters, a ação converterá cada chave de nível superior na resposta do Lambda em uma variável de saída. Para ter mais informações, consulte Variáveis de “Invocação do AWS Lambda”.

Considere usar filtros de resposta para limitar as variáveis de saída geradas somente às que você realmente deseja usar.

Interface de usuário correspondente: guia Configuração/Filtros de resposta - opcional

Outputs

(LambdaInvoke/Outputs)

(Opcional)

Define os dados que são gerados pela ação durante a execução de um fluxo de trabalho.

Interface de usuário correspondente: guia Saídas

Artifacts

(LambdaInvoke/Outputs/Artifacts)

(Opcional)

Especifique os artefatos gerados pela ação. Você pode referenciar esses artefatos como entrada em outras ações.

Para ter mais informações sobre artefatos, inclusive exemplos, consulte Compartilhar artefatos e arquivos entre ações.

Interface de usuário correspondente: guia Saídas/Artefatos/Nome do artefato de criação

Name

(LambdaInvoke/Outputs/Artifacts/Name)

(Opcional)

Especifique o nome do artefato que conterá a carga útil de resposta do Lambda que é retornada pela função do Lambda. O valor padrão é lambda_artifacts. Se você não especificar um artefato, a carga útil de resposta do Lambda poderá ser visualizada nos logs da ação, que estão disponíveis na guia Logs da ação no console do CodeCatalyst. Para obter mais informações sobre como visualizar logs, consulte Visualização do status e detalhes de execução do fluxo de trabalho.

Interface de usuário correspondente: guia Saídas/Artefatos/Nome do artefato de criação

Files

(LambdaInvoke/Outputs/Artifacts/Files)

(Opcional)

Especifique os arquivos a serem incluídos no artefato. Você deve especificar lambda-response.json para que o arquivo de carga útil de resposta do Lambda seja incluído.

Interface de usuário correspondente: guia Saídas/Artefatos/Arquivos produzidos pela criação