gpt4 book ai didi

amazon-web-services - 如何构建 AWS CloudFormation 集成 URI,以便 AWS ApiGateway 与 S3、SQS、SNS、DynamoDB 和其他服务集成?

转载 作者:行者123 更新时间:2023-12-03 07:12:12 36 4
gpt4 key购买 nike

是否有一些地方提供有关如何通过 ApiGateway 集成进行一系列操作的示例?了解如何将对象上传到 S3、将项目推送到 SQS 和 SNS 队列、进行 DynamoDB 调用以及许多其他操作,尝试找到有关如何构建这些路径的文档。

我正在使用 CloudFormation 模板,该模板使用集成 URI 来设置 AWS ApiGateway 与 AWS 服务的集成。

找不到说明如何为所有类型的服务创建这些 URI 路径的文档。

enter image description here enter image description here

最佳答案

设置与其他 AWS 服务操作的集成请求时,集成请求 URI 也是 ARN。

例如,对于与 Amazon S3 的 GetBucket 操作集成,集成请求 URI 是以下格式的 ARN:

arn:aws:apigateway:api-region:s3:路径

查看更多:https://docs.aws.amazon.com/apigateway/latest/developerguide/integration-request-basic-setup.html

Dynamodb:比S3复杂一点: https://aws.amazon.com/blogs/compute/using-amazon-api-gateway-as-a-proxy-for-dynamodb/

社交网络: https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-proxy-integrate-service/

对于 SQS,我找到了 cloudformation 设置:

PostMethod:
Type: "AWS::ApiGateway::Method"
Properties:
AuthorizationType: "NONE"
ApiKeyRequired: "true"
HttpMethod: "POST"
ResourceId: !Ref "SomeResource"
RestApiId: !Ref "RestApi"
MethodResponses:
- StatusCode: 200
Integration:
Credentials: !GetAtt "RestApiRole.Arn"
IntegrationHttpMethod: "POST"
IntegrationResponses:
- StatusCode: 200
Type: "AWS"
Uri: !Sub "arn:aws:apigateway:${AWS::Region}:sqs:action/SendMessage"
RequestParameters:
integration.request.querystring.QueueUrl: !Sub "'${SomeQueue}'"
integration.request.querystring.MessageBody: "method.request.body"

这里是 RestApiRole 的代码:

RestApiRole:
Type: "AWS::IAM::Role"
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Action:
- "sts:AssumeRole"
Principal:
Service:
- "apigateway.amazonaws.com"
Effect: "Allow"
Policies:
- PolicyName: "InvokeLambda"
PolicyDocument:
Version: "2012-10-17"
Statement:
- Action:
- "lambda:InvokeFunction"
Resource: !GetAtt "LambdaFunction.Arn"
Effect: "Allow"

关于amazon-web-services - 如何构建 AWS CloudFormation 集成 URI,以便 AWS ApiGateway 与 S3、SQS、SNS、DynamoDB 和其他服务集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69415107/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com