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 esta entidade no modelo do AWS Serverless Application Model (AWS SAM), use a seguinte sintaxe:

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

Compatibilidade CloudFormation: Essa propriedade é exclusiva do AWS SAM e não tem CloudFormation equivalente.

Id

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

nota

Quando Id for especificado, se o conector gerar políticas do IAM AWS Identity and Access Management, o perfil do IAM associado a essas políticas será inferido 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

Compatibilidade CloudFormation: Essa propriedade é exclusiva do AWS SAM e não tem CloudFormation equivalente.

Name

O nome de um recurso do .

Tipo: string

Obrigatório: Condicional

Compatibilidade CloudFormation: Essa propriedade é exclusiva do AWS SAM e não tem 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

Compatibilidade CloudFormation: Essa propriedade é exclusiva do AWS SAM e não tem 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

Compatibilidade CloudFormation: Essa propriedade é exclusiva do AWS SAM e não tem CloudFormation equivalente.

ResourceId

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

Tipo: string

Obrigatório: Condicional

Compatibilidade CloudFormation: Essa propriedade é exclusiva do AWS SAM e não tem 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

Compatibilidade CloudFormation: Essa propriedade é exclusiva do AWS SAM e não tem CloudFormation equivalente.

Type

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

Tipo: string

Obrigatório: Condicional

Compatibilidade CloudFormation: Essa propriedade é exclusiva do AWS SAM e não tem CloudFormation equivalente.

Exemplos

API Gateway para invocar uma função do Lambda

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

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