filepath = os.path.join (os.path.dirname (__ file __), 'chalicelib', 'env.yml')
und lösen Sie es.$ tree -a .
.
├── .chalice
│ └── config.json
├── .gitignore
├── app.py
├── chalicelib
│ └── env.yml
└── requirements.txt
Bei der Bereitstellung mit Kelch werden die Dateiberechtigungen wie bei Linux / Mac vererbt. Beachten Sie daher, dass beim Bereitstellen einer Datei wie "750" die Berechtigung zur Laufzeit verweigert wird, wenn Sie versuchen, diese Datei zu lesen.
Als ich es nachgeschlagen habe, war es, weil ** nur Programme, die boto3.client verwenden, automatisch generiert wurden **. Es gibt auch eine Möglichkeit, Ressourcen in boto3 zu verwenden, aber selbst wenn Sie sie verwenden, unterliegt sie keiner automatischen IAM-Generierung. Alle meine Programme verwendeten boto3.resource.
Da die IAM-Richtlinie automatisch generiert wird, kann ** Verwenden Sie immer boto3.client
**, wenn Sie boto3 mit Chalice verwenden, eine Richtlinie sein.
Wenn Sie dagegen eine vorhandene IAM-Rolle verwenden oder die Richtlinienbeschreibung selbst verwalten möchten, deaktivieren Sie "autogen_policy" in ".chalice / config.json". Zum Beispiel:
json:.chalice/config.Auszug aus json
"stages": {
"dev": {
"api_gateway_stage": "api",
"autogen_policy": false
}
}
Wenn dies deaktiviert ist, lautet die Standardeinstellung "policy-
json:.chalice/policy-dev.Schreiben Sie einfach die Zugriffsberechtigung in Rolle in JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:*"
],
"Resource": [
"*"
],
"Sid": "xxxx-xxxx-xxxx-xxxx-1234"
},
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*",
"Sid": "xxxx-xxxx-xxxx-xxxx-1235"
}
]
}
Wenn Sie eine externe Bibliothek usw. verwenden möchten, übernehmen Sie diese, wenn Sie boto3.resource verwenden. Aufgrund der IAM-Berechtigung können Sie die IAM-Rollen-ARN angeben und sie gewähren (iam_role_arn
), wenn Sie überhaupt nicht über die IAM-Betriebsberechtigung verfügen.
Die Beschreibung, dass nur der Client die IAM-Richtlinie automatisch generieren kann, lautet beispielsweise Erläuterung in der AWS BlackBelt-Reihe Viel detaillierter als der Artikel](https://michimani.net/post/aws-about-auto-generate-iam-policy-in-chalice/), aber ich fand dies in der offiziellen Dokumentation Ich konnte die Beschreibung nicht finden. Es sollte in Ordnung sein, aber ...
Sie müssen das CORS entsprechend Ihrem Anwendungsfall einstellen, aber dies ist es ist schneller, die Formel zu lesen -cors-support) Die Erklärung ist substanziell.
Nachdem Sie die entsprechenden Einstellungen für die Instanz von "chalice.CORSConfig" vorgenommen haben, übergeben Sie die Einstellungen in der Regel an "cors" im Dekorator wie "@ app.route (path, cors = config)". Wird es gut machen.
Recommended Posts