ResourceReference - AWS Serverless Application Model

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

ResourceReference

Uma referência a um recurso que o tipo de recurso de AWS::Serverless::Connector usa.

nota

Para recursos no mesmo modelo, forneça o Id. Para recursos que não estejam no mesmo modelo, use uma combinação de outras propriedades. Para obter mais informações, consulte AWS SAM referência do conector.

Sintaxe

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

YAML

Arn: String Id: String Name: String Qualifier: String QueueUrl: String ResourceId: String RoleName: String Type: String

Propriedades

Arn

O ARN de um recurso.

Tipo: string

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

Id

O ID lógico de um recurso no mesmo modelo.

nota

Quando Id for especificado, se o conector gerar políticas AWS Identity and Access Management (IAM), a função do IAM associada a essas políticas será inferida do recursoId. Quando Id não for especificado, forneça o recurso RoleName para conectores anexarem as políticas do IAM geradas a um perfil do IAM.

Tipo: string

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

Name

O nome de um recurso do .

Tipo: string

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

Qualifier

Um qualificador para um recurso que restrinja seu escopo. Qualifier substitui o valor * no final de um ARN de restrição de recursos. Para ver um exemplo, consulte API Gateway para invocar uma função do Lambda.

nota

A definição do qualificador varia de acordo com o tipo de recurso. Para obter uma lista de tipos de recursos de origem e destino compatíveis, consulte AWS SAM referência do conector.

Tipo: string

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

QueueUrl

O URL da fila do Amazon SQS. Essa propriedade só se aplica aos recursos do Amazon SQS.

Tipo: string

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

ResourceId

O ID de um recurso. Por exemplo, o ID da API API Gateway.

Tipo: string

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

RoleName

O nome do perfil associado a um recurso.

nota

Quando Id for especificado, se o conector gerar políticas do IAM, o perfil do IAM associado a essas políticas será inferida do recurso Id. Quando Id não for especificado, forneça o recurso RoleName para conectores anexarem as políticas do IAM geradas a um perfil do IAM.

Tipo: string

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

Type

O AWS CloudFormation tipo de um recurso. Para obter mais informações, consulte a AWS referência de tipos de recursos e propriedades.

Tipo: string

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

Exemplos

API Gateway para invocar uma função do Lambda

O exemplo a seguir usa o AWS::Serverless::Connector recurso para permitir que o Amazon API Gateway invoque uma AWS Lambda função.

YAML

Transform: AWS::Serverless-2016-10-31 Resources: MyRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Statement: - Effect: Allow Action: sts:AssumeRole Principal: Service: lambda.amazonaws.com ManagedPolicyArns: - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole MyFunction: Type: AWS::Lambda::Function Properties: Role: !GetAtt MyRole.Arn Runtime: nodejs16.x Handler: index.handler Code: ZipFile: | exports.handler = async (event) => { return { statusCode: 200, body: JSON.stringify({ "message": "It works!" }), }; }; MyApi: Type: AWS::ApiGatewayV2::Api Properties: Name: MyApi ProtocolType: HTTP MyStage: Type: AWS::ApiGatewayV2::Stage Properties: ApiId: !Ref MyApi StageName: prod AutoDeploy: True MyIntegration: Type: AWS::ApiGatewayV2::Integration Properties: ApiId: !Ref MyApi IntegrationType: AWS_PROXY IntegrationUri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations IntegrationMethod: POST PayloadFormatVersion: "2.0" MyRoute: Type: AWS::ApiGatewayV2::Route Properties: ApiId: !Ref MyApi RouteKey: GET /hello Target: !Sub integrations/${MyIntegration} MyConnector: Type: AWS::Serverless::Connector Properties: Source: # Use 'Id' when resource is in the same template Type: AWS::ApiGatewayV2::Api ResourceId: !Ref MyApi Qualifier: prod/GET/hello # Or "*" to allow all routes Destination: # Use 'Id' when resource is in the same template Type: AWS::Lambda::Function Arn: !GetAtt MyFunction.Arn Permissions: - Write Outputs: Endpoint: Value: !Sub https://${MyApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}/prod/hello