Il est impossible de déployer la même lambda dans plusieurs régions du panier. s3
Nous déployons Lambda à l'aide de modèles SAM CloudFormation.
Nous aimerions emballer la Lambda au panier S3, Puis déployer AWS :: Serverless :: Function Dans plusieurs régions.
Cependant, le code Lambda doit être dans la même région où il est déployé.
AWS Documenté comment se déplacer sur ce problème, en fait, créer une autre forme Lambda.
Pour copier le fichier zip vers chaque région où vous souhaitez le déployer et un nouveau panier s3
Dans chaque région pour l'insérer. Ensuite, votre fonction Lambda ressemblera à ceci:
Le problème est que cela dépend de la connaissance de la voie exacte vers le fichier zip. Dans notre cas, nous utilisons la substitution du modèle SAM, donc nous ne spécifions jamais le segment S3 ou clé S3 - Au lieu de cela, notre fonction ressemble à ceci:
Segment S3 non mentionné dans le modèle du tout CloudFormation. Et la Lambda, que vous pouvez voir en parcourant le seau, a un tel nom:
En effet, de nombreuses archives zip similaires créées lors de l'assemblée. Modèle de modèle sans goutte décode ceci, et si nous regardons dans la console CloudFormation Dans l'onglet Modèle et sélectionnez "Afficher le modèle traité", nous verrons que les champs S3Bucket et S3Key Rempli correctement.
L'assemblage est effectué par B. Azure DevOps utilisant
La tâche où nous spécifions le nom du segment et de la région, mais à nouveau, pas le nom du fichier zip.
Considérant que je n'ai pas accès dans le modèle à la voie exacte du fichier zip de la Lambda, comment dois-je automatiser la copie du fichier ZIP dans le panier local?
Rafraîchir:
J'ai essayé d'ajouter la ligne suivante dans les propriétés immédiatement avant CodeUri:
Cependant, lorsqu'il est déployé, j'ai reçu l'erreur suivante:
Nous aimerions emballer la Lambda au panier S3, Puis déployer AWS :: Serverless :: Function Dans plusieurs régions.
Cependant, le code Lambda doit être dans la même région où il est déployé.
AWS Documenté comment se déplacer sur ce problème, en fait, créer une autre forme Lambda.
CopyZips
Pour copier le fichier zip vers chaque région où vous souhaitez le déployer et un nouveau panier s3
LambdaZipsBucket
Dans chaque région pour l'insérer. Ensuite, votre fonction Lambda ressemblera à ceci:
MyFunction:
DependsOn: CopyZips
Type: AWS::Lambda::Function
Properties:
Code:
S3Bucket: !Ref 'LambdaZipsBucket'
S3Key: !Sub '${QSS3KeyPrefix}functions/packages/MyFunction/lambda.zip'
Le problème est que cela dépend de la connaissance de la voie exacte vers le fichier zip. Dans notre cas, nous utilisons la substitution du modèle SAM, donc nous ne spécifions jamais le segment S3 ou clé S3 - Au lieu de cela, notre fonction ressemble à ceci:
MyFunction:
Type: 'AWS::Serverless::Function'
Properties:
CodeUri: ./MyCompany.Service.Broker.Public
Segment S3 non mentionné dans le modèle du tout CloudFormation. Et la Lambda, que vous pouvez voir en parcourant le seau, a un tel nom:
ApiFunction-CodeUri-2342873t823t482346-97346583746583745.zip
En effet, de nombreuses archives zip similaires créées lors de l'assemblée. Modèle de modèle sans goutte décode ceci, et si nous regardons dans la console CloudFormation Dans l'onglet Modèle et sélectionnez "Afficher le modèle traité", nous verrons que les champs S3Bucket et S3Key Rempli correctement.
L'assemblage est effectué par B. Azure DevOps utilisant
AmazonWebServices.aws-vsts-tools.LambdaNETCoreDeploy.LambdaNETCoreDeploy@1
La tâche où nous spécifions le nom du segment et de la région, mais à nouveau, pas le nom du fichier zip.
Considérant que je n'ai pas accès dans le modèle à la voie exacte du fichier zip de la Lambda, comment dois-je automatiser la copie du fichier ZIP dans le panier local?
Rafraîchir:
J'ai essayé d'ajouter la ligne suivante dans les propriétés immédiatement avant CodeUri:
Code:
S3Bucket: !Ref 'LambdaZipsBucket'
Cependant, lorsqu'il est déployé, j'ai reçu l'erreur suivante:
Resource with id [ApiFunction] is invalid. property Code not defined for resource of type AWS::Serverless::Function
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
1 réponses
Emilie
Confirmation de: