x-amazon-apigateway-integration objeto - Amazon API Gateway

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á.

x-amazon-apigateway-integration objeto

Especifica detalhes da integração de backend usada para esse método. Esta extensão é uma propriedade estendida do objeto de Operação do OpenAPI. O resultado é um objeto de integração do API Gateway.

Propriedades
Nome da propriedade Tipo Descrição
cacheKeyParameters Uma matriz de string Uma lista de parâmetros de solicitação cujos valores devem ser armazenados em cache.
cacheNamespace string Um grupo de tags específicas de API dos parâmetros em cache relacionados.
connectionId string O ID de a VpcLinkpara a integração privada.
connectionType string O tipo de conexão da integração. O valor válido é "VPC_LINK" para integração privada ou "INTERNET", para outras.
credentials string

Para credenciais baseadas em funções AWS do IAM, especifique o ARN de uma função apropriada do IAM. Se não forem especificadas, as credenciais assumirão como padrão permissões baseadas em recursos que devem ser adicionadas manualmente para permitir que a API acesse o recurso. Para obter mais informações, consulte Conceder permissões com o uso de uma política de recursos.

Observação: ao usar credenciais do IAM, verifique se os endpoints regionais STS da AWS estão habilitados para a região na qual essa API está implantada para obter a melhor performance.

contentHandling string Tipos de conversão de codificação da carga de solicitação. Os valores válidos são 1) CONVERT_TO_TEXT, para converter uma carga binária em uma string codificada em base64 ou converter uma carga de texto em uma string codificada por utf-8 ou transferir a carga de texto de forma nativa sem modificação e 2) CONVERT_TO_BINARY para converter uma carga de texto em um blob decodificado em base64 ou transferir uma carga binária de forma nativa sem modificação.
httpMethod string O método HTTP usado na solicitação de integração. Para invocações de função do Lambda, o valor deve ser POST.
integrationSubtype string Especifica o subtipo de integração para uma AWS integração de serviços. Compatível apenas com APIs HTTP. Para obter subtipos de integração compatíveis, consulte Referência do subtipo de integração.
passthroughBehavior string Especifica como uma carga de solicitação de um tipo de conteúdo não mapeado é transmitida na solicitação de integração sem modificação. Os valores com suporte when_no_templates, when_no_match e never. Para obter mais informações, consulte Integration.passthroughBehavior.
payloadFormatVersion string Especifica o formato da carga enviada para uma integração. Obrigatório para APIs HTTP. Para APIs HTTP, os valores suportados para integrações de proxy do Lambda são 1.0 e 2.0. Para todas as outras integrações, 1.0 é o único valor suportado. Para saber mais, consulte Trabalhar com integrações de proxy do AWS Lambda para APIs HTTP e Referência do subtipo de integração.
requestParameters x-amazon-apigateway-integration.objeto requestParameters

Para APIs REST, especifica mapeamentos de parâmetros de solicitação de método para parâmetros de solicitação de integração. Parâmetros de solicitação com suporte são querystring, path, header e body.

Para APIs HTTP, parâmetros de solicitação são um mapa de chave-valor que especifica parâmetros que são passados para integrações AWS_PROXY com um integrationSubtype especificado. Você pode fornecer valores estáticos ou mapear dados de solicitação, variáveis de estágio ou variáveis de contexto que são avaliadas no tempo de execução. Para saber mais, consulte Trabalhar com integrações de serviços da AWS para APIs HTTP.

requestTemplates x-amazon-apigateway-integration.objeto requestTemplates Modelos de mapeamento para uma carga de solicitação de tipos MIME especificados.
responses x-amazon-apigateway-integrationobjeto.responses Define as respostas do método e especifica mapeamentos de parâmetros desejados ou mapeamentos de carga de respostas de integração para respostas de método.
timeoutInMillis integer Tempos limite para a integração entre 50 ms e 29.000 ms.
type string

O tipo de integração com o backend especificado. Os valores válidos são:

  • http ou http_proxy, para integração com um backend HTTP.

  • aws_proxy, para integração com as funções AWS Lambda.

  • aws, para integração com funções do AWS Lambda ou outros AWS serviços, como Amazon DynamoDB, Amazon Simple Notification Service ou Amazon Simple Queue Service.

  • mock, para integração com o API Gateway sem invocar nenhum backend.

Para obter mais informações sobre os tipos de integração, consulte integration:type.

tlsConfig x-amazon-apigateway-integrationObjeto.tlsConfig Especifica a configuração de TLS para uma integração.
uri string O URI de endpoint do backend. Para integrações do tipo aws, este é um valor de ARN. Para a integração HTTP, esta é a URL do endpoint HTTP, incluindo o esquema https ou http.

x-amazon-apigateway-integration exemplos

Para APIs HTTP, é possível definir integrações na seção de componentes da sua definição do OpenAPI. Para saber mais, consulte x-amazon-apigateway-integrations objeto.

"x-amazon-apigateway-integration": { "$ref": "#/components/x-amazon-apigateway-integrations/integration1" }

O exemplo a seguir cria uma integração com uma função do Lambda. Para fins de demonstração, supõe-se que os modelos de mapeamento de amostra mostrados em requestTemplates e responseTemplates dos exemplos abaixo apliquem a seguinte carga em formato JSON: { "name":"value_1", "key":"value_2", "redirect": {"url" :"..."} } para gerar uma saída JSON de { "stage":"value_1", "user-id":"value_2" } ou uma saída XML de <stage>value_1</stage>.

"x-amazon-apigateway-integration" : { "type" : "aws", "uri" : "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:012345678901:function:HelloWorld/invocations", "httpMethod" : "POST", "credentials" : "arn:aws:iam::012345678901:role/apigateway-invoke-lambda-exec-role", "requestTemplates" : { "application/json" : "#set ($root=$input.path('$')) { \"stage\": \"$root.name\", \"user-id\": \"$root.key\" }", "application/xml" : "#set ($root=$input.path('$')) <stage>$root.name</stage> " }, "requestParameters" : { "integration.request.path.stage" : "method.request.querystring.version", "integration.request.querystring.provider" : "method.request.querystring.vendor" }, "cacheNamespace" : "cache namespace", "cacheKeyParameters" : [], "responses" : { "2\\d{2}" : { "statusCode" : "200", "responseParameters" : { "method.response.header.requestId" : "integration.response.header.cid" }, "responseTemplates" : { "application/json" : "#set ($root=$input.path('$')) { \"stage\": \"$root.name\", \"user-id\": \"$root.key\" }", "application/xml" : "#set ($root=$input.path('$')) <stage>$root.name</stage> " } }, "302" : { "statusCode" : "302", "responseParameters" : { "method.response.header.Location" : "integration.response.body.redirect.url" } }, "default" : { "statusCode" : "400", "responseParameters" : { "method.response.header.test-method-response-header" : "'static value'" } } } }

Observe que as aspas duplas (") da string JSON nos modelos de mapeamento devem ser escapadas por string (\").